如何使用PHP获取文本格式的图像路径?

时间:2016-10-12 14:58:55

标签: 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

2 个答案:

答案 0 :(得分:0)

echo substr($ images [0],2,strlen($ images [0]) - 5); 如果我没有错,请$images[0] =\"https://www.google.co.th/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png\"

然后substr函数将$ images [0]字符串切片,它将从索引2开始并获取strlen($ images [0]) - 5个字符串是strlen($ images [0])是字符串的大小 - 5然后它将产生你想要的结果。

答案 1 :(得分:0)

可以使用stripslashes删除其中的html实体并使用html_entity_decode

所以,你的回声应该是这样的:

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

OR

echo stripslashes($images[0]);

取决于您是否也要转换html实体。