我正在尝试运行我在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
感谢。
答案 0 :(得分:3)
您需要比较和增量:
function _strord( $string) {
$result = array();
for( $i = 0, $len = strlen( $string); $i < $len; $result[$i] = ord($string[$i]), $i++);
return $result;
}
我还对其进行了优化,以便在循环中反复忽略对strlen()
的调用。
答案 1 :(得分: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));
}
答案 2 :(得分:1)
不知道你想要到达那里,但功能看起来应该是这样的:
function _strord ($string ) {
for( $i=0; $i<strlen( $string ); $i++ ) {
$result[$i] = ord( $string[$i] );
}
return $result;
}
答案 3 :(得分:0)
function _strord($string){
$result = "";
for($i=0;$i < strlen($string), $i++)
$result[$i] = ord($string[$i]);
return $result;
}