我正在寻找在图像标记(src)中找到所有图片路径的正则表达式,并通过cid:filename
转换所有图片路径<img src="../images/text.jpg" alt="test" />
到
<img src="cid:test" alt="test" />
感谢您的帮助
克里斯
答案 0 :(得分:2)
正如Web Logic建议的那样,我宁愿尝试使用PHP DOM扩展,特别是如果您正在使用整个HTML文档。您可以将一些HTML片段传递给PHP DOM实例或完整HTML页面的内容。
如果您只有一个像<img src="../images/text.jpg" alt="test" />
这样的图像元素的字符串,并希望将其src
属性设置为没有文件扩展名的image-filename,那么如何做建议的示例以cid:
<?php
$doc = new DOMDocument();
// Load one or more img elements or a whole html document from string
$doc->loadHTML('<img src="../images/text.jpg" alt="test" />');
// Find all images in the loaded document
$imageElements = $doc->getElementsByTagName('img');
// Temp array for storing the html of the images after its src attribute changed
$imageElementsWithReplacedSrc = array();
// Iterate over the found elements
foreach($imageElements as $imageElement) {
// Temp var, storing the value of the src attribute
$imageSrc = $imageElement->getAttribute('src');
// Temp var, storing the filename with extension
$filename = basename($imageSrc);
// Temp var, storing the filename WITHOUT extension
$filenameWithoutExtension = substr($filename, 0, strrpos($filename, '.'));
// Set the new value of the src attribute
$imageElement->setAttribute('src', 'cid:' . $filenameWithoutExtension);
// Save the html of the image element in an array
$imageElementsWithReplacedSrc[] = $doc->saveXML($imageElement);
}
// Dump the contents of the array
print_r($imageElementsWithReplacedSrc);
打印此结果(在Windows Vista上使用PHP 5.2.x):
Array
(
[0] => <img src="cid:text" alt="test"/>
)
如果要将src
属性的值设置为以cid:
为前缀的alt属性的值,请查看以下内容:
<?php
$doc = new DOMDocument();
// Load one or more img elements or a whole html document from string
$doc->loadHTML('<img src="../images/text.jpg" alt="test" />');
// Find all images in the loaded document
$imageElements = $doc->getElementsByTagName('img');
// Temp array for storing the html of the images after its src attribute changed
$imageElementsWithReplacedSrc = array();
// Iterate over the found elements
foreach($imageElements as $imageElement) {
// Set the new value of the src attribute
$imageElement->setAttribute('src', 'cid:' . $imageElement->getAttribute('alt'));
// Save the html of the image element in an array
$imageElementsWithReplacedSrc[] = $doc->saveXML($imageElement);
}
// Dump the contents of the array
print_r($imageElementsWithReplacedSrc);
打印:
Array
(
[0] => <img src="cid:test" alt="test"/>
)
我希望能让你开始。这些只是如何处理DOM扩展的示例,您需要解析的内容(HTML片段或完整的HTML文档)以及您需要输出/存储的内容有点模糊。
答案 1 :(得分:0)