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 = explode($ 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でエンコードされているため、<および>が&lt;に変換されるためです。および&gt;は、文字列内で見つけることができないため、文字列全体を返すだけです。

于 2009-11-13T13:44:38.937 に答える
0

元の文字列で区切り文字が出現するたびに変換してみることができます

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

次のようなより管理しやすいもので:

"バナナ"

そしてその言葉で爆発する

于 2009-11-13T13:54:19.150 に答える