• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[PHP - Webgrab] Bestimmte Textstellen aus anderer Seite auslesen

Michael B.

Moderator
Also, folgendes Problem:

Ich hab e einen Link auf eine Seite, und mein Script soll, falls description leer ist (Description kommt aus der Datenbank), diesen Link folgen, und das was zwischen <title> und </title> steht
a) einlesen,
b) nur einen bestimmten Teil davon lesen, der erste Teil sieht immer gleich aus bis zu einer Stelle, und hinter dem bestimmten Teil ist es auch immer gleich, also ungefähr TEXT ZU-GRABBENDER-TEIL TEXT
c) und das ganze dann in die DB schreiben (Ok, das weis ich wie) und den descriptionteil dann aber auch drinlassen zum weiterreichen.

Jemand ne Idee, wie das geht?
 
du könntest z.B. mit strpos die Postion ermitteln und dann mit substr den Bereich, den du benötigst, ausschneiden.

Mit einer preg müsste das allerdings auch in einen Rutsch gehen, da kann ich aber aus dem stehgreif nicht weiterhelfen.
 
O.k, du liest du zu öffnende Seite mit dem "file" Befehl ein, damit hast du ein Array, wo jede Zeile einzeln drin steht.
PHP:
$filehandle = file($dein_File); // Das klappt nur mit lokalen Files! http folgt später

Anschliessend packst du das Array in eine Variable:

PHP:
$i=0;
while($i<=count(filehandle)){
   $variable.=$filehandle[$i];
   $i++;
}

Nun musst du die Position von <title> und </title> ermitteln und den entsprechende teil nehmen:

PHP:
$start = strpos("<title>",$variable);
$end = strpos("</title>",$variable);
$title = substr($start,$end,$variable);

Das einzige was ich jetzt nicht mehr so aus dem Kopf weiss, ab welcher Position PHP strpos ermittelt, das musst du dann ein wenig mit ausprobieren raustüfteln. Auch könnte Gross und Kleinschreibung der tags ein Problem mit dieser Methode sein.
 
Zuletzt bearbeitet:
PHP:
$dein_file = "http://www.domain.de/"; // zu öffnende Adresse

$fp = fopen($dein_file,"r"); // Verbindung herstellen

while($buffer = fgets($fp,200)){
	$buffer2 .= $buffer; // eingelesenes in eine Variable packen
}

$start = strpos($buffer2,"<title>"); // startposition ermitteln
$end = strpos($buffer2,"</title>"); // endposition ermitteln
$title = strip_tags(substr($buffer2,$start,$end)); // variable kappen auf den benötigen Teil, html raus und fertig

echo "<br>".strlen($title)."<br>".$start."<br>".$end."<br>"; // Testausgaben
echo "Titel: ".$title;

So hat es zumindest bei mir gerade mit einigen Domains geklappt geklappt.
 
Zuletzt bearbeitet:
Hallo!

Noch ne Möglichkeit:
PHP:
$html = implode('', file("index.html"));
preg_match('/<title>(.*)<\\/title>/sU', $html, $match);
$ergebnis = $match[1];
 
Zuletzt bearbeitet:
wen´s interessiert:

<?
$dein_file = "sternzeichen.html"; // zu öffnende Adresse

$fp = fopen($dein_file,"r"); // Verbindung herstellen

while($buffer = fgets($fp,200)){
$buffer2 .= $buffer; // eingelesenes in eine Variable packen
}

eregi("<title>(.*)<\/title>", $buffer2, $titel); // alles zw. <title> und </title> in Variable packen
$seiten_titel = $titel[1];
$seiten_titel = str_replace(" - www.koehntopp.de","",$seiten_titel); // ersetzen von Strings
print $seiten_titel;
?>

bye,
mo
 
Hab nen neues Problem damit:

Ich hab nen File, und nen counterfile, das per Javascript die Infos schreibt.

PHP:
              <?
              $size = filesize("./file/amazonphp.zip"); // Dateigrösse
              $dein_file = "http://tripex.nicky.net/design2/dlfile/display.php3?id=amazonphp"; // datei, die er einlessen soll
              $fp = fopen($dein_file,"r");
              while($buffer = fgets($fp,200)){ 
			  	$buffer2 .= $buffer; // altbekanntes einlesen in Buffer
			  } 
			  eregi("document.write\(\"(.*)\"\)", $buffer2, $count); // SchnippSchnapp weg damit
			  $count_file = $count[1]; // Variable setzen
			  print intval($count_file) * ($size / 1024); // so, nun soll er den Zählerwert mal der Dateigrösse ausgeben, wobei ich den Zahlerwert zu einem Wert des Typs INTEGER umwandle.
              
              ?>

Das Script soll einfach die ANzahl der Downloads mal der Filegrösse ausgeben.
Und es klappt nicht, kann mir jemand helfen?
 
Zuletzt bearbeitet:
Wenn wir schonmal dabeisind, ich hab noch ein Problem:

PHP:
if ($description == "") {
	$html = implode('', file($filesource));  
	eregi("<title>(.*)<\/title>", $html, $titel); 
	$seiten_titel = $titel[1]; 
	$seiten_titel = str_replace($replacestring,"",$seiten_titel);
	mysql_query("Update $table SET DESCRIPTION = '$seiten_titel' where ASIN = '$wert'", $conn);
}

Folgendes Problem:

Die Description also Beschreibung ist eine Spalte des TypenTEXT in der Datenbank. Nun wird die Beschreibung komischerweise IMMER per UPDATE neu geschrieben, was er aber nicht soll, er soll sie ja nur einmal schreiben.

Hier noch die Beiden Replacestrings:
PHP:
$replacestring = "Amazon.de -- Verwandte Artikel entdecken "; // Titlestring of the HTML pages from amazon, that shouldn't be in the description
$replacestring2 = "Amazon.de, auf einen Blick: ";

$wert ist die Amazon ASIN.

Ja, hierbei handelt es sich um nen Amazon Script, und zwar um meins =)

Download unter: http://www.tripex.de
 
Zurück
Oben