URL: https://www.overclockers.at/coding-stuff/function_exists_amp_include_186443/page_1 - zur Vollversion wechseln!
Folgende Problemstellung:
Ich Include von einer PHP-Site ein PHP-Script auf einem anderen Server/Webspace... funkt ansich problemlos, ausser der Server ist down bzw. das Script wird unabsichtlich gelöscht/verschoben/umbenannt (nona).
Kann ich irgendwie function_exists für "fremde" (also nicht auf dem Webspace befindliche) Scripte einbinden?
Ansonsten habe ich es auf die Art gelöst (damit der Seitenaufbau nicht gestoppt wird, wenn es nicht available war):
Code: PHP<?php if (function_exists('random')) { random(); } ?>
?Code: PHP<? include ("http://www.nichtdieselbedomain.at/random.php"); ?>
EDIT2:
Vielleicht klappts ja doch:
Code: PHP<?php class Url { /** * Check if an url is existed * * @param string $url * @access static * @return bool True if the url is accessible and false if the url is unaccessible or does not exist * @throws Exception An exception will be thrown when Curl session fails to start */ public static function exists($url) { if (null === $url || '' === trim($url)) { throw new Exception('The url to check must be a not empty string'); } $handle = curl_init($url); if (false === $handle) { throw new Exception('Fail to start Curl session'); } curl_setopt($handle, CURLOPT_HEADER, false); curl_setopt($handle, CURLOPT_NOBODY, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, false); // grab Url $connectable = curl_exec($handle); // close Curl resource, and free up system resources curl_close($handle); return $connectable; } } ?> How to use: <?php try { if (Url::exists('http://phpvietnam.net')) { // Do something here } } catch (Exception $ex) { // Do something here } ?>

ein fremdes php-script zu inkludieren ist eine sehr schlechte idee, sowohl security-mäßig als auch für die ausführung deines scripts (das den fremden code versucht synchron zu laden). am besten du erzählst mal warum du das brauchst, dafür gibt es sicher eine bessere methode über ein intermediate file.
naja "fremd"... ist schon mein script, auf meinem webspace/server... nur eben auf einem anderen :]
Situation:
Auf einem server rennt das forum und auf einem anderen die website. Auf dem Forum-Server wird ein "recent posts" Script ausgegeben, welches ich auf der Website (anderer Server) Include.
ok, das musst du ganz anders angehen. das forum erstellt bei einem neuen beitrag ein xml, sowas wie das hier und speichert es als file ab. die beste methode wäre jetzt ein unabhängiger cronjob, der das file auf den server der webseite kopiert. die webseite greift dann nur noch auf das lokale file zu. ist der forumserver down, dann ändern sich die recent posts einfach nicht.
wäre eine alternative... dafür müsste ich aber den hoster anmailen, da ich mir selbst keine cronjobs einrichten kann (das dauert dann wieder und wenn ich schnell was ändern will, müsste ich warten)
warum nicht dieses url exists? werde mich jetzt wahrscheinlich ein bisschen damit rumspielen :]
weil es sicher lässig ist, wenn man auf deine startseite geht und dort warten muss bis der andere server, der gerade down ist, ein time-out gibt. 
klingt einleuchtend... kannst du mir ein cronjob bsp. geben um ein file von server A zu server B zu kopieren
hab noch nicht wirklich viel mit cronjobs gearbeitet und weiss auch ned wirklich, wie ich das aufbauen soll (damit die recent posts immer aktuell sind, also in welchem intervall er das file kopieren soll)
was für schreibrechte muss ich dann für die cronjob-lösung setzen (für file bzw. ordner wo das file hinkommt)?
Ich würde das genau umgekehrt machen, als mit einem cronjob, sprich: Der Forumserver postet seine letzten Beiträge an den Webserver (an ein PHP Skript), das kannst du z.B. mit CURL machen und vma auch in der von mat vorgeschlagenen XML Form. Dann brauchst du keinen cronjob und es ist auch immer synchron.
edit: zu bald in der früh.... meine lösung hätt das timeout problem ned behoben
file 1:1 rüber kopieren funkt auch nicht, da im file eine datenbankabfrage stattfindet... und er die daten auf dem "falschen"/neuen server natürlich nicht findet... müsste man also das script komplett umschreiben => suckt
habe jetzt auch "function pingSite($webserver)" probiert... funktioniert manchmal recht gut, manchmal läd es sich (trotz niedrig eingestelltem timeout) dumm und dämlich...
nervt
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026