我写了一个简单的函数来替换非 ASCII 土耳其字符。
function url_cevir($yazi) {
$yazi = trim($yazi);
$eski = array('ü','Ü','ö','Ö','ş','Ş','ç','Ç','ı','İ','ğ','Ğ',' ');
$yeni = array('%C3%BC','%C3%9C','%C3%B6','%C3%96','%C5%9F','%C5%9E','%C3%A7','%C3%87','%C4%B1','%C4%B0','%C4%9F','%C4%9E','%20');
return str_replace($eski,$yeni,$yazi);
}
当我在我调用它的页面中定义它时,它确实有效。但是当我将它包含在外部页面中时,它只会替换空格。
所有代码都在这里,没有其他代码可以污染这些
来自外部页面:
<?php
include('functions/array_and_string_fns.php');
echo url_cevir('ısı geçişi');
?>
如果我使用echo url_cevir('ısı geçişi');
它打印ısı%20geçişi
如果我使用echo ('ısı geçişi');
它ısı geçişi
按我们预期的那样打印。
所以我认为问题来自函数 url_cevir 我认为我错过了一些非常简单的东西。否则这是一个非常有趣的问题。