HTML grabbing

balufreak

balufreak

Aktives Mitglied
Thread Starter
Dabei seit
12.10.2003
Beiträge
1.563
Reaktionspunkte
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
 
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).
 
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...
 
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?
 
Zuletzt bearbeitet:
Ich brauche einfach nur den inhalt von Value in diesem Feld in einer Variable. Den Rest (restliches HTML) rund herum brauche ich nicht.
 
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
 
Zuletzt bearbeitet:
Kuuul Danke! Werde ich gleich Probieren! Ich werde mich wieder melden
 
und? funktioniert es, oder müssen wir noch bissl basteln?
 
@michanismus:
Es funktioniert... Danke!
Werde mich jetzt mal richtig mit den regulären ausdrücken auseinander setzen.

Frohe Festtage!
 
Mach das :)
Frohe Festtage auch dir!
 
Zurück
Oben Unten