Colt 0 Denunciar post Postado Abril 30, 2011 Iae pessoal beleza? eu gostaria de saber como faço pra separar texto e imagem de uma variavel. Exemplo: $texto = 'texto <img src="imagem.png"/> texto'; na variavel acima tem texto e imagem na mesma, porem eu gostaria de separa-los, para poder exibilos em lugares diferentes, tipo $txt = "texto"; $imagem = '<img src="imagem.png"/>'; isto pegando os dados da variavel $texto Grato desde já. Compartilhar este post Link para o post Compartilhar em outros sites
mangakah 217 Denunciar post Postado Maio 1, 2011 Para trabalhar com strings a melhor opção é usar Expressões Regulares. Se você ainda não conhece, passe a conhecer pois é uma habilidade indispensável. Então... fiz o seguinte código, talvez lhe seja útil: $texto = 'texto <img src="imagem1.png"/>texto <img src="imagem2.png"/>texto <img src="imagem3.png"/>'; // Também funciona se tiver apenas uma imagem. // Pegar as imagens if(preg_match_all("/(<img src=\"([a-z0-9]*\.[a-z]{3})\" ?\/>)/is", $texto, $resultado) !== false) { $imagens_tags = $resultado[1]; // Armazena as tags <img /> $imagens_nomes = $resultado[2]; // Armazena os nomes das imagens. } else { echo "Erro analizando texto"; } // Retirar as imagens do resto do texto if(!empty($imagens_tags)) { // Verifica se foram encontradas tags <img /> na string, senão, então não há o que filtrar. $patterns = array(); foreach($imagens_tags as $imgt) { $imgt = quotemeta($imgt); // escapa meta caracteres $imgt = str_replace("/", "\/", $imgt); // escapa aspas simples (pq é usado como modificador pelo PCRE $patterns[]= "/{$imgt}/"; } $txt = preg_replace($patterns, "", $texto); } var_dump($imagens_tags, $imagens_nomes, $txt); O que você quer está nas variáveis $imagens_tags e $txt. A variável $imagens_tags é um array, se ele tiver apenas uma valor, você pode retorná-lo usando $imagens_tags[0]. Referências: quotemeta preg_match_all preg_replace Compartilhar este post Link para o post Compartilhar em outros sites
Colt 0 Denunciar post Postado Maio 1, 2011 mangakah vlw cara era exatamente isso que eu procurava, e sobre Expressões Regulares eu sei alguma coisa so q a parti de agora irei me aprofundar mais. flws :joia: Compartilhar este post Link para o post Compartilhar em outros sites
Romeu Zampieri 0 Denunciar post Postado Outubro 13, 2016 Pessoal tudo bem? Deu certo o que vocês disseram. Porém quando tento puxar o texto do banco de dados ele não exibe o texto. <? $texto = html_entity_decode($texto); //$texto = 'texto <img src="imagem1.png"/>texto <img src="imagem2.png"/>texto <img src="imagem3.png"/>'; // Também funciona se tiver apenas uma imagem. // Pegar as imagens if(preg_match_all("/(<img src=\"([a-z0-9]*\.[a-z]{3})\" ?\/>)/is", $texto, $resultado) !== false) { $imagens_tags = $resultado[1]; // Armazena as tags <img /> $imagens_nomes = $resultado[2]; // Armazena os nomes das imagens. } else { echo "Erro analizando texto"; } // Retirar as imagens do resto do texto if(!empty($imagens_tags)) { // Verifica se foram encontradas tags <img /> na string, senão, então não há o que filtrar. $patterns = array(); foreach($imagens_tags as $imgt) { $imgt = quotemeta($imgt); // escapa meta caracteres $imgt = str_replace("/", "\/", $imgt); // escapa aspas simples (pq é usado como modificador pelo PCRE $patterns[]= "/{$imgt}/"; } $txt = preg_replace($patterns, "", $texto); } echo $txt; ?> Compartilhar este post Link para o post Compartilhar em outros sites
Romeu Zampieri 0 Denunciar post Postado Outubro 13, 2016 Outra coisa Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Outubro 13, 2016 Favor abrir um novo tópico conforme as Orientações e Regras do fórum de PHP Compartilhar este post Link para o post Compartilhar em outros sites