Nachdem diese Regexp für mich ja nach wie vor ein Buch mit mehr als nur sieben Siegeln sind bräuchte ich einen Tipp von euch.
Und zwar brauche ich eine Funktion, die mir die Links aus einem eingelesenem html-File raussucht.
Das Problem, weswegen ich im Internet bisher nichts passendes gefunden hat ist zum einen, dass es ein relativer Link ist, den ich zu ermitteln versuche (natürlich dynamisch generiert mit Übergabeparametern).
Zum anderen ist es kein einfaches Linkname ist, sondern dass im Tag auch noch andere Dinge wie Klassen, Titel oder Targets drin stehen…
Mich interessiert als Rückgabewert aber nur der Link und entweder die Angabe im title="" oder bevorzugt das, was der Normale User zu lesen bekommt - also das zwischen und.
Wenn mir jemand dabei helfen könnte wäre das ganz super!
Falls es hilft: Der Link steht immer in Anführungszeichen (") und nicht in Hochkommas (’).
hmmm schön und gut, aber dieses DOM muss ich dann auch irgendwie einbinden, oder?
Jedenfalls bekomme ich mit dem Codebeispiel so wie es auf der Seite steht nur ein
Parse error: parse error, unexpected T_OBJECT_OPERATOR in c:…\www\regtest2.php on line 43
was der Zeile
$ret[$tag->getAttribute(‚href‘)] = $tag->childNodes->item(0)->nodeValue;
entspricht…
Auf meinem online Webspace hab ichs noch nicht versucht…
also wenn ich das SET durch ein PATTERN austausche (hab ich in nem anderen Befehl gefunden) dann funktionierts…
Allerdings nicht, wenn ich mehrere Links in $testurls habe…
Allerdings krieg ich das zur Not über ne rekursive Schleife hin…
Ich werd diesem DOM aber auch noch ein paar graue Zellen opfern und gucken, ob sich da was draus entwickeln könnte…
Hi
Das Beispiel funktioniert und auch nur so sollte es gemacht werden.
Deine Fehler die diese Ausgabe verursachen könnten wären zum einen das du eine PHP Version kleiner 5.0.3 hast. Erst dort wurde das DOM-Object in PHP übernommen. Wenn du eine niedrigere Version hast lies bitte hier de.php.net/DOM.
Weiter könnte es sein das du versucht nur den link zu übergeben. Dann sollte aber eine Exception geworfen können das auf dem übergebenen Text kein DOM angewandt werden kann.
hmmm schön und gut, aber dieses DOM muss ich dann auch
irgendwie einbinden, oder?
Jedenfalls bekomme ich mit dem Codebeispiel so wie es auf der
Seite steht nur ein
Parse error: parse error, unexpected T_OBJECT_OPERATOR in
c:…\www\regtest2.php on line 43
also bei mir gehts
<?php $testurls ="<a title=\"russland\" name=\"willy\" href=\"/megaupload.php?russland\">Halllo Megarusslandkdlsfhksjdfhlksdjfh[wiederschüss](%255C%2522/megaupload.php?sdfsdfsdf%255C%2522)";
function getsLinks($html)
{
/\*\*\* return array \*\*\*/
$ret = array();
/\*\*\* a new dom object \*\*\*/
$dom = new domDocument;
/\*\*\* get the HTML (suppress errors) \*\*\*/
@$dom-\>loadHTML($html);
/\*\*\* remove silly white space \*\*\*/
$dom-\>preserveWhiteSpace = false;
/\*\*\* get the links from the HTML \*\*\*/
$links = $dom-\>getElementsByTagName('a');
/\*\*\* loop over the links \*\*\*/
foreach ($links as $tag)
{
$ret[$tag-\>getAttribute('href')] = $tag-\>childNodes-\>item(0)-\>nodeValue;
}
return $ret;
}
/\*\*\* get the links \*\*\*/
$urls = getsLinks($testurls);
/\*\*\* check for results \*\*\*/
if(sizeof($urls) \> 0)
{
foreach($urls as $key=\>$value)
{
echo $key . ' - '. $value . '
';
}
}
else
{
echo "No links found at $link";
}
?\>
ich habs abgeändert um HTML via variable (nicht via url) zu durchsuchen .
Hi
Das Beispiel funktioniert und auch nur so sollte es gemacht
werden.
Deine Fehler die diese Ausgabe verursachen könnten wären zum
einen das du eine PHP Version kleiner 5.0.3 hast. Erst dort
wurde das DOM-Object in PHP übernommen. Wenn du eine
niedrigere Version hast lies bitte hier de.php.net/DOM.
ok, daran lags…
Lokal hab ich nur php 4.x
Auf meinem Webspace funktioniert das Script auch ohne Probleme!
Vielen Dank und nochmal 2 Sternchen für eure beiden Beiträge