gpt4 book ai didi

php - MySQL正则表达式函数土耳其字符问题

转载 作者:可可西里 更新时间:2023-11-01 08:23:32 28 4
gpt4 key购买 nike

我正在使用土耳其语的 php 进行搜索。在土耳其字母表中有“i”和“ı”小写字符。还有 'I' 和 'İ' 大写字符。

Mysql select query in regex function cannot found Turkish character, example: İ - ı .. 我的搜索列数据类型字符集UTF-8 general_ci。

我在等你的答案。提前致谢。

最佳答案

您可以通过以下方式解决土耳其语字符问题。

使用 HTML 和 JQuery 代码,如下所示;

function searchBarReplaceChar() {
searchInput = $.trim($('input[name="replaceChar"]').val());

let charMap = {
Ç: '[CÇ]+',
C: '[CÇ]+',
Ö: '[OÖ]+',
O: '[OÖ]+',
Ş: '[SŞ]+',
S: '[SŞ]+',
İ: '[Iİ]+',
I: '[Iİ]+',
Ü: '[UÜ]+',
U: '[UÜ]+',
Ğ: '[GĞ]+',
G: '[GĞ]+',
ç: '[cç]+',
c: '[cç]+',
ö: '[oö]+',
o: '[oö]+',
ş: '[sş]+',
s: '[sş]+',
ı: '[ıi]+',
i: '[ıi]+',
ü: '[uü]+',
u: '[uü]+',
ğ: '[gğ]+',
g: '[gğ]+',
};

let str_array = searchInput.split('');

for (let i = 0, len = str_array.length; i < len; i++) {
str_array[i] = charMap[str_array[i]] || str_array[i];
}

searchInput = str_array.join('');

let replaceChar = searchInput.replace(/[]/gi, "");
let lastChar = replaceChar.slice(-1);
if (lastChar === '+') {
replaceChar = replaceChar.slice(0, -1);
}
$('.result').text(replaceChar);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="replaceChar" value="şehir bu gece çok güzel" />
<p class="result"></p>
<button type="submit" onclick="searchBarReplaceChar()" >Send</button>

使用 ajax post 将此结果发送到您的 php 文件。

稍后,您的 php 文件代码,

public function search_regexp() {
$regexp = str_replace('i', 'İ', $_POST['get_replace_result']);
$regexp = str_replace('ı', 'I', $regexp);
$regexp = mb_strtoupper($regexp, "UTF-8");
$sql_query = "SELECT * FROM your_table WHERE example_column regexp '$regexp'";
// $sql_query = "SELECT * FROM your_table WHERE example_column regexp '[SŞ]+EH[Iİ]+R B[UÜ]+ [GĞ]+E[CÇ]+E [CÇ]+[OÖ]+K [GĞ]+[UÜ]+ZEL'";
}

不要忘记这一点,mysql数据库在你的表列数据类型字符集utf8_turkish_ci

祝你好运

关于php - MySQL正则表达式函数土耳其字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55096839/

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