php - 用字符串中的完整图像标签替换图像 src

标签 php html

我有这段代码可以用它们各自的 src.. 替换字符串中的图像标签。

$url='<img class="emojioneemoji" src="http://localhost/sng/assets/js/plugins/em/2.1.4/assets/png/1f602.png">checking<img class="emojioneemoji" src="http://localhost/sng/assets/js/plugins/em/2.1.4/assets/png/1f601.png"><img class="emojioneemoji" src="http://localhost/sng/assets/js/plugins/em/2.1.4/assets/png/1f62c.png">working check<img class="emojioneemoji" src="http://localhost/sng/assets/js/plugins/em/2.1.4/assets/png/1f600.png">';


$doc = new DOMDocument();
        @$doc->loadHTML($url);

        $tags = $doc->getElementsByTagName('img');
        $str = "-" ;
        foreach ($tags as $tag) {
         $img_path =  $tag->getAttribute('src');
         $directory = $img_path;
         $ee = pathinfo($directory);
         $pic_name=  $ee['basename'];
         $next = "" ;
         if ($tag->nextSibling && get_class($tag->nextSibling) == "DOMText") {
            $next = $tag->nextSibling->wholeText . "-" ;
         }
         $str .= $pic_name . "-" . $next ;
        }
        echo  $str ;

上面代码的输出是

-1f602.png-checking-1f601.png-1f62c.png-working check-1f600.png-

现在如何将这个包含在“-”中的图像 src 替换为上面的完整图像标签?

最佳答案

您可以将值存储在数组中。现在您可以使用这个数组做进一步的工作。

$url='<img class="emojioneemoji" src="http://localhost/sng/assets/js/plugins/em/2.1.4/assets/png/1f602.png">checking<img class="emojioneemoji" src="http://localhost/sng/assets/js/plugins/em/2.1.4/assets/png/1f601.png"><img class="emojioneemoji" src="http://localhost/sng/assets/js/plugins/em/2.1.4/assets/png/1f62c.png">working check<img class="emojioneemoji" src="http://localhost/sng/assets/js/plugins/em/2.1.4/assets/png/1f600.png">';


$doc = new DOMDocument();
@$doc->loadHTML($url);

$tags = $doc->getElementsByTagName('img');
$str = [] ;
$i = 0;

foreach ($tags as $tag) {
    $img_path =  $tag->getAttribute('src');
    $directory = $img_path;
    $ee = pathinfo($directory);
    $pic_name=  $ee['basename'];
    $next = "" ;
    if ($tag->nextSibling && get_class($tag->nextSibling) == "DOMText") {
        $next = $tag->nextSibling->wholeText;
    }

    array_push($str, ['src' => $pic_name, 'next' => $next]);
}

echo "<pre>";
print_r($str);

关于php - 用字符串中的完整图像标签替换图像 src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48521739/

相关文章:

php - 在 Zend framework Select 中选择一个带有虚拟值的虚拟列?

javascript - 菜单隐藏在布局 div 后面

php - 如何在不更改扩展名的情况下更改上传文件的名称

php - 下拉值不显示在 codeigniter 的 View 文件中

php - 尝试在 Laravel 中使用循环联合语句

javascript - 在 IF 语句中使用 VB 中的 'Day' 函数来更改日期并根据工作日发送表格

javascript - 为了让浏览器知道始终使用缓存,我应该设置什么响应 header ?

php - jQuery 无法处理加载的内容

javascript - 向用户显示表单发布方法后得到的解析结果

javascript - Webpack HTML 捆绑 - 如何删除空格和新行?