como combinar este tipo de construção?
-
05-07-2019 - |
Pergunta
im fazendo análise e o tipo de texto que eu quero igualar e, em seguida, torná-lo nulo é a seguinte: -
<tr class="label-BGC"><td colspan="4">any kind of text here</td></tr>
Eu quero corresponder a cada linha que contém "<tr class="label-BGC"><td colspan="4">any text</td></tr>"
a sua noite aqui e meu cérebro-bateria está totalmente para baixo
o que estou tentando fazer é: -
$patterns='<td colspan="4">'.stristr($parsed,'[^a-z0-9_- $]').'</td></tr>';
$replacements=' ';
$parsed = str_replace($patterns, $replacements, $parsed);
$ analisado é contendo os dados inteiros que im análise.
meu código não está funcionando alguém pode ajudar-me com algumas sugestões aqui !!!
Solução
Tente algo simples como isto:
$parsed = preg_replace('{<tr class="label-BGC"><td colspan="4">.*?</td></tr>}',
$replacements, $parsed);
A. corresponde a qualquer caractere, o * torna corresponder 0-muitos, ea? pára de ser -i.e. ganancioso ele vai parar na primeira seqüência, e não o último possível.
Outras dicas
Tente o seguinte:
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);
Toda a correspondência \s
pode ser um pouco exagerado, mas é muito perdoar se esta entrada é proveniente de um usuário.
Caso contrário, você provavelmente só pode sair com
preg_replace("`<tr class="label-BGC"><td colspan="4">.*?</td></tr>`i", "", $content);