我有以下代码:
<strong>this is test1 </strong>
<strong>this is test2 </strong>
<strong>this is test3 </strong>
<strong>this is test4 </strong>
我需要将其更改为:
<div id="test1"><strong>this is test1 </strong></div>
<div id="test2"><strong>this is test2 </strong></div>
<div id="test3"><strong>this is test3 </strong></div>
用str_replace或者什么......有什么想法吗?由于文本来自CMS。当单击菜单项时,我需要将此文本的ID移动到子部分。
答案 0 :(得分:0)
尝试:
for ($i = 1; $i <= 4; $i++) {
$test$i = str_replace('<strong>','<div id="test'.$i.'"><strong>',
'<strong>this is test'.$i.'</strong>');
$test$i = str_replace('</strong>','</strong></div>',
$test$i);
}
您现在拥有$ test1,$ test2,$ test3和$ test4。
编辑: 请注意,PHP是服务器端,您必须重新加载页面才能执行PHP代码。
编辑:新代码:
$text = '<strong>this is a test</strong><strong>this is a test</strong>';
function str_replacef($from, $to, $subject)
{
$from = '/'.preg_quote($from, '/').'/';
return preg_replace($from, $to, $subject, 1);
}
for ($i = 1; $i <= 2; $i++) {
$text = str_replacef('<strong>','<div id="'.$i.'"><strong2>',$text);
$text = str_replacef('</strong>','</strong2></div>',$text);
}
$text = str_replace('<strong2>','<strong>',$text);
$text = str_replace('</strong2>','</strong>',$text);
echo $text;
答案 1 :(得分:0)
您也可以使用preg_replace。
我正在工作时在手机上打字,但这样的事情以及Björns的for循环回答都会这样做。
preg_replace("/(<strong>.*<\/strong>)/", "<div id=test" . $i . ">$1</div>"