HTML grabbing

  1. balufreak

    balufreak Thread StarterMacUser Mitglied

    Mitglied seit:
    12.10.2003
    Beiträge:
    1.556
    Zustimmungen:
    28
    Hallo Leute!

    Ich möchte gerne für meine Page einen HTML grabber basteln.
    Folgendes Szenario:

    Meine seite soll in einem formular einen Wert von einer externen seite beziehen. Auf der externen Seite ist der Wert ebenfalls in einem Formularfeld.

    Nun ich habe das jetzt mal so gemacht:
    PHP:
    $datei $url;
    $da_id file_get_contents($datei);                          
                                                                 
    $search '<input type="text" name="c_top" value="';        
    nun soll das script die variable $da_id nach dem $search durchsuchen und mir den Wert nach dem = nach Value zurückgeben.
    Wie geht das?

    Frohe Festtage
     
    balufreak, 17.12.2004
  2. oglimmer

    oglimmerMacUser Mitglied

    Mitglied seit:
    16.11.2004
    Beiträge:
    1.150
    Zustimmungen:
    91
    Die Datei mit
    fopen ($url, "r") öffnen und wie eine Datei auslesen. (Beachte den Hinweis zu allow_url_fopen).

    Dann hat man die Seite als String und kann sie ganz normal durchsuchen (zb. mit ein paar strpos(...) Opertionen).
     
    oglimmer, 17.12.2004
  3. michanismus

    michanismusMacUser Mitglied

    Mitglied seit:
    23.08.2004
    Beiträge:
    434
    Zustimmungen:
    0
    ich würde dir dringends empfehlen dich mit regulären ausdrücken zu beschäftige!

    preg_find
    preg_find_all
    preg_replace
    etc...

    eine gute anleitung findest du hier: http://www.devmag.net/webprog/regulaere_ausdruecke.htm

    falls du fragen hast, frag :)
    aber versuch dich erstmal selbst durchzukämpfen, und nicht aufgeben, dass ganze ist am anfang etwas schwer zu verstehen.

    regex sind sehr mächtig...
     
    michanismus, 17.12.2004
  4. balufreak

    balufreak Thread StarterMacUser Mitglied

    Mitglied seit:
    12.10.2003
    Beiträge:
    1.556
    Zustimmungen:
    28
    Danke für eure Antworten.
    Ich habe mir mal beides angeschaut. Das mit den regulären ausdrücken klingt gut. Ist aber auch ein Bisschen kompliziert.
    Es müsste ja quasi
    <input type="text" name="c_top" value="1234" /> durch 1234 ersetzen. Nun kann mir jemand dazu ein Beispiel geben? Ich schnalle das noch nicht so ganz.

    PHP:
    //Meins sieht etwa so aus. Aber ich denke nicht dass es funktioniert. Werde es mal testen.
    $str 'Ein HTML Quellcode'
    $str preg_replace("!<input type="text" name="c_top" value="(.*)\" />!",und jetzt?,$str);
    Nun was kommt jetzt bei "und jetzt?" im string rein? Stimmt das so?
     
    balufreak, 17.12.2004
  5. balufreak

    balufreak Thread StarterMacUser Mitglied

    Mitglied seit:
    12.10.2003
    Beiträge:
    1.556
    Zustimmungen:
    28
    Ich brauche einfach nur den inhalt von Value in diesem Feld in einer Variable. Den Rest (restliches HTML) rund herum brauche ich nicht.
     
    balufreak, 17.12.2004
  6. michanismus

    michanismusMacUser Mitglied

    Mitglied seit:
    23.08.2004
    Beiträge:
    434
    Zustimmungen:
    0
    hi!

    ich hab mal ebend nen regulären ausdruck gebaut.

    sorry, war eben schnell nebenbei. falls jemand fehler findet bitte drauf hinweisen und berichtigen :)

    Code:
    <?
    
    $subject='
    	<html>
    	<head></head>
    
    	<body>
    	<p> hier ein wenig inhalt...</p>
    	<form>
    		<input type="text" name="c_top" value="autos">
    		<input type="img" name="d_top" value="flugzeug">
    		<input type="text" name="x_top" value="macuser.de">
    	</form>
    	<p> und hier biss was :)</p>
    	</body>
    	</html>
    	';
    
    $pattern = "/(?:<input)?(?:value{1})(?:=)(?:[\"\']{1})([a-z0-9_\.]*)(?:[\"\']{1})(?:>)/si";
    preg_match_all($pattern, $subject, $result);
    echo "<pre>";
    print_r($result);
    echo "</pre>";
    
    ?>
    
    ´

    das ganze sollte dir im array $result die ergebnisse liefern!


    Code:
    Array
    (
        [0] => Array
            (
                [0] => value="autos">
                [1] => value="flugzeug">
                [2] => value="macuser.de">
            )
    
        [1] => Array
            (
                [0] => autos
                [1] => flugzeug
                [2] => macuser.de
            )
    
    )
    
    also $result[1][$i] sind deine values :)

    so long, michi
     
    michanismus, 17.12.2004
  7. balufreak

    balufreak Thread StarterMacUser Mitglied

    Mitglied seit:
    12.10.2003
    Beiträge:
    1.556
    Zustimmungen:
    28
    Kuuul Danke! Werde ich gleich Probieren! Ich werde mich wieder melden
     
    balufreak, 18.12.2004
  8. michanismus

    michanismusMacUser Mitglied

    Mitglied seit:
    23.08.2004
    Beiträge:
    434
    Zustimmungen:
    0
    und? funktioniert es, oder müssen wir noch bissl basteln?
     
    michanismus, 19.12.2004
  9. balufreak

    balufreak Thread StarterMacUser Mitglied

    Mitglied seit:
    12.10.2003
    Beiträge:
    1.556
    Zustimmungen:
    28
    @michanismus:
    Es funktioniert... Danke!
    Werde mich jetzt mal richtig mit den regulären ausdrücken auseinander setzen.

    Frohe Festtage!
     
    balufreak, 19.12.2004
  10. michanismus

    michanismusMacUser Mitglied

    Mitglied seit:
    23.08.2004
    Beiträge:
    434
    Zustimmungen:
    0
    Mach das :)
    Frohe Festtage auch dir!
     
    michanismus, 19.12.2004
Die Seite wird geladen...
Ähnliche Themen - HTML grabbing
  1. jeremyex
    Antworten:
    0
    Aufrufe:
    414
    jeremyex
    02.11.2016
  2. leo-magic
    Antworten:
    24
    Aufrufe:
    2.030
    Sp0tlight
    18.05.2015
  3. nonpareille8
    Antworten:
    2
    Aufrufe:
    1.071
    nonpareille8
    15.08.2014
  4. xenon96
    Antworten:
    9
    Aufrufe:
    890
    Rhapsody
    20.02.2013