示例我有一个像这样的img标签......
<img alt="INLINE:143246;w=240;h=240" class="wysiwyg-inline-image" src="/sites/default/files/styles/inline_image_temp_240x240/public/2013/05/30/600x600_30.png?itok=7mP9F2QH" />
我希望将其替换为......
<p><!-- INLINE:143220;w=240;h=240 --></p>
在根据img
alt属性保存到数据库之前。
注意:图像数量是动态的,因为用户可能会上传不同大小的多个图像。图像大小位于图像alt。
到目前为止,我有这段代码。
preg_match_all("/(<img[^>]+>)/i", $node->body[LANGUAGE_NONE][0]['value'], $matches);
foreach($matches as $match) {
// Replace all matched elements here.
}
答案 0 :(得分:3)
如果要替换它,请使用preg_replace。考虑一下你在$ str变量中得到了字符串,然后将使用preg_replace来实现它。
$str = preg_replace('/<img.*?alt="(.+?)".*?>/', '<p><!-- $1 --></p>', $str);
答案 1 :(得分:3)
$html = $node->body[LANGUAGE_NONE][0]['value']; // saving value in a variable to manipulate
preg_match_all("/(<img[^>]+>)/i", $html , $matches); // returns all image tags
foreach($matches as $match) {
$str = preg_replace('/<img.*alt="(.+?)".*?>/', '<p><!-- $1 --></p>', $html);
// get the alt tag text
$html = str_replace($mathch, $str, $html); replace in the original string
}
// save $html in database