當我從PHP v5.2.17 - > v5.3.5升級時出現以下代碼,我無法弄清楚它是什麼。有沒有人有什麼可能是錯的線索?謝謝。使用更高版本的PHP時代碼中斷
<?php
setlocale(LC_ALL, 'en_US.UTF8');
$goto = $_POST['location'];
function toAscii($str, $replace=array(), $delimiter='-') {
if(!empty($replace)) {
$str = str_replace((array)$replace, ' ', $str);
}
$clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
$clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
$clean = strtolower(trim($clean, '-'));
$clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
return $clean;
}
?>
有沒有任何形式的錯誤,我看了看我的CMS日誌,沒有什麼異常。我沒有設定一個簡單的測試,這裏是發生了什麼:
<?php
$goto = $_POST['location'];
function toAscii($str, $replace=array(), $delimiter='-') {
if(!empty($replace)) {
$str = str_replace((array) $replace, ' ', $str);
}
$clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
$clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
$clean = strtolower(trim($clean, '-'));
$clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
return $clean;
}
?>
輸出爲:<?echo toAscii($goto);?>
輸出是:<?echo $goto;?>
當我輸出它的偉大工程的原始形式的數據,當我輸出的toAscii($goto)
數據它什麼也不返回
什麼錯誤消息你得到了嗎? – Swift
你是否收到有用的錯誤信息?堆棧跟蹤? – NullRef
另外,有趣的是,我在我自己的PHP 5.3應用程序中使用了這個確切的代碼。它工作正常。也許你沒有安裝iconv擴展名? – Swift