kostenloser Webspace werbefrei: lima-city


Update jQuery Latest Version

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    linkrank

    linkrank hat kostenlosen Webspace.

    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
    $cache_time = (3600*24*3);
    nur alle 3 Tage


    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. evtl einfach
    file_put_contents(file_get_contens(...),...)
  4. ventos schrieb:
    evtl einfach
    file_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
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!