Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lailton

[Resolvido] ER - Pegar todos os valores dos SRC="(.*)"

Recommended Posts

Olá galera so novo aqui e to precisando de um aajuda urgente, preciso pegar todos os valores das SRC

de uma string, segue abaixo o que to fazendo porem me da esse erro:

 

Warning: preg_match_all() [function.preg-match-all]: Delimiter must not be alphanumeric or backslash in D:\hospedagem\www\nl\index.php on line 10

 

4X esse mesmo erro.

 

Segue abaixo meu codigo.

 

<?php

$texto[]='dasdahdkashda<img src="teste/asdasd/asdasdas/img.jpg">dlasjdk jdklajdlk ajdljlkasjdlsad';

$texto[]='dasdahdkashda<img src="teste/asdasd/asdasdas/img.jpg">dlasjdk jdklajdlk ajdljlkasjdlsad';

$texto[]='dasdahdkashda<img src="teste/asdasd/asdasdas/img.jpg">dlasjdk jdklajdlk ajdljlkasjdlsad';

$texto[]='dasdahdkashda<img src="teste/asdasd/asdasdas/img.jpg">dlasjdk jdklajdlk ajdljlkasjdlsad';

$er='src=\"(.*)\"';

foreach($texto as $x => $y){

if (preg_match_all($er, $y, $result)){

print_r($result);

}

}

?>

 

http://forum.imasters.com.br/public/style_emoticons/default/upset.gif Sera que alguem poderia me ajudar ? vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua ER, para que você possa pegar os valores em SRC deve ficar assim:

 

$er = '/src="(.*)"/i';

Tente.

 

[]'s ;)

 

 

obrigado deu certo... se fose assim $string="<img>imagem/asd/asd/asd/asdas/tal.jpg</img>";

 

como se faria ?

 

$er='<{3}>(.*)</>';

 

tentei com isso mais tambem nao consigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

$er = '/<img>(.*)<\/img>/i';

Para a função preg_match_all(), a expressão regular sempre deve conter os delimitadores.

 

Caso interesse, um ótimo guia prático sobre expressões regulares é este do Aurélio.

 

[]'s ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua ER, para que você possa pegar os valores em SRC deve ficar assim:

 

$er = '/src="(.*)"/i';

Tente.

 

[]'s ;)

 

Paulo você tem um msn que eu possa falar diretamente com você ainda permanece o erro, pago para você me ajudar

meu msn é lailton.webmaster@hotmail.com se poder me adiconar.

 

grato.

Lailton

Compartilhar este post


Link para o post
Compartilhar em outros sites

$er = '/<img>(.*)<\/img>/i';

Para a função preg_match_all(), a expressão regular sempre deve conter os delimitadores.

 

Caso interesse, um ótimo guia prático sobre expressões regulares é este do Aurélio.

 

[]'s ;)

 

Eu comprei o livro dele expressoes regulares 2 edicao mais ainda to com duficuldade, li 2 vezes mais algumas coisas

ainda nao caiu rsrs

 

 

 

veja se consegue ajudar

 

<?

$codigo="UPB50"; // codigo do produto

$url = "http://www.apc.com/resource/include/techspec_index.cfm?base_sku=".$codigo."&isocountrycode=BR";

$lines = file ($url);

 

$er='/<img src="(.*)">/i';

foreach ($lines as $line_num => $line)

{

 

if (preg_match_all($er, $line, $result))

{

print_r($result);

echo "<br>";

}

}

?>

o que eu quero com tudo isso é pegar isso aqui abaixo de preferencia somente apartir do src=" ( isso ) " <- ate aqui

 

<img src="/resource/images/products/200/6BEF5117-5056-AE36-FEB9639741631B1E_b_h_200x100.jpg" width="200" height="100" border="0" alt="UPB50" />

 

mais olha o resultado...

 

 

