Externe PHP auch extern ausführen
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
anfrage
array
aufruf
aufrufen
auslese
benutzen
code
dank
datei
datum
domain
ergebnis
header
host
http
post
problem
server
type
url
-
Toll ! Jetzt wo es anfing, mich zu interessieren, hat zwar der Threadersteller sein Problem gelöst - aber wenn jemand ( wie ich ) mal guckt, um zu sehen, wie es geht, steht er doch weiterwie der Ochs vorm Tor. Leider verstehe ich nämlich nur Bahnhof und hätte doch auch gerne gewußt, wie ich ohne iframes externe Seiten einbinden kann.
Beitrag zuletzt geändert: 5.5.2011 6:49:13 von rorambur -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
besuchernews schrieb:
Mir geht es ähnlich wie rorambur. Vielleicht könntest du, besuchernews, deine Lösung posten, damit auch andere Benutzer davon profitieren können?
Danke das ihr es weiter versucht^^
Ich habe nun per Javascript eine PHP Datei geöffnet, welche per DOMDokument meine gewünschte Arbeit erledigt.
Alle Probleme gelöst, aber trotzdem Danke. -
so ich hab mir mal die mühe gemacht und das von mir oben genannte Video tutorial zusammen gefasst.
diese Script ist ungetestet aber vielleicht hielft es euch
script auf dem antwortenden Server
<?php /*********************************************************** Script von "betterphp", aus dem API tutorial link zum youtube kanal http://www.youtube.com/user/betterphp ************************************************************/ // antwort Server ( nimmt daten von anfrage entgegen und giebt ergebnisse als json array aus ) // kleiner Hinweis "Firefox" zeigt json nicht an. // Es öffnet sich ein Download fenster beim aufruf dieser seite, also nicht iretieren lassen... // falls ihr aus debugging gründen diesen anzeigen lassen wollt kommentiert den header aus // wir nutzen json damit das Script von verschiedenen Programierspachen aus aufgerufen werden kann header('Content-Type: application/json'); if(isset($_POST['request'])){ /************** **euer script** **************/ // die ergebnisse eures Scriptes in einen array packen echo json_encode(array( 'key1' => 'ergebnis1', 'key2' => 'ergebnis2' )); }else { // ausgabe von fehler meldung bzw. einer Hilfe // kann also auch weg gelassen werden echo json_encode(array( 'blah' => 'Lima', 'blooo' =>'city' )); } ?>
Script vom Server der die anfrage stellt und die ergebnisse anzeigt
<?php // script das die anfrage an den anderen Server sendet und ergebnisse ausgiebt // function die, die daten sendet function send_post_data($data){ // URL an die gesendet werden soll $url = parse_url('http://wasewißich.de/meinscript.php'); $boundary = md5(microtime(true)); $post = ''; foreach($data as $name => $value){ $post .= '--'.$boundary.'\r\n'; $post .= 'Content-Disposition: form-data; name="'.$name.'"\r\n\r\n'; $post .= $value.'\r\n'; } $post .= '--'.$boundary.'--\r\n'; if(isset($url['query'])){ $head = 'POST '. $url['path'] .'?'. $url['query'] .' HTTP/1.1\r\n'; }else { $head = 'POST '. $url['path'] .' HTTP/1.1\r\n'; } $head .= 'Host: '. $url['host'] .'\r\n'; $head .= 'Content-Type: multipart/form-data; boundary="'. $boundary .'"\r\n'; $head .= 'Content-Length: '. strlen($post) .'\r\n'; $head .= 'Connection: Close\r\n\r\n'; $socket = fsockopen($url['host'], ((isset($url['port'])) ? $url['port'] : 80 )); fwrite($socket, "$head $post"); return end(explode('\r\n\r\n', stream_get_contents($socket))); } // die daten die Ihr senden wollt, in einem array $send = array(); // ausgabe des ergebnisse echo json_decode(send_post_data($send), true); ?>
Beitrag zuletzt geändert: 5.5.2011 11:52:13 von deep-shades -
Also ich entschuldige mich erstmal, das ich so lange nicht online war und dann schreibe ich mal den Code:
Es geht darum die Datei "work.php" auf dem Server http://www.besuchernews.de zu lesen/auszuführen und das so, das die PHP_Datei auch auf diesem Server (besuchernews.de) ausgeführt wird auch wenn die Datei von der Domain lima-city.de geöffnet werden würde.
Die index auf Lima:
<script src="http://www.besuchernews.de/script.php?ID=xxx" type="text/javascript"></script>
Die Datei script.php:
<?php header('Content-Type:text/javascript'); $websiteinhaber=$_GET['ID']; $doc = new DOMDocument(); $doc->loadHTMLFile("http://www.besuchernews.de/work.php?ID=$websiteinhaber"); $doc = $doc->saveHTML(); $pattern = "/<body[^>]*>(.*)<\/body>/Usi"; preg_match($pattern, $doc, $result); $body = $result[1]; $body = str_replace("<p>", "", $body); $body = str_replace("</p>", "", $body); $body = str_replace('"', "'", $body); $body = str_replace("document.write('", "document.write(\"", $body); $body = str_replace("');", "\");", $body); echo "$body"; ?>
Nun wird die Datei work ausgeführt und als HTML-datei , mit allen Tags ausgegeben, da ich nur den Inhalt will und nicht das ganze "<html><tilte><body>...." parse ich das was ich will heraus. Da aber leider bei diesem Vorgang die " " " durch " ' " ersetzt wurden, muss ich das per str_replace nacharbeiten.
es ich vielleicht nicht der eleganteste Code, doch ist er kurz und funktioniert.
Entschuldigt auch die Rechtschreibung, wie die Grammatik! Ich hatte eine lange Nacht vor mir.
Beitrag zuletzt geändert: 12.5.2011 13:25:28 von besuchernews -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage