2011-10-25 18 views
0

我一直收到這條線Notice: Undefined offset: 65這是這條線if($k[$c]) $p = preg_replace('/\b'.base_convert($c, 10, $a).'\b/', $k[$c], $p);。我怎樣才能解決這個問題?爲什麼我會得到通知:未定義偏移:65以及如何修復它

//function to get source html 
function get_data($url) { 
    $curl_handle=curl_init(); 
    curl_setopt($curl_handle,CURLOPT_URL,$url); 
    curl_setopt($curl_handle,CURLOPT_TIMEOUT,10); 
    curl_setopt($curl_handle,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 
    curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,10); 
    curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1); 
    $html = curl_exec($curl_handle); 
    curl_close($curl_handle); 

    return $html; 
} 

//function to extract string beteen 2 delimeters 
function extract_unit($string, $start, $end) { 
    $pos = stripos($string, $start); 
    $str = substr($string, $pos); 
    $str_two = substr($str, strlen($start)); 
    $second_pos = stripos($str_two, $end); 
    $str_three = substr($str_two, 0, $second_pos); 
    $unit = trim($str_three); 

    return $unit; 
} 

//function to decode packer endcoding 
function js_unpack($p,$a,$c,$k) { 
    while ($c--) 
    if($k[$c]) $p = preg_replace('/\b'.base_convert($c, 10, $a).'\b/', $k[$c], $p); 

    return $p; 
} 

//url source; 
$adcrunch = get_data("http://adcrun.ch/BuVE"); 

//gather js_packer arguments 
$arg_p = extract_unit($adcrunch, 'return p}(\'', ';\','); 
$arg_a = extract_unit($adcrunch, '});\',', ','); 
$arg_c = extract_unit($adcrunch, ',10,', ',\'|a0x1'); 
$arg_k = extract_unit($adcrunch, ',\'|', '\'.split'); 

$p = $arg_p; 
$a = $arg_a; 
$c = $arg_c; 
$k = explode('|', $arg_k); 

echo js_unpack($p, $a, $c, $k); 
+2

有沒有數組元素'$ K [65]'。在調用它之前檢查一個數組鍵是否存在,或者在'$ c - ' –

回答

1

未定義偏移意味着有數組$ķ

中沒有索引65您可以通過下列方法「避免」警告:

if(isset($k[c])) 

if(array_key_exists($c, $k)) 

曬。

+0

之後檢查你的數組邊界是否存在。謝謝,但我可以問你這個代碼(http://pastebin.com/DrCc3ncq)是否匹配js_unpack函數?因爲當我添加if(array_key_exists($ c,$ k))時,它返回一個空白頁面。 – bammab

+0

我不太熟悉打包器的PHP版本,但可以試試這個:http://drupal.org/files/issues/js-packer.inc_.txt –

0

試試這一個,而不是

if(isset($k[$c]) && $k[$c]) 

$c是probaly 65和$k[65]不存在

0

或者你用

if(array_key_exists($c,$k)) ... 
相關問題