我遇到爆炸分隔符问题。我有一个相当粗糙的字符串作为分隔符,当我添加另一个字母(一个单词的开头)时它似乎崩溃了,但是当我删除第一个字母时它没有得到修复,这表明它不是关于lenght
即,(工作)代码是:
$boom = htmlspecialchars("<td width=25 align=\"center\" ");
$arr[1] = explode($boom, $arr[1]);
我想要使用的完整字符串是<td width=25 align=\"center\" class=\"
,当我开始添加class
时,爆炸会崩溃,什么都不会完成。一旦我添加c
,就会发生这种情况,如果我删除<
它就不会消失,如果它只是字符串长度的话就会消失。
基本上,问题并不严重,因为我可以在爆炸后将class="
替换为“”,并得到相同的结果,但这让我头疼诊断,看起来真的很像奇怪的问题。对于它的价值,我在XAMPP 1.7.2中使用PHP 5.3.0。
提前致谢!
答案 0 :(得分:0)
您是否尝试过将htmlspecialchars添加到爆炸中。
$arr[1] = explode($boom, htmlspecialchars($arr[1]));
如果没有它我会得到意想不到的结果,但有了它就能完美地运作。
$s = '<td width=25 align="center" class="asdjasd">sdadasd</td><td width=25 align="center" >asdasD</td>'; $boom = htmlspecialchars("<td width=25 align=\"center\" class="); $sex = explode($boom, $s); print_r($sex);
输出:
Array ( [0] => <td width=25 align="center" class="asdjasd">sdadasd</td><td width=25 align="center" >asdasD</td> )
尽管
$s = '<td width=25 align="center" class="asdjasd">sdadasd</td><td width=25 align="center" >asdasD</td>'; $boom = htmlspecialchars("<td width=25 align=\"center\" class="); $sex = explode($boom, htmlspecialchars($s)); print_r($sex);
输出
Array ( [0] => [1] => "asdjasd">sdadasd</td><td width=25 align="center" >asdasD</td> )
这是因为$ boom是htmlspecialchar编码的,&lt;和&gt;变成&amp; lt;和&amp; gt;,它无法在字符串中找到它,因此它只返回整个字符串。
答案 1 :(得分:0)
您可以尝试转换原始字符串
中每个分隔符的出现位置 "<td width=25 align=\"center\" "
更易于管理的内容,如:
“香蕉”
然后在那个词上爆炸