Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia a todos do fórum, estou precisando da ajuda de vocês aqui do fórum, pois já testei pesquisar e não consegui achar nada a respeito.
Bom, então vamos lá, é o seuginte pessoal...
Na minha expressão regular para substituição estou usando o preg_replace, para substituição ele está pegando a primeira tag e a próxima em seguida, esse é o problema, preciso fazer com que ele pegue a primeira tag e depois para finalizar não a próxima, mas sim a última.
Vou mostrar um exemplo para explicar melhor a vocês
$a = "/\[tag\](.*?)\[\/tag\]/is";
$b = "<tag>$1</tag>";
$texto = preg_replace($a, $b, $texto);
Se eu jogar em meu $texto o seguinte: [tag]Teste[/tag], funcionará normalmente, então ficará em html: <tag>Teste</tag>, até aí está correto, o problema começa agora, se eu colocar pra seguinte forma: [tag]Teste 1 [tag]Teste 2[/tag] Teste 3[/tag], então dessa forma ficará com problemas, resultando no seguinte: <tag>Teste 1 [tag]Teste 2</tag> Teste 3[/tag]. Viram que se eu usar um dentro do outro não substitui corretamente, porque ele está localizando o primeiro([tag]) e o próximo de encerramento([/tag]), para resolver ao invés dele procurar o primeiro e o próximo, teria que ser o primeiro e o último, sempre nessa ordem para ser retornado de forma correta: <tag>Teste 1 <tag>Teste 2</tag> Teste 3</tag>
Atual está localizando assim:
[tag]Teste 1 [tag]Teste 2[/tag] Teste 3[/tag] : resultando > <tag>Teste 1 [tag]Teste 2</tag> Teste 3[/tag]
Preciso fazer com que ele localize da seguinte forma:
[tag]Teste 1 [tag]Teste 2[/tag] Teste 3[/tag] : resultado > <tag>Teste 1 <tag>Teste 2</tag> Teste 3</tag>
Ou seja, localizar das extremidades até o centro.
Agradeço a todos que puderem me ajudar nisso.
Carregando comentários...