Sven: links aus ext. website auslesen

hallo leute,
ich bin neu auf dem gebiet php und möchte gerne links aus einer webseite auslesen...
aber nur spezielle links die mit ?id= anfangen...

hier meine index.php

  
<?php include("header.php");?>  
<html>  
<head>  
<title>...</title>  
<link rel="stylesheet" type="text/css" href="style.css">  
</head>  
<body>  
<center><form action="1.php" method="get">  
suche:  
<input type="text" name="suche" size=50>  
<input type="submit" value="suchen"></center>  
<br><br><br><br>  
</form>  
</body>  
</html>  
<?php include("footer.php");?>  

und hier die results.php wo die links dann von der webseite geholt, gefiltert und ausgegeben werden...

  
<?php include("header.php");  
  
$tag = $_GET['suche'];  
  
$ausgabe = $tag.", ";  
$datei = fopen("tags.txt","a");  
$output = fwrite($datei,$ausgabe);  
fclose($datei);  
  
$suche = $_GET['suche'];  
$host = "http://www.beispiel.com/?q="."$suche";  
echo "</a><br>$host</br>";  
$filestring = file_get_contents($host);  
$startpos = 0;  
while($pos = strpos($filestring, "<a href", $startpos))  
{  
    $string = substr($filestring, $pos, strpos($filestring, "</a>", $pos + 1) - $pos);  
  
    if(stristr($string, 'id=')) {  
        echo $string."</br>";  
    }  
    $startpos = $pos + 1;  
}  
?>  

funktioniert nur noch nicht ganz und mit dem preg_match_all kenne ich mich nicht aus...
vielleicht kann mir ja wer von euch helfen!!

greetz
sven

  1. Hi

    ...viel Code

    funktioniert nur noch nicht ganz und mit dem preg_match_all kenne ich mich nicht aus...

    a) "Funktioniert nicht" ist keine Fehlerbeschreibung
    b) freunde dich mit regulären Ausdrücken an
    c) vielleicht kannst du ein <a href="irgendwas">titel</a> auch als sehr kleines XML Dokument verwenden und dann mit einem XML DOM Parser die Attributwerte und InnerText und so weiter herauskratzen, dazu müsstest du dich aber mit XML beschräftigen.

    vielleicht kann mir ja wer von euch helfen!!

    Wie sollte jemand von uns das tun?

    Ciao, Frank

    1. c) vielleicht kannst du ein <a href="irgendwas">titel</a> auch als sehr kleines XML Dokument verwenden und dann mit einem XML DOM Parser die Attributwerte und InnerText und so weiter herauskratzen, dazu müsstest du dich aber mit XML beschräftigen.

      hätte ich auch gesagt - eine simple schleife die sich selbst durchs dokument hangelt und jedes element püft ob es ein a-element ist und ein href-attribut hat, wenn das der fall ist wird der wert des href-attributs an eine funktion weitergegeben überprüft und ggf in ein array gespeichert

      das ist wahrscheinlich langsamer als die seite mit einem regulären ausdruck zu durchsuchen aber wenn die betreffenden elemente bekannt sind (zb, wenn man die menüführung auslesen will) kann man bereits bei einem bestimmten ast starten und sich so durch den navigationsbaum hangeln

      1. hi,

        ich bin erschüttert. Gibts da nix fertiges in php, so wie in Perl!?

        Sorry ;-)

        Hotte

        1. ich bin erschüttert. Gibts da nix fertiges in php, so wie in Perl!?

          ja - das nennt sich in php "perl kompatibler regulärer ausdruck" ;) und ist ein einer kurzen zeile abgehandelt ;)

          preg_match_all()

          die xml/dom-variante ist aber imho gut geeignet um ein gewisses grundverständnis zu entwickeln - ich hab ja gesagt, dass das nicht die schnellste methode ist

  2. Guten Tag,

    funktioniert nur noch nicht ganz und mit dem preg_match_all kenne ich mich
    nicht aus...
    vielleicht kann mir ja wer von euch helfen!!

    Entwender, du verwendest die DOM-Funktionen von PHP (Finde rel-Attribute mit DOM) oder du schaust dir mal htmlsql an.

    Gruß
    Christoph Jeschke

    --
    Zend Certified Engineer