Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
URL PHP中的俄语字符_Php_Sql_Urldecode - Fatal编程技术网

URL PHP中的俄语字符

URL PHP中的俄语字符,php,sql,urldecode,Php,Sql,Urldecode,我浏览了互联网,要么没有找到答案,要么无法正确实施 基本上,我正在尝试在PHP上实现一个俄语网站。我已经有了英文和法文的网站,但是加入了一系列全新的字符,有点破坏了测试网站。我的实际目标是在URL中包含西里尔字母,类似于Wikipedia的做法>,并且仍然可以在数据库中找到这些字符以显示正确的位置信息 在我的SQL数据库中,我有一系列的位置,如法国、德国、澳大利亚等。我对其进行了设置,以便使用$data['Name']变量从这些条目动态生成位置页面。现在。。。在header.php文件中,我使用

我浏览了互联网,要么没有找到答案,要么无法正确实施

基本上,我正在尝试在PHP上实现一个俄语网站。我已经有了英文和法文的网站,但是加入了一系列全新的字符,有点破坏了测试网站。我的实际目标是在URL中包含西里尔字母,类似于Wikipedia的做法>,并且仍然可以在数据库中找到这些字符以显示正确的位置信息

在我的SQL数据库中,我有一系列的位置,如法国、德国、澳大利亚等。我对其进行了设置,以便使用$data['Name']变量从这些条目动态生成位置页面。现在。。。在header.php文件中,我使用它从数据库中为导航生成位置名称:

<li class="dropdown">
    <a href="#">Места</a>
    <ul>
        <?php if (is_array($locations)) {
            foreach ($locations as $key => $location) {
                $name = strtolower(str_ireplace(" ","-", $location['name']));
                if ($location['top_location'] == 1)
                    echo '<li><a href="'.$MASTER['base_url'].'location/'.$name.'">'.$location['name'].'</a></li>';
            }
        }
        ?>
     </ul>
</li>
我试过使用,但没有用。我想我在SQL端或某个函数文件中缺少了一些东西

我的header.php文件包含
header('Content-Type:text/html;charset=utf-8')

以及我的位置页面,包含
header('Content-Type:text/html;charset=utf-8')
我的.htaccess文件已被删除
AddDefaultCharset UTF-8

我不知道我还缺少什么

您可以在此处看到该页面:

我正在使用print_r($host_url)正确打印url,不管它显示什么,以便您可以看到我的问题。我还能够在位置页面上回显Аааааааа,没有任何问题或编码


任何帮助都将不胜感激,因为我正在绞尽脑汁想如何让它发挥作用

我会开始检查您是否有任何文件系统编码问题。检查您的脚本是否使用UTF-8,我相信您的MySQL数据库还可以。您应该能够使用urldecode对请求进行解码。

您好,my header.php文件同时包含和header('Content-Type:text/html;charset=utf-8');以及包含标题('Content-Type:text/html;charset=utf-8');。。。。。我的.htaccess文件具有AddDefaultCharset UTF-8。。。。。。我不知道我还遗漏了什么用记事本之类的编辑器从服务器上打开脚本文件。您可以使用它通过ftp/sftp直接连接到服务器,并检查编码菜单。我用IE做了这个测试,点击了两个链接。它们都解码正确。嗨,Paun,我在Edge中进行了测试,因为我没有IE,顶部链接将被删除,而底部链接将被删除。我不完全理解打开我的服务器脚本文件的意思。抱歉,除非我有更多信息或更好地访问您的代码,否则我不知道您的代码有什么问题。我用德语、法语、罗马尼亚语和保加利亚语做了一些网站,现在技术已经把一切都整理好了。你的URL编码是unicode字符还是something?我不知道,不。我想这一定是怎么回事,只要试着在页面上回显“Аааааа”,看看它是否有效,如果有效,这是因为URL对位置链接进行了编码,并自动将unicode转换为转义百分比序列,这并不是一个很好的解决方案,因为如果位置名称中有空格,它可能会变得奇怪,但我想说的是,大多数浏览器在同一页面上单击时都会转义未转义的URL?或者任何位置页?只是字面上的任何地方,以确认非转义文本从PHP输出非url编码
<?php


    include './inc/utils.php';

    if (isset($_GET['id'])) {
        $name = str_ireplace("-"," ", $_GET['id']);
        $result = get_data("Locations", array("name" => $name))[0];
    }
    else
        $result = null;

    if ($result != null) {
        $data['Name'] = $result['name'];
        $data['Url_Name'] = $_GET['id'];
        $data['Image'] = $result['image'];
        $data['Slider_Text'] = $result['slider_text'];
        $data['Description'] = $result['description'];
        $data['Country'] = $result['top_location'] != 0 ? true : false;
        $data['Cars_In_Location'] = get_cars_in_location($result['id']);

        $img_url = $MASTER['car_img_url'];
        $link_url = $MASTER['base_url'].'car/';

        $cities_id = explode(",", $result['related']);

        foreach ($cities_id as $value) {
            $data['Related'][] = get_data("Locations", array("id" => $value))[0];
        }


    }
    else {
        $data['Name'] = "";
        $data['Url_Name'] = "";
        $data['Image'] = "";
        $data['Slider_Text'] = "";
        $data['Description'] = "";
        $data['Country'] = false;
        $data['Related'] = "";
        $data['Cars_In_Location'] = "";
    }

    if (empty($data['Name']) == true) {
        header('HTTP/1.1 404 Not Found');
        header('Location: '.$MASTER['base_url'].'404.php');
  }

    include 'header.php';

?>