Php 将自制的图像dl属性替换为正确的图像dl标记
我想替换所有图像(使用自己的特殊属性)Php 将自制的图像dl属性替换为正确的图像dl标记,php,regex,image,Php,Regex,Image,我想替换所有图像(使用自己的特殊属性) 进入这个 <dl class="imgLeft"> <dt> <img width="720" height="321" alt="Marl's Palace of Sin" src="/images/sin-ambiente.jpg" title="Innenansichten des Hauses"> </dt> <dd>text-text-text-text</
进入这个
<dl class="imgLeft">
<dt>
<img width="720" height="321" alt="Marl's Palace of Sin" src="/images/sin-ambiente.jpg" title="Innenansichten des Hauses">
</dt>
<dd>text-text-text-text</dd>
</dl>
文本文本文本文本
我的php函数
function dlSytler($htmlContent)
{
$regex = '#<img([^>]*).*dl="([^"/]*/?[^".]*\.[^"]*)"([^>]*).*>#';
$replace = '<dl class="imgLeft"><dt><img$1 $3> </dt> <dd>$2</dd> </dl>';
$htmlContent = preg_replace($regex, $replace, $htmlContent);
return $htmlContent;
}
函数dlSytler($htmlContent)
{
$regex='#]*.*dl=“([^”/]*/?[^.]*.[^”]*.[^>]*)”([^>]*).>#”;
$replace='$2';
$htmlContent=preg_replace($regex,$replace,$htmlContent);
返回$htmlContent;
}
问题是,替换并不能在每个图像上都起作用(我不知道为什么)
我认为我的正则表达式规则并不完美。有人能帮我吗?如果你问问题出在哪里,我会给你一些建议 对于初学者来说,
[^>]*.*.
的想法没有任何意义。它说的是“特定地匹配X或什么都不匹配,或者匹配任何东西或什么都不匹配。”在这种情况下,只需匹配任何东西就很容易了
这更简单
搜索:(]*>)
替换:\1\3\2
它对哪些图像有效,对哪些图像无效?
function dlSytler($htmlContent)
{
$regex = '#<img([^>]*).*dl="([^"/]*/?[^".]*\.[^"]*)"([^>]*).*>#';
$replace = '<dl class="imgLeft"><dt><img$1 $3> </dt> <dd>$2</dd> </dl>';
$htmlContent = preg_replace($regex, $replace, $htmlContent);
return $htmlContent;
}