2010-07-30 6 views
0

dupliquées possible:
Regex to change format of all img src attributesphp pour obtenir des images regexp

Salut,

Je veux remplacer le chemin de l'image dans mon champ db de contenu.

Je les suivantes

preg_replace("/src='(?:[^'\/]*\/)*([^']+)'/g","src='newPath/$2'",$content); 

qui fonctionne très bien pour

src="/path/path/image.jpg" 

MAIS échoue sur

src="http://www.mydomain.com/path/path/image.jpg" 

Toute aide pour contourner ce problème?

+1

'http :: //' doit être 'http: //' – Sarfraz

+2

Je dirais que cela ne prend généralement pas pour les valeurs d'attributs enveloppés dans des guillemets doubles. – Gumbo

Répondre

2

N'utilisez pas d'expressions régulières pour cela. Utilisez un analyseur HTML comme Simple HTML DOM.

$html = file_get_html('http://www.example.com/sourcepage.html'); 

foreach($html->find('img') as $element) 
{  
    $new_src = "Do stuff with new src here"; 
    $element->src = $new_src; 
} 

echo $html; // Output new code 
+1

Suggestions d'alternatives tierces qui utilisent réellement DOM au lieu de l'analyse de chaînes: [phpQuery] (http://code.google.com/p/phpquery/), [Zend_Dom] (http://framework.zend.com/manual/ fr/zend.dom.html) et [FluentDom] (http://www.fluentdom.org). – Gordon

+0

Merci travail est fait très facilement !!!! – ntan

Questions connexes