Wikipedia einbinden
LTW
- php
Ich habe ein Problem mit PHP. Es wurde ein code geschrieben, der mit file_get_contents("http://www.example.com");
eine Seite in eine Variable einliest. Dann wurden im Quelltext mit folgendem code alle relativen Pfade zu absoluten gemacht. ~~~php
$f = parse_url("http://www.example.com");
$h = $f['host'] . $f['path'];
$k = explode("/", $h);
for ($i = 0; $i <= count($k) - 3; $i++) {
$l .= $k[$i] . "/";
}
$l .= $k[count($k)-2];
$d = explode(" ", $quelltext);
$g=0;
for ($i = 0; $i <= count($d)-1; $i++) {
if (strlen($d[$i]) > 6) {
$n=substr($d[$i], 0, 6);
if (substr($d[$i], 6, 1) == "/") {
if ($n == "href='"){
$m=explode("'", $d[$i]);
$m[1]= "http://" . $f['host'] . $m[1];
$d[$i] = join("'", $m);
} elseif ($n == 'href="') {
$m=explode('"', $d[$i]);
$m[1]= "http://" . $f['host'] . $m[1];
$d[$i] = join('"', $m);
}
} else {
if ($n == "href='"){
$m=explode("'", $d[$i]);
$m[1]= "http://" . $l . $m[1];
$d[$i] = join("'", $m);
} elseif ($n == 'href="') {
$m=explode('"', $d[$i]);
$m[1]= "http://" . $l . $m[1];
$d[$i] = join('"', $m);
}
}
$n=substr($d[$i], 0, 5);
if (substr($d[$i], 5, 1) == "/") {
if ($n == "src='"){
$m=explode("'", $d[$i]);
if(substr($m[1], 0, 7)!=="http://") {
$m[1]= "http://" . $f['host'] . $m[1];
$d[$i] = join("'", $m);
}
} elseif ($n == 'src="') {
$m=explode('"', $d[$i]);
if(substr($m[1], 0, 7)!=="http://") {
$m[1]= "http://" . $f['host'] . $m[1];
$d[$i] = join('"', $m);
}
}
} else {
if ($n == "src='"){
$m=explode("'", $d[$i]);
if(substr($m[1], 0, 7)!=="http://") {
$m[1]= "http://" . $l . $m[1];
$d[$i] = join("'", $m);
}
} elseif ($n == 'src="') {
$m=explode('"', $d[$i]);
if(substr($m[1], 0, 7)!=="http://") {
$m[1]= "http://" . $l . $m[1];
$d[$i] = join('"', $m);
}
}
}
}
}
$quelltext = join(" ", $d);
Das Problem ist, wenn man damit eine Wikipedia-Seite aufruft, so wird der Inhalt ein zweites Mal im linken Rand dargesetllt.
Hello,
Ich habe ein Problem mit PHP. Es wurde ein code geschrieben, der mit [...] eine Seite in eine Variable einliest. Dann wurden im Quelltext mit folgendem code alle relativen Pfade zu absoluten gemacht.
Das Problem ist, wenn man damit eine Wikipedia-Seite aufruft, so wird der Inhalt ein zweites Mal im linken Rand dargesetllt.
Gleiche Frage, wie an https://forum.selfhtml.org/?t=187125&m=1243363
Hast Du schon mal in das resultiernede HTML-Dokument hineingeschaut, was dort entsteht?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo,
Ich habe ein Problem mit PHP. Es wurde ein code geschrieben, der mit
file_get_contents("http://www.example.com");
eine Seite in eine Variable einliest. Dann wurden im Quelltext mit folgendem code alle relativen Pfade zu absoluten gemacht. [code lang=php]
Das Problem ist, wenn man damit eine Wikipedia-Seite aufruft, so wird der Inhalt ein zweites Mal im linken Rand dargesetllt.
Ich wundere mich, dass dieser Code überhaupt etwas macht :-)
Du scheinst irgendwelche href-Attribute zu suchen, aber nur solche, die von einfachen Anführungszeichen gefolgt werden, ...
Welche Fehlersuchstrategien hast Du bisher verfolgt?
Grundsätzlich rate ich Dir dazu, eine Funktion/Methode zu schreiben, die mit einer Zeichenkette etwas definiertes macht. Die Aufgabe ist in einem netten Kommentar zu beschreiben, falls die Funktion zu komplex wird, gibst Du einzelne Aufgaben an weitere übersichtliche Funktiönchen weiter. So hast Du die Möglichkeit zu einigermaßen verständlichem und wartbaren Code zu kommen.
Freundliche Grüße
Vinzenz
Das Problem ist, wenn man damit eine Wikipedia-Seite aufruft, so wird der Inhalt ein zweites Mal im linken Rand dargesetllt.
Ungeachtet von deiner technischen Lösung bietet die Wikipedia eine API um die Inhalte einzubinden.
Wenn du die Inhalte der Wikipedia Lizenzkonform abgreifen willst, ist das zwar so kein Problem wenn du die vorgaben einhältst, allerdings verursachst du damit möglicherweise massiven Traffic auf den Wikimedia-Servern - das sieht die Wikimedia-Foundation nicht gerne, da die Infrastruktur dann von denen bezahlt werden muss.