2014-10-15 2 views
0

내 코드입니다 작동하지 :빌 않는 str_replace와 및 인용

 $retval = preg_match('/<img.+src=[\'"](?P<src>.+)[\'"].*>/i', $content, $image); 
     $imgreal = str_replace("&quot;", "\"", $image['src']); 
     if ($retval=="0") $imgthumb = ""; else $imgthumb = "<img align='left' src='".$imgreal."' width=100 />"; 

내가 문자열에서 IMG을 추출해야하지만, 이것은 나에게 모든 시간을 준 : 그 &을 변경할 수있는 방법

"http://www.racingzone.hu/pictures/news/mid/simroc-3---nyolc-uj-auto_2012-09-21-1348222495.jpg&quot; alt=&quot;&quot; width=&quot;490&quot; height=&quot;214 

을 I가 일을하지 않는 것이 htmlspecialchars_decode을 시도했지만

일반 문자 "를 따옴표?.

편집 : az sql 테이블에서 오는 문자열.

MySQL의에서

원래 문자열 : 하여 테이블에 코딩 TinyMCE에

만들어

<p><img style="float: left; margin: 3px;" src="http://www.racingzone.hu/pictures/news/mid/simroc-3---nyolc-uj-auto_2012-09-21-1348222495.jpg" alt="" width="490" height="214" /></p> 
<p>todik p&uacute;ő&uacute;ő&oacute;&uuml;sztotodik p&uacute;ő&uacute;ő&oacute;&uuml;sztotodik 

문자열 :

+0

당신이 htmlspecialchars_decode으로 ENT_QUOTES 플래그를 사용 했습니까? –

+0

예, 시도해 보았습니다. 동일한 문자열을 얻을 수 있습니다. – lacas

+0

원본 문자열 (예 :'$ content'의 예)을 제공해 주시겠습니까? – andy

답변

1

latin2_hungarian_ci 왜 모두 항상 물건의 이러한 종류의 싶지 않습니다 정규식?

간단히 :

$data='<p><img style="float: left; margin: 3px;" src="http://www.racingzone.hu/pictures/news/mid/simroc-3---nyolc-uj-auto_2012-09-21-1348222495.jpg" alt="" width="490" height="214" /></p> 
<p>todik p&uacute;ő&uacute;ő&oacute;&uuml;sztotodik p&uacute;ő&uacute;ő&oacute;&uuml;sztotodik'; 

$a=explode('src="',$data); 
if(count($a)<2) 
    { 
    echo 'no image'; 
    die; 
    } 

$p=strpos($a[1],'"',0); 
if($p===false){ 
    echo 'no quote found'; 
    die; 
    } 

$url=substr($a[1],0,$p); 

echo $url; 

출력 :

http://www.racingzone.hu/pictures/news/mid/simroc-3---nyolc-uj-auto_2012-09-21-1348222495.jpg