Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用包含模式的不同字符串替换字符串_Php_Html_Arrays_Search - Fatal编程技术网

Php 用包含模式的不同字符串替换字符串

Php 用包含模式的不同字符串替换字符串,php,html,arrays,search,Php,Html,Arrays,Search,假设你有一根像 $str = "<img src='i12'><img src='i105'><img src='i12'><img src='i24'><img src='i15'>...."; $str=“…”; 是否可以用名为$arr的数组的nth值替换每个i+n 例如,被替换为如果我是你,我只需解析标记,并相应地处理/更改它: $dom = new DOMDocument; $dom->loadHTML($str);/

假设你有一根像

$str = "<img src='i12'><img src='i105'><img src='i12'><img src='i24'><img src='i15'>....";
$str=“…”;
是否可以用名为
$arr
的数组的
n
th值替换每个
i+n

例如,
被替换为

如果我是你,我只需解析标记,并相应地处理/更改它:

$dom = new DOMDocument;
$dom->loadHTML($str);//parse your markup string
$imgs = $dom->getElementsByTagName('img');//get all images
$cleanStr = '';//the result string
foreach($imgs as $img)
{
    $img->setAttribute(
        'src',
        //get value of src, chop of first char (i)
        //use that as index, optionally cast to int
        $array[substr($img->getAttribute('src'), 1)]
    );
    $cleanStr .= $dom->saveXML($img);//get string representation of node
}
echo $cleanStr;//echoes new markup
工作演示
现在在演示中,您将看到src属性被替换为一个字符串,如
$array[n]
,上面的代码将用数组的值替换这些值…

如果我是您,我只需解析标记,并相应地处理/更改它:

$dom = new DOMDocument;
$dom->loadHTML($str);//parse your markup string
$imgs = $dom->getElementsByTagName('img');//get all images
$cleanStr = '';//the result string
foreach($imgs as $img)
{
    $img->setAttribute(
        'src',
        //get value of src, chop of first char (i)
        //use that as index, optionally cast to int
        $array[substr($img->getAttribute('src'), 1)]
    );
    $cleanStr .= $dom->saveXML($img);//get string representation of node
}
echo $cleanStr;//echoes new markup
工作演示
现在在演示中,您将看到src属性被替换为一个字符串,如
$array[n]
,上面的代码将用数组的值替换这些值…

如果我是您,我只需解析标记,并相应地处理/更改它:

$dom = new DOMDocument;
$dom->loadHTML($str);//parse your markup string
$imgs = $dom->getElementsByTagName('img');//get all images
$cleanStr = '';//the result string
foreach($imgs as $img)
{
    $img->setAttribute(
        'src',
        //get value of src, chop of first char (i)
        //use that as index, optionally cast to int
        $array[substr($img->getAttribute('src'), 1)]
    );
    $cleanStr .= $dom->saveXML($img);//get string representation of node
}
echo $cleanStr;//echoes new markup
工作演示
现在在演示中,您将看到src属性被替换为一个字符串,如
$array[n]
,上面的代码将用数组的值替换这些值…

如果我是您,我只需解析标记,并相应地处理/更改它:

$dom = new DOMDocument;
$dom->loadHTML($str);//parse your markup string
$imgs = $dom->getElementsByTagName('img');//get all images
$cleanStr = '';//the result string
foreach($imgs as $img)
{
    $img->setAttribute(
        'src',
        //get value of src, chop of first char (i)
        //use that as index, optionally cast to int
        $array[substr($img->getAttribute('src'), 1)]
    );
    $cleanStr .= $dom->saveXML($img);//get string representation of node
}
echo $cleanStr;//echoes new markup
工作演示 现在在演示中,您将看到src属性被替换为一个字符串,如
$array[n]
,上面的代码将用数组的值替换这些值…

我将用于此:

$pattern="/(src=)'\w(\d+)'/";
$replacement = '${1}\'\$arr[$2]\'';
preg_replace($pattern, $replacement, $str);
$pattern=“/(src=)”\w(\d+)”/

  • 它匹配文本块,如
    src='letter+digits'
  • 这将捕获
    src=
    和数字块,以便能够将它们打印回来
$replacement='${1}\\$arr[$2]\'

  • 这就使得替代品本身成为可能
试验
php>$str=“…”;
php>$pattern=“/(src=)”\w(\d+)”/;
php>$replacement='${1}\'\$arr[$2]\'';
php>echo preg_replace($pattern,$replacement,$str);
....
我将使用以下方法:

$pattern="/(src=)'\w(\d+)'/";
$replacement = '${1}\'\$arr[$2]\'';
preg_replace($pattern, $replacement, $str);
$pattern=“/(src=)”\w(\d+)”/

  • 它匹配文本块,如
    src='letter+digits'
  • 这将捕获
    src=
    和数字块,以便能够将它们打印回来
$replacement='${1}\\$arr[$2]\'

  • 这就使得替代品本身成为可能
试验
php>$str=“…”;
php>$pattern=“/(src=)”\w(\d+)”/;
php>$replacement='${1}\'\$arr[$2]\'';
php>echo preg_replace($pattern,$replacement,$str);
....
我将使用以下方法:

$pattern="/(src=)'\w(\d+)'/";
$replacement = '${1}\'\$arr[$2]\'';
preg_replace($pattern, $replacement, $str);
$pattern=“/(src=)”\w(\d+)”/

  • 它匹配文本块,如
    src='letter+digits'
  • 这将捕获
    src=
    和数字块,以便能够将它们打印回来
$replacement='${1}\\$arr[$2]\'

  • 这就使得替代品本身成为可能
试验
php>$str=“…”;
php>$pattern=“/(src=)”\w(\d+)”/;
php>$replacement='${1}\'\$arr[$2]\'';
php>echo preg_replace($pattern,$replacement,$str);
....
我将使用以下方法:

$pattern="/(src=)'\w(\d+)'/";
$replacement = '${1}\'\$arr[$2]\'';
preg_replace($pattern, $replacement, $str);
$pattern=“/(src=)”\w(\d+)”/

  • 它匹配文本块,如
    src='letter+digits'
  • 这将捕获
    src=
    和数字块,以便能够将它们打印回来
$replacement='${1}\\$arr[$2]\'

  • 这就使得替代品本身成为可能
试验
php>$str=“…”;
php>$pattern=“/(src=)”\w(\d+)”/;
php>$replacement='${1}\'\$arr[$2]\'';
php>echo preg_replace($pattern,$replacement,$str);
....