Array ( [0] => Array ( [0] => ) [1] => Array ( [0] => /resource/images/header/flag_BR.gif" alt="BRAZIL" width="18" height="11" border="0" align="absmiddle" id="header-country-flag ) )

Array ( [0] => Array ( [0] =>

) [1] => Array ( [0] => /resource/images/products/200/6BEE4158-5056-AE36-FE934FC9AA44D703_f_h_200x100.jpg" width="200" height="100" border="0" alt="UPB50" />

 

 

Por favor se poder me ajudar preciso muito disso... obrigado pela paciencia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vá citando os erros que tentamos arrumá-los por aqui, é coisa simples, não precisa gastar dinheiro, só um pouco de tempo para aprender. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Diga quais os erros que foram exibidos, o que era esperado, como está seu código e etc.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado deu certo... se fose assim $string="<img>imagem/asd/asd/asd/asdas/tal.jpg</img>";

 

como se faria ?

 

$er='<{3}>(.*)</>'

 

expressão

$er = '^[<]([img=+)*[>]*(.+)[<](])*[>]?$';

 

sample:

<?php

$str = '<img>imagem/asd/asd/asd/asdas/tal.jpg</img>';

$rule = '^[<]([img=+)*[>]*(.+)[<](])*[>]?$';
if( eregi( $rule, $str, $rs ) ){
print_r( $rs );
}else{
echo 'NG';
}

?>

 

 

em ER, as expressões podem ser variadas e retornar o mesmo resultado

 

outro exemplo

 

[(\D+)]

e

#[^0-9]#

 

retornam o mesmo resultado

 

$str = '1a2b3c';

$rule = '#[^0-9]#';
echo preg_replace( $rule, '', $str );

echo '<br>';

$rule = '[(\D+)]';
echo preg_replace( $rule, '', $str );

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

$codigo="UPB50";

$url = "http://www.apc.com/resource/include/techspec_index.cfm?base_sku=".$codigo."&isocountrycode=BR";

$lines = file ($url);

$er = '/<img>(.*)<\/img>/i';

foreach ($lines as $line_num => $line)

{

$line=str_replace('<img src="/resource/images/',"<img>resource/images/",$line);

$line=str_replace('" width="200" height="100" border="0" alt="'.$codigo.'" />','</img>',$line);

 

if (preg_match_all($er, $line, $result))

{

echo print_r($result);

echo "<br>";

}

}

?>

 

resultado

 

Array

(

[0] => Array

(

[0] => <img>resource/images/products/200/6BEE4158-5056-AE36-FE934FC9AA44D703_f_h_200x100.jpg</img></a><a onClick="return popUp("products/moreimages.cfm?partnum/href=/products/moreimages.cfm?partnum=UPB50&type=Back&loc=6BEF5117-5056-AE36-FEB9639741631B1E_pr.jpg target="_blank" class="nav" =""><img>resource/images/products/200/6BEF5117-5056-AE36-FEB9639741631B1E_b_h_200x100.jpg</img>

)

 

[1] => Array

(

[0] => resource/images/products/200/6BEE4158-5056-AE36-FE934FC9AA44D703_f_h_200x100.jpg</img></a><a onClick="return popUp("products/moreimages.cfm?partnum/href=/products/moreimages.cfm?partnum=UPB50&type=Back&loc=6BEF5117-5056-AE36-FEB9639741631B1E_pr.jpg target="_blank" class="nav" =""><img>resource/images/products/200/6BEF5117-5056-AE36-FEB9639741631B1E_b_h_200x100.jpg

)

 

)

 

 

ele ta pegando mais coisas apos o </img> é so por um fim ai rsrs como fazer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

$er='/<img src="(.*)"(.*?)\/>/i';
ainda nada pessoal...

 

<?php

$codigo="UPB50";

$url = "http://www.apc.com/resource/include/techspec_index.cfm?base_sku=".$codigo."&isocountrycode=BR";

$lines = file (url);

$er = '/<img>(.*)<\/img>/i';

foreach ($lines as $line_num => $line)

{

$line=str_replace('<img src="/resource/images/',"<img>resource/images/",$line);

$line=str_replace('" width="200" height="100" border="0" alt="'.$codigo.'" />','</img>',$line);

if (preg_match_all($er, $line, $result))

{

echo print_r($result);

echo "<br>";

}

}

?>

 

 

Array

(

[0] => Array

(

[0] => <img>resource/images/products/200/6BEE4158-5056-AE36-FE934FC9AA44D703_f_h_200x100.jpg</img></a><a onClick="return popUp("products/moreimages.cfm?partnum/href=/products/moreimages.cfm?partnum=UPB50&type=Back&loc=6BEF5117-5056-AE36-FEB9639741631B1E_pr.jpg target="_blank" class="nav" =""><img>resource/images/products/200/6BEF5117-5056-AE36-FEB9639741631B1E_b_h_200x100.jpg</img>

)

 

[1] => Array

(

[0] => resource/images/products/200/6BEE4158-5056-AE36-FE934FC9AA44D703_f_h_200x100.jpg</img></a><a onClick="return popUp("products/moreimages.cfm?partnum/href=/products/moreimages.cfm?partnum=UPB50&type=Back&loc=6BEF5117-5056-AE36-FEB9639741631B1E_pr.jpg target="_blank" class="nav" =""><img>resource/images/products/200/6BEF5117-5056-AE36-FEB9639741631B1E_b_h_200x100.jpg

)

 

)

 

resource/images/products/200/6BEE4158-5056-AE36-FE934FC9AA44D703_f_h_200x100.jpg

 

preciso pegar so essa imagem.. so o que tiver dentro do img aqui /img (FIM)

note que ele ta pegando o </a><a ..................

Compartilhar este post


Link para o post
Compartilhar em outros sites

precisa ser em ER ?

 

exemplo simples e prático

 

<?php

function TagExtract( $str, $tagIni, $tagEnd )
{

	$arr = explode( $tagIni, $str );

	foreach( $arr as $k => $v )
	{
		$arr[$k] = substr( $v, 0, strpos( $v, $tagEnd ) );
	}

	if( empty( $arr[0] ) )
	{
		unset( $arr[0] );
	}

	return $arr;

}



$str = <<<STR
	<html>
	<body>
	BAR
	<br>
	LOREM ISPSUM
	<img src="/resource/images/products/200/6BEF5117-5056-AE36-FEB9639741631B1E_b_h_200x100.jpg" width="200" height="100" border="0" alt="UPB50" />
	<br>other text2 <img src="/resource/images/products/200/ok.png" width="300" height="100" />
	<br>other text3 <img src="/resource/images/products/200/image.gif" width="100" height="100" border="0" />
	</body>
	</html>
STR;

$rs = TagExtract( $str, '<img src="', '"' );
print_r( $rs );
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

precisa ser em ER ?

 

exemplo simples e prático

 

<?php

function TagExtract( $str, $tagIni, $tagEnd )
{

	$arr = explode( $tagIni, $str );

	foreach( $arr as $k => $v )
	{
		$arr[$k] = substr( $v, 0, strpos( $v, $tagEnd ) );
	}

	if( empty( $arr[0] ) )
	{
		unset( $arr[0] );
	}

	return $arr;

}



$str = <<<STR
	<html>
	<body>
	BAR
	<br>
	LOREM ISPSUM
	<img src="/resource/images/products/200/6BEF5117-5056-AE36-FEB9639741631B1E_b_h_200x100.jpg" width="200" height="100" border="0" alt="UPB50" />
	<br>other text2 <img src="/resource/images/products/200/ok.png" width="300" height="100" />
	<br>other text3 <img src="/resource/images/products/200/image.gif" width="100" height="100" border="0" />
	</body>
	</html>
STR;

$rs = TagExtract( $str, '<img src="', '"' );
print_r( $rs );
?>

 

Resolvido Obrigado. UFFA

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.