好的,我找到了答案 PHP - split a string of HTML attributes into an indexed array
感谢' S
我想用%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">';
如我所见,我只想更换qoutes内的空间,而不是任何其他空间。
所以str_replace
在这里根本没有帮助
最令人遗憾的最终结果是参数数组
这就是我做的事情
<?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 :(得分:0)
<强>更新强>
根据你上次的评论,你似乎需要这样的东西:
$str = '<input type="text" title="this is a fish">';
preg_match('/title="(.*)"/', $str, $title);
$parsed_title = str_replace(' ', '%20', $title[1]);
但似乎可以采取一些措施来改善代码的其余部分。
您必须使用urlencode
或类似功能:
$str = "Your spaced string";
$new = urlencode($str); //Your%20spaced%20string
或者,使用preg_replace
:
$str = "Your spaced string";
$new = preg_replace("/\s+/", "%20", $str);
或者,没有正则表达式:
$new = str_replace(" ", "%20", $str);