我正在尝试运行在上找到的pagerank脚本http://www.getrank.org/pagerank-script/.但我在尝试时收到一条错误消息。下面是错误消息。
这是合法的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
谢谢。
您需要一个比较和增量:
function _strord( $string) {
$result = array();
for( $i = 0, $len = strlen( $string); $i < $len; $result[$i] = ord($string[$i]), $i++);
return $result;
}
我还对它进行了优化,以便在循环中重复省略对strlen()
的调用。
如果您查看该页面上所写内容的源代码,您将看到:
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;
}
EDIT一个更干净的实现是:
function _strord($string) {
return array_map('ord', str_split($string, 1));
}
不知道你想做什么,但函数应该是这样的:
function _strord ($string ) {
for( $i=0; $i<strlen( $string ); $i++ ) {
$result[$i] = ord( $string[$i] );
}
return $result;
}
function _strord($string){
$result = "";
for($i=0;$i < strlen($string), $i++)
$result[$i] = ord($string[$i]);
return $result;
}