regexp для поиска файла пути изображения в теге изображения

Я ищу регулярное выражение, которое находит весь путь изображения в теге изображения (src) и преобразует весь путь изображения по cid: filename

<img src="../images/text.jpg" alt="test" /> 

в

 <img src="cid:test" alt="test" /> 

Спасибо за вашу помощь

Крис

Как предположил Web Logic, я бы предпочел попробовать PHP DOM Extension, особенно если вы работаете со всем HTML-документом. Вы можете передать некоторый фрагмент HTML в экземпляр PHP DOM или содержимое полной HTML-страницы.

Один пример того, как сделать то, что вы предлагаете, если у вас есть только строка элемента изображения, например <img src="../images/text.jpg" alt="test" /> и вы хотите установить атрибут src этого к имени файла изображения без расширения файла с префиксом 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); 

Распечатывает этот результат (используя PHP 5.2.x в Windows Vista):

 Array ( [0] => <img src="cid:text" alt="test"/> ) 

Если вы хотите установить значение атрибута src в значение атрибута alt с префиксом 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) { // 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-документ), и то, что вам нужно для вывода / хранения, было немного неопределенным.

Вы можете обратиться за PHP DOM для анализа вашего html и соответствующим образом выполнить поиск.

В противном случае вы также можете использовать JQuery для этого:

 $(function(){ $('img').each(function(){ $(this).attr('src').replace('cid:' + $(this).attr('src')); }); });