php
2016-06-27 7 views -1 likes 
-1

ich einen HTML-Text wie habe mit PHP innen in einem href-Attribute ist: Sowie die Position eines Strings in einem langen Text erhalten, die

$html = "<img src='http://testlink.com/something' />  
<a href='http://testlink.com'></a> 
<a href='http://testlink.com/something/index.php'></a>"; 

wenn ich versuche, die Zeichenfolge „http://testlink.com“ zu ersetzen, von die $ html mit „http://example.com“ ich brauche ein Ergebnis wie:

<img src='http://testlink.com/something' /> 
<a href='http://example.com'></a> 
<a href='http://testlink.com/something/index.php'></a> 

was bedeutet, die einzige Arbeit, mit der Zeichenfolge ersetzen, die im Inneren in einem href-Attribut ist, und dass href Attribut sollte nur den angegebenen Wert enthalten, die ich will ersetzen.

+1

Wie wäre es 'str_replace ("href = 'http: //testlink.com'", "href = 'http: //example.com'", $ html) '? – apokryfos

+0

Sie möchten das DOM von PHP verwenden. http://php.net/manual/en/book.dom.php – ceejayoz

+0

eigentlich nehme ich alle Links innerhalb des href-Attributs von $ html, und looping dieses Array für den Ersatz der Verbindung durch einen anderen geeigneten Link für jeden, so Ich werde nicht das href = Präfix mit dem Link, den ich suche zu ersetzen, – aswindev

Antwort

1

würde ich ein DOM-Parser wie PHP Simple HTML DOM Parser verwenden für eine Verbindung mit http://testlink.com als href und dann ersetzen Sie es mit http://example.com zu suchen.

include 'simple_html_dom.php'; 

$html = "<img src='http://testlink.com/something' />  
<a href='http://testlink.com'></a> 
<a href='http://testlink.com/something/index.php'></a>"; 

$dom = str_get_html($html); 
$dom->find('a[href="http://testlink.com"]', 0)->href = 'http://example.com'; 

echo $dom; 

Ausgang:

<img src='http://testlink.com/something' />  <a href='http://example.com'></a> <a href='http://testlink.com/something/index.php'></a> 
+0

Dank @Emil, es funktioniert gut :) – aswindev

Verwandte Themen