0

私はこのスクリプトを持っていますが、機能していません。修正方法がわかりません。ヒントを教えてください。もう一方の端から出るのは文字「t」だけです

ありがとう :)

<?php
$cachefile = './current_t_id';
$time = $id = null; // assume we have no cached quote
$change_every = 3600; // seconds
$pages = array(1 => 'text1-1.php', 2 => 'text1-2.php');

foreach($pages as $pagekey => $page){
    if($pagekey == $siteId){
        include($page);
    }
}

// if cached quote exists, load it
if(is_file($cachefile)) {
    list($time, $id) = explode(' ', file_get_contents($cachefile));
}

// if no cached quote or duration expired, change it
if(!$time || time() - $time > $change_every) {
    srand ((double) microtime() * 100000);
    $id = rand(0,count($page)-1);
    file_put_contents($cachefile, time().' '.$id); // update cache
}

// echo the quote, be it cached or freshly picked 
echo ($page[$id]);
?>
4

1 に答える 1

1

では、3 つの異なる例を挙げます。

変数

$quotes = array (
        "hello",
        "baba",
        "luke" 
);


$pages = array(1 => 'text1-1.php', 2 => 'text1-2.php');

A. ランダム引用符の使用

// Using Ramdom Quptes
$key = array_rand ( $quotes );
echo $quotes [$key]; 
//Or
include($pages[$key]) ;

B. ロビンの使用

// Using Robin
$cacheFile = "robin.cache";
$robin = null;
$quotesID = intval ( file_get_contents ( $cacheFile ) );
$totalQuotes = count ( $quotes );

$key = ($quotesID < ($totalQuotes - 1)) ? $quotesID ++ : 1;
file_put_contents ( $cacheFile, $quotesID );

echo $quotes [$key];
//Or
include($pages[$key]) ;

タイマーの使用

// Using Timer

$cacheFile = "timer.cache";
$expiration = 3600;

$robin = null;
list($quotesID, $time) = explode(' ', file_get_contents($cacheFile));
$totalQuotes = count ( $quotes );

if($time < (time() - $expiration))
{
    $key = mt_rand(0,count($pages)-1);
    file_put_contents($cacheFile, time().' '.$id);
}
echo $quotes [$key];
//Or
include($pages[$key]) ;

あなたの問題が今解決できることを願っています

ありがとう :)

于 2012-04-04T15:24:18.470 に答える