我有"utf8 - UTF-8 Unicode"中的模式作为charset和"utf8_spanish_ci"的排序规则.
所有内部表都是InnoDB,具有与上述相同的字符集和校对.
问题出现了:
像查询一样
SELECT *
FROM people p
WHERE p.NAME LIKE '%jose%';
Run Code Online (Sandbox Code Playgroud)
我得到83个结果行.我应该有84个结果,因为我知道.
改变地点:
WHERE p.NAME LIKE '%JOSE%';
Run Code Online (Sandbox Code Playgroud)
我得到完全相同的83行.使用JoSe,Jose,JOSe等组合.报告所有相同的83行.
问题来自游戏中的重音.如果:
WHERE p.NAME LIKE '%josé%';
Run Code Online (Sandbox Code Playgroud)
我没有结果.0行.
但如果我这样做:
WHERE p.NAME LIKE '%JOSÉ%';
Run Code Online (Sandbox Code Playgroud)
我得到一个结果行,所以1行.这是唯一一个带有"jose"和大写字母的行.
我已经尝试过josÉ,或JoSÉ或我做的任何组合,只要重音符号保持大写或不大写,因为它确实存储在数据库中并且它仍然返回唯一的行.如果我突然改变"é"为"é",无论我用JOSE中的大小写做什么组合,它都不返回任何行.
所以结论:
我想要的是?
类似的解决方案COLLATION在LIKE不为我工作的,不知道为什么?
我能做什么?
提前致谢!
编辑:
如果我喜欢这样的话:
WHERE p.NAME LIKE '%jose%' COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'
我也改变了列上所有可能的排序规则!
如果我做了类似的事情:
WHERE p.NAME LIKE _utf8 '%jose%' COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)
报告了相同的83行,好像我什么都没做......
Soap Server的PHP页面(我已经看过了):
http://www.php.net/manual/en/soapserver.soapserver.php
但是我错过了一个重要的缺乏文档,因为我自己的问题:
我需要知道是否可以使用XML字符串直接实例化服务器,就像SimpleXML类一样:
//From var (the one I want):
$movies = new SimpleXMLElement($xmlstr);
Run Code Online (Sandbox Code Playgroud)
要么
//From file and from string (the one I want):
$xml = simplexml_load_file('test.xml');
$xml = simplexml_load_string($string);
Run Code Online (Sandbox Code Playgroud)
所以我想做这样的事情:
$wsdl_cont = file_get_contents("../xmls/mywsdl.wsdl");
$server = new SoapServer($wsdl_cont);
Run Code Online (Sandbox Code Playgroud)
可能吗?
这样做的原因是,因为我有必须使用相同的XML一些不同的URL,所以我需要做一个模板URL飞一个替代,并将其更改为正确的,然后加载WSDL.但我不想在硬盘上保存即时生成的WSDL,以便在读取后立即将其删除.
是否有可能在PHP上创建某种"虚拟文件"并使用它,就像它是一个磁盘读取一样?某种流缓冲?还是某种文件描述符?
我想做典型的高亮代码.所以我有类似的东西:
$valor = preg_replace("/(".$_REQUEST['txt_search'].")/iu", "<span style='background-color:yellow; font-weight:bold;'>\\1</span>", $valor);
Run Code Online (Sandbox Code Playgroud)
现在,请求单词可能类似于"josé".有了它,我也想要"jose"或"JOSÉ"或"José"等.
有了这个表达式,如果我写"josé",它会匹配"josé"和"JOSÉ"(以及所有案例变体).它始终只与重音变体匹配.如果我搜索"jose",它会匹配"JOSE","jose","Jose"而不是重音符号.所以我部分地想要我想要的,因为我对重音和非重音分别不区分大小写.
我需要它完全结合,这意味着重音(unicode)不敏感,所以我可以搜索"jose",并突出显示"josé","josÉ","José","JOSE","JOSÉ","JoSé",... .
我不想在单词上替换重音,因为当我在屏幕上打印时,我需要看到真实的单词.
有任何想法吗?
谢谢!