gpt4 book ai didi

php - 通过 mod_rewrite 在 URLS 中使用 - 并查询 Mysql 数据库

转载 作者:行者123 更新时间:2023-11-29 11:17:19 25 4
gpt4 key购买 nike

我有一个问题。我正在使用 mod_rewrite 重命名我的 URL

一切正常,直到我重新格式化 URL,以便包含空格 - 而不是 %20。

site.com/page.php?country=abc&region=d e f&city=gh i

site.com/abc/d-e-f/gh-i/

目前我正在做这个

if (isset($_GET['country'])) {$country = str_replace('-', ' ', $_GET['country']);}
if (isset($_GET['city'])) {$city = str_replace('-', ' ', $_GET['city']);}
if (isset($_GET['region'])) {$region = str_replace('-', ' ', $_GET['region']);}

然后,我在查询数据库时转换回正常状态,例如:

str_replace(' ', '-', $_GET['city'])

然而,这产生了一个问题,因为一些城市同时使用空格和 -。 圣安德烈留尼汪岛

最初我考虑运行原始 SQL 查询,如果返回 0 个结果,则在再次运行查询之前将 str_replacing 空格替换为 - 。然而,只有当城市仅包含 - 和 0 空间(例如Saint-andre)时,这才会修复它。

$sql2 = "SELECT `name`, FROM `list` WHERE country = '$regionCode[0]' AND admin1 = '$regionCode[1]' AND admin2 = '$regionCode[2]' AND city = '$city' ORDER BY 'moddate'";

处理这个问题的最佳方法是什么?我应该使用双破折号并以不同的方式处理这个问题吗? EG Saint--andre-reunion-island 或者有更好的方法吗?

谢谢

最佳答案

决定使用双破折号选项并创建一个函数。如果有更好的选择,我仍然欢迎任何其他建议:)

我在下面使用的代码。

   // URL Database conversion class
function QueryConversion($url) {
$url = str_replace('--', '*', $url);
$url = str_replace('-', ' ', $url);
$url = str_replace('*', '-', $url);
return $url;
}

// URL conversion class
function URLconversion($url) {
$url = str_replace('-', '--', $url);
$url = str_replace(' ', '-', $url);
return $url;
}

if (isset($_GET['country'])) {$country = QueryConversion($_GET['country']);}
if (isset($_GET['region'])) {$region = QueryConversion($_GET['region']);}
if (isset($_GET['city'])) {$city = QueryConversion($_GET['city']);}

关于php - 通过 mod_rewrite 在 URLS 中使用 - 并查询 Mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39527899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com