0

我在爆炸的分隔符上遇到了一些问题。我有一个相当粗的字符串作为分隔符,当我添加另一个字母(单词的开头)时它似乎坏了,但是当我删除第一个字母时它没有得到修复,这表明它与长度无关.

也就是说,(工作)代码是:

$boom = htmlspecialchars("<td width=25 align=\"center\" "); 
$arr[1] = explode($boom, $arr[1]);

我想使用的完整字符串是<td width=25 align=\"center\" class=\",当我开始添加 时class,explode 崩溃了,什么也没做。一旦我添加c,就会发生这种情况,如果我删除它并不会消失<,如果它只是字符串长度的问题,它会消失。

基本上,问题并不严重,因为我可以class="在爆炸后用“”替换,并得到相同的结果,但这让我很难诊断,而且这似乎是一个非常奇怪的问题。对于它的价值,我在 XAMPP 1.7.2 中使用 PHP 5.3.0。

提前致谢!

4

2 回答 2

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 = 爆炸($boom, $s);
print_r($sex);

输出:

大批
(
    [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);

输出

大批
(
    [0] =>
    [1] => "asdjasd">sdadasd</td><td width=25 align="center" >asdasD</td>

)

这是因为 $boom 是 htmlspecialchar 编码的,< 和 > 被转换为 < 和&gt;,它在字符串中找不到,所以它只返回整个字符串。

于 2009-11-13T13:44:38.937 回答
0

您可以尝试转换原始字符串中每次出现的分隔符

"<td width=25 align=\"center\" "

在更易于管理的情况下,例如:

“香蕉”

然后在那个词上爆炸

于 2009-11-13T13:54:19.150 回答