ich hab mir ein kleines newscontentmanangement system geschrieben.
nun moechte ich nur die headlines auf meinen anderen domains anzeigen lassen.
problem bei der geschichte: die eine domain liegt auf einem anderen server. kann also weder von dort an die mysql datenbank noch via include arbeiten…
oder?
kann ich teile einer webseite in einen array (oder etwas aehnliches…hash???) schreiben und dann selbst auslesen?
wenn ja… wie kann ich dann verhindern, dass andere das auch tun…
also praktisch content klauen…
meine idee war es …extra von meinem newsscript eine datei mit links pro tag auf server1 zur verfuegung zu stellen und die anderen diese datei einfach includieren. das hat aber nicht funktioniert.
mit include kannst du nur lokale Dateien includen.
Schau dir mal fgets an. damit kannst du auch URLs aufrufen und dann nach dem gewünschten Inhalt zum Beispiel mit regulären Ausdrücken Parsen (Stichwort: preg_match). Also zum Beispiel alles holen, was zwischen zwei bestimmten HTML-Tags steht.
Der Königsweg wäre es, wenn du das mit xsl-Transformation machst
Du kannst auch eine HTTP-Schnittstelle auf dem NewsServer schreiben, die beim Aufruf nur die Headlinies ausgibt. Dann machst du vom zweiten Rechner mit fgets einen Request darauf und hast die Headlinens schön in einer Variable.
Dagegen, dass dir jemand Seiteninhalte klaut kannst du rein gar nichts machen. Alles was man im Internet lesen kann, lässt sich auch maschinell lesen und woanders darstellen
meine idee war es …extra von meinem newsscript eine datei
mit links pro tag auf server1 zur verfuegung zu stellen und
die anderen diese datei einfach includieren. das hat aber
nicht funktioniert.
Warum nicht ? Sollte eigentlich gehen.
include("http://www.anderedomain.de/seite.php") sollte funktionieren, fals dir URL Wrapper für fopen nicht deaktiviert sind (oder der Webserver wegen einer Firewall nicht auf anderedomain zugreifen darf).
Hier sollte man erst einmal herausfinden, warum es schief geht…
include("http://www.anderedomain.de/seite.php") sollte
funktionieren, fals dir URL Wrapper für fopen nicht
deaktiviert sind (oder der Webserver wegen einer Firewall
nicht auf anderedomain zugreifen darf).
Hier sollte man erst einmal herausfinden, warum es schief
geht…
nun… online hab ichs noch nicht probiert.
ich hab mir hier wampp2 auf meine windowsbüchse gepackt.
gehe über nen proxy online. über netzwerk.
sollte das ein problem sein?
wampp2 steht in der standardkonfiguration im dienst.
kann ich mir solche restriktionen im apache UND in der php.ini bauen?
oder nur im webserver?
danke für den Hinweis.
Damit muß ich mich erstmal beschäftigen.
Anscheinend komme ich an der Firewall oder an den
Routerkonfigurationen nicht vorbei.
Kann fgets/fgetss nicht testen. muss ich mal
zuhause probieren. da ist meine firewall etwas
userfreundlicher eingestellt.
aber danke für den tip. der lösungsansatz gefaellt mir.
Bau dir auf dem Newsserver ein PHP-Skript dass dir selbst PHP Quelltext erzeugt, z.b.
$news[0] = "ABC";
$news[1] = "XYZ";
?\>
usw.
diese includierst du dann per include(„http://…“) auf dem andren server irgendwo am seitenanfang und gibst einfach per „echo $news[0]“ die entsprechende news aus.
Grüße
Bruno
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
include("http://www.anderedomain.de/seite.php") sollte
funktionieren, fals dir URL Wrapper für fopen nicht
deaktiviert sind (oder der Webserver wegen einer Firewall
nicht auf anderedomain zugreifen darf).
Hier sollte man erst einmal herausfinden, warum es schief
geht…
nun… online hab ichs noch nicht probiert.
ich hab mir hier wampp2 auf meine windowsbüchse gepackt.
gehe über nen proxy online. über netzwerk.
sollte das ein problem sein?
Nein, das kann nur mittels allow_url_fopen in der php.ini verbieten (in aktuellen Versionen von PHP, früher gabs mal zusätzlich einen Compilerschalter).
Der Webserver hat damit im Prinzip nichts zu tun, das Anfoerdern der „fremden“ Seite macht PHP selbst.