7

我使用以下代码提取图像 src 路径。但是当图像文件名具有特殊字符时,这是一个问题(例如:~ DQBTZ_UC(G@STWO_1R2U_Q4.gif),输出变成这样:~ 6Z6W4%255BO29FQ%255BA4YN_% 255BFR9%2529M.gif

如何解决这个问题?对不起我糟糕的英语。

function _get_imagepath($content){

    $doc = new DOMDocument();
    $doc->loadHTML($content);
    $imagepaths=array();
    $imageTags = $doc->getElementsByTagName('img');
    $folder=file_directory_path();
    foreach($imageTags as $tag) {

        $imagepaths[]=$tag->getAttribute('src');
    }

    if(!empty($imagepaths)){

        return $imagepaths;
    }else{

        return FALSE;
    }

}
4

3 回答 3

10

您的文件名似乎是 URL 编码的。看看http://php.net/manual/en/function.urldecode.php

IE:

foreach($imageTags as $tag) {
    $imagepaths[]=urldecode($tag->getAttribute('src'));
}
于 2012-11-06T08:37:41.390 回答
0

您将获得编码的 URL。

你想使用urldecode

解码给定字符串中的任何 %## 编码。加号 ('+') 被解码为空格字符。

PHP 手册中的 urldecode()

于 2012-11-06T08:37:18.927 回答
0

代替

return $imagepaths;

return urldecode($imagepaths);

解码您的图片网址。

于 2012-11-06T08:39:26.393 回答