我正在尝试使用以下方法打印URL:
$url=(isset($_SERVER['HTTPS'](&$_SERVER['HTTPS']==='on'"https":"http"("://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";;
它打印英语URL很好,但波斯语URL显示如下:
<link rel="canonical" href="https://www.example.com/8897-%D8%A7%DB%8C%D9%86%D9%B9%DB%8C%DA%A9-%D8%B1%D9%88%DB%8C%D9%86%D8%AC?lang=per"/>
尽管从数据库中选择的字段打印如下:
<title>اینٹیک روینج</title>
但当保存在php文件中时(硬编码(会变成??????保存后。
的快照如下:
<title>اینٹیک روینج</title>
------->这是从数据库中选择的波斯脚本
<meta property="og:title" content="??????????">
------>这是上面的波斯脚本,直接保存在这个php文件中
<link rel="canonical" href="https://www.example.com/7657-%D8%A7%DB%8C%D9%86%D9%B9%DB%8C%DA%A9-%D8%B1%D9%88%DB%8C%D9%86%D8%AC?lang=per"/>
----->这是我们从URL 中捕获的波斯脚本
尽管要将URL部分与存储的slug URL解码(auto_link($URL((进行比较;工作正常,但我需要打印它们以显示规范的URL
我的服务器主机是RHEL 7,我使用的是php5.6、php.ini配置为:
PHP的默认字符集设置为UTF-8。
http://php.net/default-charset
default_charset=";UTF-8";
有关详细信息->我有代码点火器3中的设置config.php为:
$config['charset']='UTF-8'
我在html标题中声明如下:
同样在php中,我已经声明
header('Content-Type:text.html;charset="utf-8"'(
要打印您的URL:https://www.example.com/8897-اینٹیک-روینج?lang=per
使用此
$url = urldecode((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
<link rel="canonical" href="<?=$url?>"/>
或者你可以在单行中完成
<link rel="canonical" href="<?=urldecode($url)?>"/>