2016-04-21 4 views
1

Wenn ich eine Zeichenfolge wie folgt:?Was ist der richtige Weg, bis zum Ende von string in PHP str_replace?

<a href="http://example.com/myPDF.pdf" rel="">myPDF12345431234</a> 

was den richtigen PHP-Funktionsaufruf wäre so, dass alles nach „um str_replace“ rel = .... "mit nichts/Leerzeichen ersetzt wird

für weitere Klarheit Der Wert zwischen dem Link-Tags ist dynamisch und unbekannt, so kann ich es nicht nennen

ich bin für so etwas suchen.

$oldstring = array('<a href="', '" rel="" *until the end_of_string* '); 
$replacewith = array=('', ''); 

$newstring = str_replace($oldstring, $replacewith, $URL); 

Was ist der richtige Weg, um alles nach der URL (Anführungszeichen bis zum Ende der Zeichenfolge) durch nichts ersetzt zu bekommen?

+0

ein PCRE regex System verwenden, wie beispielsweise [ 'preg_replace'] (http://php.net/manual/en/function. preg-replace.php) – Martin

Antwort

1

Dies wird durch reguläre Ausdrücke gehandhabt. Folgendes ersetzt alles von rel = "" bis zum Ende der Zeichenfolge.

$newstring = preg_replace('/ rel="".*$/','',$oldstring); 

Die. * Bedeutet "alles" und $ bedeutet "Ende der Zeichenfolge". Ich habe ein Leerzeichen vor rel hinzugefügt, weil ich annehme, dass du das auch löschen willst.

0

Es klingt wie, was Sie eigentlich suchen, ist die Teilzeichenfolge Ihrer aktuellen Zeichenfolge bis zum Ende Ihrer rel Attribut.

$newstring = substr($oldstring, 0, strpos($oldstring, 'rel=""'));

1

Verwenden preg_match:

preg_match("/(\<a href\=\\".*\\")\srel/", "<a href="http://example.com/myPDF.pdf" rel="">myPDF12345431234</a>", $output_array); 
Var_dump($output_array); 

http://www.phpliveregex.com/p/fqQ

Verwandte Themen