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);
....