使用preg_replace_callback用新值替换html内容中的特定标签

随机初学者

很抱歉,如果已经有一些帖子出现相同的问题,但是,我尝试了所有操作,但仍然找不到我的代码似乎有问题的地方。

所以我想要用我自己的内容替换src属性的内容。例如,假设我有一个这样的HTML文档:

<div>
    <p>Hello</p>
    <img src="123">
    <p>
        <img src="abc123">
    </p>
    <h1>Title</h1>
    <img src="w?ijais,cn,a;;sqikxiasassaswxzdvfrfr...">
</div>

我想搜索每个图像标签,剥离src值,进行一些解析,然后将其替换为另一个值。为了简单起见,这是我的带有随机逻辑的PHP代码:

//The HTML content
$content = "<div><p>Hello</p>...";

//A number I want to use to modify the src values
$id = 9;

//Starts with <img src=" and ends with "/> with any number of characters in the middle
//I escape the double quotes: \"
$pattern = "/<img src=\"(.*)\">/";

//Calling preg_replace_callback
$result = preg_replace_callback($pattern, function($matches) use($id){
    changeImage($matches[0], $id);
}, $content);

echo $result;

//changeImage function
public function changeImage($image, $id){
    //Stripping the src value
    $img = str_replace("<img src=\"", "", $image);
    $img = str_replace("\">", "", $img);
    //Modifying the src value
    $img = $id . "-" . $img[0] . $img[1];
    //Putting back the tags
    $img = "<img src=\"$img\">";
    return $img;
}

结果应为:

 <div>
    <p>Hello</p>
    <img src="9-12">
    <p>
        <img src="9-ab">
    </p>
    <h1>Title</h1>
    <img src="9-w?">
</div>

这是我得到的:

<div>
    <p>Hello</p>

    <p>
    
    </p>
    <h1>Title</h1>

</div>
贝托99

您需要返回要替换的字符串,因此从此:

$result = preg_replace_callback($pattern, function($matches) use($id){
    changeImage($matches[0], $id);
}, $content);

对此:

$result = preg_replace_callback($pattern, function($matches) use($id){
    return changeImage($matches[0], $id);
}, $content);

编辑:建议/<img[^>]*>/用作正则表达式以匹配img标签

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用preg_replace_callback替换不推荐使用的preg_replace / e

来自分类Dev

用preg_replace_callback替换/ e修饰符

来自分类Dev

用preg_replace_callback替换/ e修饰符

来自分类Dev

用preg_replace_callback替换'e'修饰符

来自分类Dev

使用preg_replace_callback

来自分类Dev

将preg_replace替换为preg_replace_callback,并使用数组替换

来自分类Dev

将preg_replace替换为preg_replace_callback,并使用数组作为替换

来自分类Dev

如何在未知值上使用preg_replace_callback?

来自分类Dev

将preg_replace(使用不建议使用的/ e参数)替换为preg_replace_callback

来自分类Dev

preg_replace_callback返回重复的值

来自分类Dev

preg_replace_callback返回重复的值

来自分类Dev

用preg_replace_callback和str_replace替换文本

来自分类Dev

使用preg_replace_callback排序属性

来自分类Dev

如何使用preg_replace_callback

来自分类Dev

preg_replace_callback存储在全局数组中匹配并替换

来自分类Dev

需要计算匹配数并使用preg_replace_callback替换“ nth”个匹配项

来自分类Dev

preg_replace_callback如何增加和替换?

来自分类Dev

如何用preg_replace_callback()替换代码?(/ e)

来自分类Dev

搜索并替换特定标签之间的内容

来自分类Dev

在XML文件中替换特定标签的值

来自分类Dev

PHP将新行\ n添加到preg_replace_callback函数中

来自分类Dev

PHP将新行\ n添加到preg_replace_callback函数中

来自分类Dev

preg_replace_callback create_function 已弃用

来自分类Dev

preg_replace-用新值替换数据属性?

来自分类Dev

preg_replace_callback在php中不起作用

来自分类Dev

Preg_replace_callback存储在数组中

来自分类Dev

将preg_replace_callback与简码一起使用

来自分类Dev

如何使用preg_replace_callback解析字符串

来自分类Dev

如何在preg_replace_callback中使用递归

Related 相关文章

  1. 1

    用preg_replace_callback替换不推荐使用的preg_replace / e

  2. 2

    用preg_replace_callback替换/ e修饰符

  3. 3

    用preg_replace_callback替换/ e修饰符

  4. 4

    用preg_replace_callback替换'e'修饰符

  5. 5

    使用preg_replace_callback

  6. 6

    将preg_replace替换为preg_replace_callback,并使用数组替换

  7. 7

    将preg_replace替换为preg_replace_callback,并使用数组作为替换

  8. 8

    如何在未知值上使用preg_replace_callback?

  9. 9

    将preg_replace(使用不建议使用的/ e参数)替换为preg_replace_callback

  10. 10

    preg_replace_callback返回重复的值

  11. 11

    preg_replace_callback返回重复的值

  12. 12

    用preg_replace_callback和str_replace替换文本

  13. 13

    使用preg_replace_callback排序属性

  14. 14

    如何使用preg_replace_callback

  15. 15

    preg_replace_callback存储在全局数组中匹配并替换

  16. 16

    需要计算匹配数并使用preg_replace_callback替换“ nth”个匹配项

  17. 17

    preg_replace_callback如何增加和替换?

  18. 18

    如何用preg_replace_callback()替换代码?(/ e)

  19. 19

    搜索并替换特定标签之间的内容

  20. 20

    在XML文件中替换特定标签的值

  21. 21

    PHP将新行\ n添加到preg_replace_callback函数中

  22. 22

    PHP将新行\ n添加到preg_replace_callback函数中

  23. 23

    preg_replace_callback create_function 已弃用

  24. 24

    preg_replace-用新值替换数据属性?

  25. 25

    preg_replace_callback在php中不起作用

  26. 26

    Preg_replace_callback存储在数组中

  27. 27

    将preg_replace_callback与简码一起使用

  28. 28

    如何使用preg_replace_callback解析字符串

  29. 29

    如何在preg_replace_callback中使用递归

热门标签

归档