Question

J'ai des problèmes avec Delimiter pour exploser. J'ai une chaîne plutôt grosse en tant que délimiteur, et il semble qu'il se décompose lorsque j'ajoute une autre lettre (début d'un mot), mais il ne se répare pas lorsque je supprime la première lettre, ce qui indique qu'il ne s'agit pas de Lenght .

À savoir, le code (de travail) est:

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

La chaîne complète que j'aimerais utiliser est <td width=25 align=\"center\" class=\", et quand je commence à ajouter class, exploser tombe en panne, et rien ne se fait. Cela arrive dès que j'ajoute c, et ça ne disparaît pas si je retire <, ce qui le ferait s'il s'agit juste d'une question de cordes.

Fondamentalement, le problème n'est pas terrible, car je peux simplement remplacer class=" Avec "" après l'explosion, et obtenez le même résultat, mais cela m'a donné des maux de tête à diagnostiquer, et cela semble être un problème vraiment bizarre. Pour ce que ça vaut, j'utilise PHP 5.3.0 dans XAMPP 1.7.2.

Merci d'avance!

Était-ce utile?

La solution

Vous pouvez essayer de convertir chaque occurrence du délimiteur dans la chaîne d'origine

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

Dans quelque chose de plus gérable comme:

"banane"

puis exploser sur ce mot

Autres conseils

Avez-vous essayé d'ajouter HTMLSpecialChars à l'explosion.

$arr[1] = explode($boom, htmlspecialchars($arr[1]));

J'ai des résultats inattendus sans lui, mais avec lui, cela fonctionne parfaitement.

$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);

Les sorties:

Array
(
    [0] => <td width=25 align="center" class="asdjasd">sdadasd</td><td width=25 align="center" >asdasD</td>
)

Alors que

$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);

Les sorties

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

)

En effet, $ boom est en codé HTMLSpecialChar, <et> se transformer en <et>, ce qu'il ne trouve pas dans la chaîne, il renvoie donc la chaîne entière.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top