Question

je fais l'analyse et le type de texte que je veux faire correspondre, puis le rendre nul est comme suit: -

<tr class="label-BGC"><td colspan="4">any kind of text here</td></tr> 

je veux faire correspondre chaque ligne qui contient "<tr class="label-BGC"><td colspan="4">any text</td></tr>"

sa soirée ici et mon cerveau-batterie est totalement en panne

Ce que j'essaie de faire est: -

$patterns='<td colspan="4">'.stristr($parsed,'[^a-z0-9_- $]').'</td></tr>';
$replacements=' ';
$parsed = str_replace($patterns, $replacements, $parsed);

$ parsed contient l’ensemble des données analysées.

mon code ne fonctionne pas, quelqu'un peut-il m'aider avec quelques suggestions ici !!!

Était-ce utile?

La solution

Essayez quelque chose de simple comme ceci:

$parsed = preg_replace('{<tr class="label-BGC"><td colspan="4">.*?</td></tr>}', 
                      $replacements, $parsed);

Le. correspond à n'importe quel caractère, le * le fait correspondre à 0-plusieurs, et le? arrête d'être gourmand -i.e. il s’arrêtera à la première séquence et non à la dernière possible.

Autres conseils

Essayez ce qui suit:

preg_replace("`\s*<tr\s+class\s*=\s*"label-BGC"\s*>\s*<td\s+colspan\s*=\s*"4"\s*>.*?</td\s*>\s*</tr\s*>\s*`i", "", $content);

Toutes les \s correspondances sont peut-être un peu excessives, mais il est très indulgent si cette entrée provient d'un utilisateur.

Sinon, vous pouvez probablement vous contenter de

preg_replace("`<tr class="label-BGC"><td colspan="4">.*?</td></tr>`i", "", $content);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top