2016-01-16 3 views
-3

Ok я нашел ответ PHP - split a string of HTML attributes into an indexed arrayЗаменить каждый белый пробел между кавычками

Спасибо-х

Я хочу заменить каждый белый пробел между кавычками с %20

Пример:

<input type="text" title="this is a fish"> 

Желаемый результат:

<input type="text" title="this%20is%20a%20fish"> 

Другой пример

$_POST['foo'] = '<input type="text" title="this is a fish">'; 
$parsed = '<input type="text" title="this%20is%20a%20fish">'; 

Как видно, я только whant заменить пространства внутри qoutes, а не какой-либо другой. Так str_replace просто не поможет

Конец desierd результатом этого является массивом параметров

Это то, что я сделал

<?php 
$tag_parsed = trim($tag_parsed); 
$tag_parsed = str_replace('"', '', $tag_parsed); 
$tag_parsed = str_replace(' ', '&', $tag_parsed); 
parse_str($tag_parsed, $tag_parsed); 

Но если параметр имеет место, он ломает ,

+0

Output-> foo o – varunkumar

+0

@DenisAlexandrov, что я не прошу, у меня есть строка, как в примере, я не хочу заменять каждое пустое пространство, только те, что в qoutes –

+0

@MordiSacks , однако, функции «одинаковы». Вам просто нужно правильно их использовать. Пример: '' –

ответ

0

UPDATE

Основываясь на ваших последних комментариев, кажется, вам нужно что-то вроде этого:

$str = '<input type="text" title="this is a fish">'; 
preg_match('/title="(.*)"/', $str, $title); 
$parsed_title = str_replace(' ', '%20', $title[1]); 

Но, кажется, есть что-то можно сделать, чтобы улучшить TRE остальную часть кода.


Вы должны использовать urlencode или похожую функцию:

$str = "Your spaced string"; 
$new = urlencode($str); //Your%20spaced%20string 

Или используйте preg_replace:

$str = "Your spaced string"; 
$new = preg_replace("/\s+/", "%20", $str); 

OR, без регулярных выражений:?

$new = str_replace(" ", "%20", $str); 
+0

Это не помогает мне, потому что, когда у меня есть строка, это как в примере, а не только текст –

+0

Хорошо, я обновил свой ответ. Попробуйте 'preg_replace' или' str_replace'. И проверьте ссылку dup –

Смежные вопросы