2013-04-01 183 views
-3

下面是一個PHP腳本,它不乾淨,也不友好或多或少需要點爲什麼它的崩潰我的服務器,我試圖查看我的錯誤日誌在我的服務器上,但它的崩潰,我不能訪問現在....我的PHP技能不是那麼好...任何幫助表示讚賞:PHP腳本導致服務器錯誤

$checker = 0; 
    function shuffleArray($myArray) { 
    $value_count = array_count_values($myArray); 

    $last_value = $myArray[count($myArray) - 1]; 
    unset($myArray[count($myArray) - 1]); 
    $shuffle = array(); 
    $last = false; 

    while (count($myArray) > 0) { 
    $keys = array_keys($myArray); 
    $i = round(rand(0, count($keys) - 1)); 
    while ($last === $myArray[$keys[$i]]) { 
    $i = round(rand(0, count($keys) - 1)); 
    echo "stuck";$checker++; 
    if($checker>100){ 
     echo " Too many checks so die, and restart process "; 
     exit; 

    } 
    } 
    $shuffle[] = $myArray[$keys[$i]]; 
    $last = $myArray[$keys[$i]]; 
    unset($myArray[$keys[$i]]); 
} 

if ($last_value === $last) { 
$i = 0; 
foreach($shuffle as $key=>$value) { 
    if ($value !== $last_value) { 
     $i = $key; 
     break; 
    } 
    } 
    array_slice($shuffle, $i + 1, 0, $last_value); 
    } else { 
    $shuffle[] = $last_value; 
    } 

    return $shuffle; 
    } 

$shuffleReel = (shuffleArray($virtualReel)); 
function bob(){ 
if($checker>100){ 
    $checker = 0; 
    shuffleArray(); 
    echo "bob"; 
    reset($myArray); 
} 
    } 
+0

爲什麼你不能訪問你的日誌? – 2013-04-01 18:00:53

+0

這是一個爛攤子......在發佈你的所有PHP之前,你能否把它縮小一點? – brbcoding

+0

不能訪問我的服務器,因爲內存問題,ID說有錯誤發生在線附近的循環「太多檢查和死亡」我不認爲它的死亡 – joshua

回答

0

答案是沒有在循環中的錯誤處理,所以發生了什麼是我的服務器資源全部用完: 來解決這個問題,我不得不從腳本返回null到Flash/Action腳本。

 if($checker>100){ 
     $returnString = http_build_query("Error_1); // for flash to restart script 
        echo $returnString; 
     exit; 
     } 
1

在訪問用雙引號(稱爲插值)關聯數組變量,你必須包裹於{}。例如:

$reelFrame['value1'] = "{$ini_array['Symbol1']}";//notice I added {} around the array and encased Symbol1 in single quotes. The latter part is not necessary but recommended.

你必須做的所有十行。

+0

另外,你可以擺脫你正在訪問的數組變量周圍的雙引號:P – Kita

+0

應該有數組中的reelframes,而不是十行,此刻這一切都是然後閱讀的動作,所以現在我離開這段代碼,因爲我花了一段時間...即時通訊不是一個PHP開發人員 – joshua

+0

我明白,但你仍然應該檢查它,因爲沒有大括號左右它可能會導致致命的錯誤取決於您的服務器建立 :) – Kita