Update jQuery Latest Version
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abholen
aufruf
bedarf
befehl
code
datei
datum
externe datei
file
header
http
kopieren
operation
pfad
sekunde
speichern
status
tag
update
url
-
Hallo
ich habe einen PHP-tag/code">Code, der soll prüfen ob es eine neue jQuery Version gibt
und wenn ja, die neue Datei abholen und auf Webspaace speichern ... mit copy() Befehl
Damit die Prüfung nicht bei jedem Aufruf geschieht, sondern nur in bestimmten Zeit-Abständen
habe ich eine "cache_time" angegeben, mit der dieser Zeit-Abstand (in Sekunden) gesetzt wird.
(hier
nur alle 3 Tage$cache_time = (3600*24*3);
Datei: jqueryupdate.php (Update jQuery Latest Version Local File) http://pastebin.com/4YQDNm1t
<?php // ------------------------------------------------------------- header('Content-Type: text/html; charset=utf-8'); // ------------------------------------------------------------- $time_stamp = time(); $cache_time = (3600*24*3); $source_url = 'http://code.jquery.com/jquery-latest.min.js'; $local_file = 'jquery-latest.min.js'; // ------------------------------------------------------------- function update_jquery($source_url, $local_file, $cache_time, $time_stamp) { $vstatus = false; $last_update = @filemtime($local_file); if (!$last_update || ($cache_time < ($time_stamp - $last_update))) { if (!file_exists($local_file)) { copy($source_url,$local_file); $vstatus = 'new'; } else { $pattern = "@\!\s(.*?)\s\|@"; $loc = file_get_contents($local_file); preg_match($pattern,$loc,$mloc); $ext = file_get_contents($source_url); preg_match($pattern,$ext,$mext); if ($mloc[1] == $mext[1]) { touch($local_file,$time_stamp); $vstatus = 'no_change'; } else { copy($source_url,$local_file); $vstatus = 'update'; } } } else { $vstatus = 'cached'; } return $vstatus; } // ------------------------------------------------------------- $jver_status = update_jquery($source_url, $local_file, $cache_time, $time_stamp); // ------------------------------------------------------------- print "<p>Update Status: ".$jver_status."</p>\n"; // ------------------------------------------------------------- ?>
jetzt funktioniert aber bei manchen Webspaces das copy() nicht, obwohl allow_url_fopen = on
Welche Alternative habe ich, um die externe Datei bei Bedarf auf den Webspace zu kopieren ?
EDIT:
und gibt es eine Möglichkeit für Webspace mit PHP aber allow_url_fopen = off ???
Beitrag zuletzt geändert: 21.6.2013 12:34:57 von linkrank -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
evtl einfach
file_put_contents(file_get_contens(...),...)
-
ventos schrieb:
evtl einfachfile_put_contents(file_get_contens(...),...)
sollte das nicht gehen dann ggf. mit cURL ohne sie erst in dem mem zu laden (funzt auch bei large files):
$url = 'http://code.jquery.com/jquery-latest.min.js'; $pfad= '/pfad/zu/deinem/jquery-latest-min.js'; $fp = fopen($pfad, 'w'); $ch = curl_init($url); curl_setopt($ch, CURLOPT_FILE, $fp); $daten = curl_exec($ch); curl_close($ch); fclose($fp); // error check if($daten === false) { echo 'Curl error: ' . curl_error($ch); } else { echo 'Operation completed without any errors'; }
Beitrag zuletzt geändert: 21.6.2013 21:51:06 von n0tiert -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage