0

我正在尝试运行我在http://www.getrank.org/pagerank-script/上找到的 pagerank 脚本。但是当我尝试它时会收到一条错误消息。下面的错误信息。

这是一个合法的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

谢谢。

4

4 回答 4

3

你需要一个比较和一个增量:

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

我还对其进行了优化,以省略strlen()循环内重复的调用。

于 2012-07-20T14:16:03.877 回答
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));
}
于 2012-07-20T14:18:07.687 回答
1

不知道你想到达那里,但函数应该是这样的:

function _strord ($string ) {

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

  return $result;
}
于 2012-07-20T14:16:45.283 回答
0
function _strord($string){
    $result = "";
    for($i=0;$i < strlen($string), $i++)
        $result[$i] = ord($string[$i]);
    return $result;
}
于 2012-07-20T14:15:48.030 回答