lucas 0 Denunciar post Postado Maio 8, 2003 Alow!Pessoal, gostaria de saber uma coisa.Digamos que eu tenha um texto de várias linhas. Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...<img src="minha_imagem1.jpg">Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...Blá ...<img src="file:///C|Meus%20Documentos/minha_imagem2.jpg">O meu 1º objetivo, é saber quantas tags "<img" existem.Eu fiz: substr_count($texto, "<img "); Tudo funcionando na mais perfeita ordem. Agora, eu quero fazer o upload desta imagem. beleza tb. Mas o meu problema é que eu quero trocar o nome desta imagem.Por exemplo, onde está "minha_imagem1.jpg", gostaria que fosse "pasta/imagens/fotos/3.jpg".O mesmo acontece em "file:///C|Meus%20Documentos/minha_imagem2.jpg", teria de ser "pasta/imagens/fotos/20.jpg"Eu podia dar um str_replace, mas isso apenas mudaria o nome do arquivo e não o caminho.O que eu quero é arrumar um jeito de em um loop, pegar o nome do arquivo que está sendo levado ao server (upload), procurá-lo no meu texto, e alterar seu caminho e o nome.Como posso faze-lo????Desde já agradeço muito. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 8, 2003 tipo, as imagens já foram "uploadeadas" pro servidor ?? para renomear: http://www.php.net/manual/pt_BR/function.rename.php para mudar de diretorio: http://www.php.net/manual/pt_BR/function.copy.php e http://www.php.net/manual/pt_BR/function.unlink.php para deletar maiorees referências: http://www.php.net/manual/pt_BR/ref.filesystem.php Compartilhar este post Link para o post Compartilhar em outros sites
lucas 0 Denunciar post Postado Maio 8, 2003 as imagens ainda naum estaum no server ... mas o ".htm" está.o que eu quero é saber que imagens estaum neste ".htm" para alterar o caminho no código ".htm" e alterar o nome do arquivo.tipo ...$linhas = file($arquivo);$conteudo = join("", $linhas)$totalIMGTags = substr_count($conteudo, "<img ");for ($i=1; $i<=$totalIMGTags; $i++) { altere o nome do arquivo no código para "pasta".$i."/".$i.".jpg"; copy ($arquivo, "pasta".$i."/".$i.".jpg");}sacaram???????????????????? Compartilhar este post Link para o post Compartilhar em outros sites
lucas 0 Denunciar post Postado Maio 8, 2003 eu naum quero mudar o nome do arquivo a ser uploaded. eu quero mudar no código (a tag <IMG> inteira) Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 8, 2003 então você pode tentar ler o html linha por linha e em cada linha verificar se existe a tag se encontrar, grave num vetor tudo o que vier depois da primeira " até a segunda " daí você vai ter sua imagem, exemplo: <?ini_set("magic_quotes_runtime", "off");?> <form action="<?=$PHP_SELF;?>" method="POST"> arquivo ou endereço web:<br><input type=text name=arquivo value="" size=50> <input type=submit value=ok> </form><hr><?if(isset($arquivo) && trim($arquivo)!=""){ $procurar = "<img src="; $tam = strlen($procurar); $retornar = "0"; $txt = fopen($arquivo,"r"); while($linha = fgets($txt,1024)){ $limite = strlen($linha); for($i=0;$i<$limite-$tam;$i++){ $trecho = substr($linha,$i,$tam); if( $trecho == $procurar ){ $agrupar = ""; $aspa = 0; for($j=($i+$tam);$j<$limite;$j++){ $trecho2 = substr($linha,$j,1); if($trecho2=="\"" || $trecho2=="'"){ $aspa++; } if($aspa>0){ $agrupar .= $trecho2; } if($aspa==2){ $retornar .= ",".$agrupar; $agrupar = ""; $aspa = 0; } } } } } fclose($txt); $retornar = str_replace("\"","",$retornar); $retornar = str_replace("'","",$retornar); $imagem = explode(",",$retornar); echo "<b>imagens:</b><br>"; for($i=1;$i<sizeof($imagem);$i++){ echo $imagem[$i]."<br>\n"; }}?> Compartilhar este post Link para o post Compartilhar em outros sites
lucas 0 Denunciar post Postado Maio 10, 2003 hinom,muito obrigado! Era isso mesmo que eu queria. Você apenas se esqueceu de um detalhe: parar o loop que procura as " (aspas). Veja o porquê. <img src="imagens/minha_imagem.jpg" width="100" height="100"><a href="http://www.meusite.com.br">clique aqui</a>Se tivermos o código acima em somente uma linha, o código dado por você (hinom) vai me retornar:imagens/minha_imagem.jpg100100http://www.meusite.com.brMas, como o objetivo era somente pegar o caminho da imagem na tag <IMG>, colocamos um "break;" na sequinte parte:if($aspa==2){ $retornar .= ",".$agrupar; $agrupar = ""; $aspa = 0; break;}Valeu?Eu tb coloquei isso para os futuros leitores.Falow pessoal. T+. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 11, 2003 isso mesmo! depois que postei esse script fiquei brincando um pouco com elee dei umas modificadas, segunda-feira coloco aqui Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 12, 2003 isso mesmo! depois que postei esse script fiquei brincando um pouco com elee dei umas modificadas, segunda-feira coloco aqui o codigo:<?ini_set("magic_quotes_runtime", "off");?> <form action="<?=$PHP_SELF;?>" method="POST"> arquivo ou endereço web:<br><input type=text name=arquivo value="<?if(isset($arquivo) && trim($arquivo)!=""){?><?=$arquivo;?><?}?>" size=50> <input type=submit value=ok> </form><hr><?if(isset($arquivo) && trim($arquivo)!=""){ $procurar = "<img"; $tam = strlen($procurar); $retornar = "0"; $sep = "ð"; $txt = fopen($arquivo,"r"); while($linha = fgets($txt,1024)){ $limite = strlen($linha); $i=0; while($i<$limite-$tam){ $trecho = substr($linha,$i,$tam); if( $trecho == $procurar ){ $agrupar = $procurar; $k = 0; for($j=($i+$tam);$j<$limite;$j++){ $trecho2 = substr($linha,$j,1); if($k==0){ $agrupar .= $trecho2; } if($trecho2==">"){ $k++; } if($k==1){ $retornar .= $sep.$agrupar; $agrupar = ""; $k = 0; break; } } } $i++; } } fclose($txt); $retornar = str_replace("'","\"",$retornar); $imagem = explode($sep,$retornar); echo "<b>imagens:</b><br>"; $sep = "src="; for($i=1;$i<sizeof($imagem);$i++){ $src = explode($sep,$imagem[$i]); echo $src[1]."<br>\n"; /* $k = 0; $agrupar = ""; for($j=0;$j<strlen($src[1]);$j++){ $trecho = substr($src[1],$j,1); if($k==1){ $agrupar .= $trecho; } if($trecho=="\""){ $k++; } if($k==2){ $agrupar = str_replace("\"","",$agrupar); break; } } echo $agrupar."<p>\n"; */ //echo $imagem[$i]."<br>\n"; }}?> Compartilhar este post Link para o post Compartilhar em outros sites