Php 非指定函数返回1

Php 非指定函数返回1,php,Php,我正在尝试使用uncent函数来记忆特殊字符 如果放置:echo uncent('áç');结果还可以 当我尝试添加分解参数时:echo uncent($foo[1]);结果是1 有什么建议吗 $fiche = file('fiches.txt'); foreach ($fiche as $line_num => $line) { echo $line; $foo = explode (",", $line); function Unaccent($string) { return p

我正在尝试使用uncent函数来记忆特殊字符

如果放置:echo uncent('áç');结果还可以

当我尝试添加分解参数时:echo uncent($foo[1]);结果是1

有什么建议吗

$fiche = file('fiches.txt');
foreach ($fiche as $line_num => $line) {
echo $line;

$foo = explode (",", $line);

function Unaccent($string)
{
return preg_replace('~&([a-z]{1,2})(acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8'));
}

echo Unaccent($foo[1]);

我是这样解决的:

preg_replace("/&([a-z])[a-z]+;/i", "$1", htmlentities($line));

非常感谢大家。

您试过调试这个吗?什么是
var_转储($foo[1])显示?您的
foreach
循环的关闭
}
在哪里?你是否(重新)在循环中声明
uncent
?}是否关闭了var_dump retur this:string(9)“ACaççççççççççççç”这在我的末尾(PHP5.4.4)工作得很好:
$foo=explode(',','test,t,tésî;echo uncent($foo[1])<如果未找到匹配项,则code>preg_replace()
返回
NULL
,因此这不是
NULL
。尝试
print_r(uncent($foo[1])并查看它返回了什么
echo
是一个void类型的函数,因此它不能返回
TRUE
a.k.a.1,因此它必须与函数的输入有关。或者(但不太可能)使用
override_function()
.print_r($foo[1])覆盖了echo函数;返回ACaçççççççççÕ打印(未接收($foo[1]);不返回任何内容(我使用的是PHP5.3.1)