2013-04-01 185 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