我的支持html的内容条目中遍布以下格式的标签:
<img alt="" src="{assets_2100:{filedir_12}HappyDog.jpg}" style="height:400px; width:100px">
我需要在前端显示之前通过php函数以以下格式更新所有这些内容,或者只需一次性更新mysql:
<img alt="" src="/uploads/HappyDog.jpg" data-assetid="2100" data-filedir="12" data-filename="HappyDog.jpg" style="height:400px; width:100px”>
“/uploads/”目录路径适用于所有图像!
这些标签是在从ee迁移内容时携带的
edited:好的,到目前为止,我第一步尝试从地址中删除{filedir\ux}:
$parse_encoded = true;
$pattern = ($parse_encoded)
? '/(?:{|{)filedir_(\d+)(?:}|})/'
: '/{filedir_(\d+)}/';
if (preg_match_all($pattern, $htmlcontent, $matches, PREG_SET_ORDER))
{
foreach ($matches as $match){
$htmlcontent = str_replace($match[0], '', $htmlcontent);
}
}
然后修改它以删除“{asset”,但在“src”属性处以“}”结束!
1条答案
按热度按时间w3nuxt5m1#
搜索匹配项
preg_match_all
循环结果并使用str_replace
是浪费时间。php有两个用于正则表达式字符串替换的函数:preg_replace
以及preg_replace_callback
(分别用于简单和复杂的替换)。注意,我更改了变量名:您必须在camelcase、snake\u case和小写之间进行选择。