2017-05-01 2 views
0

Ich habe etwas HTML in der Notwendigkeit, den Bildpfad aus zu entfernen. Da sein ungültiges HTML DOM irgendwie schwierig ist, gehe ich für einen groben regelmäßigen Ausdruck.php regulären Ausdruck, um Bildpfad zu entfernen

mein aktueller Versuch ist:

src=(\'|")\/root\/images\/([^\/]*)\/([^(\'|"]*) 

diese drehen:

lots of other html 
<img src="/root/images/ANY MORE PATH HERE/file.jpg"> 
more html 

in dazu:

lots of other html 
<img src="file.jpg"> 
more html 

die oben funktionieren, wenn ich nur 3 nur capturer Gruppe verwenden wenn ich ein Verzeichnis über /root/images hinaus habe, aber ich weiß nicht, wieviele ich haben kann.

irgendwelche Vorschläge?

+0

Wenn Sie immer brauchen nur die Dateinamen, Funktion Basisnamen. http://us3.php.net/manual/en/function.basename.php – Pango

+0

zu tun, dass ich alle img-Tags herausziehen, verarbeiten und sie zurück in – nogad

+0

einfügen müsste Was ist mit dem HTML ist ungültig? Es gibt ähnliche Fragen, mit dem Ergebnis, einen Parser oder Dom zu verwenden. Also vielleicht, wenn Sie den HTML-Teil davon reparieren können, könnte das besser funktionieren? http://stackoverflow.com/questions/138313/how-to-extract-img-src-title-and-alt-from-html-using-php http://stackoverflow.com/questions/2120779/regex-php -isolate-src-attribute-from-img-tag http://stackoverflow.com/questions/10130858/get-img-src-with-php http://stackoverflow.com/questions/23109844/remove-html-attributes -using-php – Pango

Antwort

1

Dies verwendet preg_replace():

<?php 
$foo = '/\/.+\//'; 
$test = '<img src="/root/images/ANY MORE PATH HERE/file.jpg">'; 
echo preg_replace($foo, '', $test); 
?> 
+0

mit einer leichten Variation führte dies zu der richtigen Antwort, danke – nogad

0

Ich denke, dies ist eine einfache Lösung explodiert mit:

$src = "/root/images/ANY MORE PATH HERE/file.jpg"; 
$part = explode("/", $src); 
$imageName = $part[sizeof($part)-1]; //get the last index of the array 
+0

'' ist nur ein kleiner Teil der Zeichenfolge – nogad

+0

solange der Bildname am Ende, dieser Code funktioniert. Drucken Sie es aus und versuchen Sie es. –

+0

ive redigierte die Frage zur Klarheit – nogad

Verwandte Themen