我在尝试测试 simplesamlphp 解析错误时收到此错误:语法错误,第 139 行 /simplesamlphp/modules/core/lib/Auth/Process/GenerateGroups.php 中的意外 T_FUNCTION
这是什么原因造成的?
我正在运行 PHP 5.2
我在尝试测试 simplesamlphp 解析错误时收到此错误:语法错误,第 139 行 /simplesamlphp/modules/core/lib/Auth/Process/GenerateGroups.php 中的意外 T_FUNCTION
这是什么原因造成的?
我正在运行 PHP 5.2
这是因为这是使用匿名函数。我用下面的方法和一个额外的方法替换了这个方法,现在它在 5.2 中可以正常工作。SimplesamlPHP 的要求表明它只需要 PHP 5.1 或 5.2,但如果没有此代码更改,这显然是不正确的。
/**
* Escape special characters in a string.
*
* This function is similar to urlencode, but encodes many more characters.
* This function takes any characters not in [a-zA-Z0-9_@=.] and encodes them with as
* %<hex version>. For example, it will encode '+' as '%2b' and '%' as '%25'.
*
* @param string $string The string which should be escaped.
* @return string The escaped string.
*/
private static function escapeIllegalChars($string) {
assert('is_string($string)');
return preg_replace_callback('/([^a-zA-Z0-9_@=.])/',
array(self,escapeIllegalCharsPregCallback),
$string);
}
private static function escapeIllegalCharsPregCallback($m) {
return sprintf("%%%02x", ord($m[1]));
}