2016-10-12 18 views
-1

PHPを使用してテキスト形式の画像パスを取得するには?PHPを使用してテキスト形式のイメージパスを取得するには?

<p><span style="\&quot;background-color:" rgb(255,="" 255,="" 0);="" font-weight:="" bold;="" font-style:="" italic;="" text-decoration:="" underline;\"="">TEST</span>&nbsp;<img src="\&quot;https://www.google.co.th/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png\&quot;" style="\&quot;width:" 544px;\"="">&nbsp;<span style="\&quot;font-style:" italic;\"="">TEST<img src="\&quot;https://www.wikipedia.org/portal/wikipedia.org/assets/img/Wikipedia-logo-v2.png\&quot;" style="\&quot;width:" 200px;\"=""></span><br></p> 

私のコードは次のとおりです:私は私のコードをテスト

<?php 
$str='<p><span style="\&quot;background-color:" rgb(255,="" 255,="" 0);="" font-weight:="" bold;="" font-style:="" italic;="" text-decoration:="" underline;\"="">TEST</span>&nbsp;<img src="\&quot;https://www.google.co.th/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png\&quot;" style="\&quot;width:" 544px;\"="">&nbsp;<span style="\&quot;font-style:" italic;\"="">TEST<img src="\&quot;https://www.wikipedia.org/portal/wikipedia.org/assets/img/Wikipedia-logo-v2.png\&quot;" style="\&quot;width:" 200px;\"=""></span><br></p>'; 

libxml_use_internal_errors(true); 
$dom=new DOMDocument; 
$dom->validateOnParse=false; 
$dom->standalone=true; 
$dom->strictErrorChecking=false; 
$dom->recover=true; 
$dom->formatOutput=false; 
$dom->loadHTML($str); 
libxml_clear_errors(); 
$xp=new DOMXPath($dom); 
$col=$xp->query('//img'); 
$images=array(); 
foreach($col as $img) $images[]=$img->getAttribute('src'); 
echo $images[0]; 
?> 

は、それが示しています

\"https://www.google.co.th/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png\" 

は、私がどのように知りたい

私はこのようなテキストフォーマットを持っています表示するコードを変更する:

https://www.google.co.th/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png 
+0

このテキストの一部は、 'addslashes()'と 'htmlentities()'によって実行されています。 – AbraCadaver

+0

言い換えれば、なぜそのHTML部分が完全に文字化けしていないのか、そして、あなたが思っていないと思われる部分と完全に無効な部分との間のどこですか? – deceze

答えて

0

echo substr($ images [0]、2、strlen($ images [0]) - 5); その後、SUBSTR関数は、[0]の文字列をスライスするために$画像を撮影します
$images[0] =\"https://www.google.co.th/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png\"

、それがインデックス2から開始し、strlenを得れば、私は間違っていないよ場合($画像[0]) - 文字の5枚ましたis strlen($ images [0])は文字列のサイズです - 5それはあなたが望む結果を生成します。

0

stripslashesを使用して該当する文字でHTMLエンティティを削除したい場合は、html_entity_decodeを使用してください。

だから、あなたのエコーのようなものになります。あなたにもhtmlエンティティを変換したい場合に応じて、

echo stripslashes(html_entity_decode($images[0])); 

OR

echo stripslashes($images[0]); 

を。

関連する問題