2012-07-20 65 views
0

我想運行我在http://www.getrank.org/pagerank-script/上找到的pagerank腳本。但是當我嘗試它時收到一條錯誤消息。下面的錯誤消息。這是正確的PHP循環?

這是一個合法的php代碼?

... 
function _strord($string){ 
for($i=0;$i $result[$i] = ord($string{$i}); 
return $result; 
} 
... 

我在for語句開始的那一行出現這個錯誤。

Parse error: syntax error, unexpected T_VARIABLE, expecting ';' in /home/Desktop/test/pagerank-checker.php on line 73 

謝謝。

+1

沒有,它拋出一個語法錯誤 – ajreal 2012-07-20 14:14:34

+1

它甚至沒有遠程正確。 – Alnitak 2012-07-20 14:14:45

+1

自從你停止相信翻譯? – madfriend 2012-07-20 14:15:53

回答

2

如果你看一下源代碼是怎麼寫的那頁,你會看到

function _strord($string){<br> 
    for($i=0;$i<strlen($string);$i++)<br> 
     $result[$i] = ord($string{$i});<br> 
    return $result;<br> 
}<br> 

的代碼沒有經過正確轉義,所以瀏覽器將開始<strlen作爲HTML標籤的開始文本,錯過了一些重要的代碼...

沒有標記記載:

function _strord($string){ 
    for($i=0;$i<strlen($string);$i++) 
     $result[$i] = ord($string{$i}); 
    return $result; 
} 

編輯一個更清潔的實現是這樣的:

function _strord($string) { 
    return array_map('ord', str_split($string, 1)); 
} 
+0

謝謝。你發現它是正確的。我應該已經意識到了。這是一個很好的教訓。如果網頁包含html代碼,請始終檢查源代碼。 – Thupten 2012-07-20 14:28:52

0
function _strord($string){ 
    $result = ""; 
    for($i=0;$i < strlen($string), $i++) 
     $result[$i] = ord($string[$i]); 
    return $result; 
} 
3

你需要一個比較和增量:

function _strord($string) { 
    $result = array(); 
    for($i = 0, $len = strlen($string); $i < $len; $result[$i] = ord($string[$i]), $i++); 
    return $result; 
} 

我還優化了它的號召省略到strlen()反覆循環中。

1

不知道你到底去那裏,但功能應該是這個樣子:

function _strord ($string) { 

    for($i=0; $i<strlen($string); $i++) { 
    $result[$i] = ord($string[$i]); 
    } 

    return $result; 
}