加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

php-MySQL正则表达式功能土耳其语字符问题

发布时间:2021-02-26 15:38:21 所属栏目:编程 来源:网络整理
导读:我正在用土耳其语搜索php.在土耳其语字母中,有“ i”和“?”小写字符.还具有“ I”和“?”大写字符. 在正则表达式函数中找不到MySQL选择查询土耳其语字符,例如:?-?..我的搜索列数据类型字符集UTF-8 general_ci. 我在等你的答案.提前致谢. 最佳答案您可以通

我正在用土耳其语搜索php.在土耳其语字母中,有“ i”和“?”小写字符.还具有“ I”和“?”大写字符.

在正则表达式函数中找不到MySQL选择查询土耳其语字符,例如:?-?..我的搜索列数据类型字符集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帖子的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

祝你好运

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读