小编Kri*_*our的帖子

MySQL match()对() - 按相关性和列顺序排序?

好的,我正在尝试在多个列中进行全文搜索,这样简单:

SELECT * FROM pages WHERE MATCH(head, body) AGAINST('some words' IN BOOLEAN MODE)
Run Code Online (Sandbox Code Playgroud)

现在我想按相关性排序(找到多少单词?),我可以用这样的东西做:

SELECT * , MATCH (head, body) AGAINST ('some words' IN BOOLEAN MODE) AS relevance 
FROM pages
WHERE MATCH (head, body) AGAINST ('some words' IN BOOLEAN MODE)
ORDER BY relevance
Run Code Online (Sandbox Code Playgroud)

现在这里出现了我迷失的部分,我想优先考虑head专栏中的相关性.

我想我可以创建两个相关列,一个用于head一个body,一个用于,但在那时我将在表中进行三次相同的搜索,并且对于我正在制作此功能,性能很重要,因为查询将连接并与其他表匹配.

所以,我的主要问题是,是否有更快的方法来搜索相关性并确定某些列的优先级?(作为奖励甚至可能使相关计数在列中出现的次数?)

任何建议或建议都会很棒.

注意:我将在LAMP服务器上运行它.(本地测试中的WAMP)

mysql full-text-search

73
推荐指数
4
解决办法
12万
查看次数

具有特殊字符的名称的正则表达式(Unicode)

好的,我现在整天都在阅读有关正则表达式的内容,但仍然不能理解它.我想要做的是验证一个名字,但我在互联网上找到的功能只能使用[a-zA-Z],留下我需要接受的字符.

我基本上需要一个正则表达式来检查名称是否至少有两个单词,并且它不包含数字或特殊字符!"#¤%&/()=...,但是单词可以包含æ,é,Â等字符......

一个被接受的名字的例子是:"JohnElkjærd"或"AndréSvenson"
一个不被接受的名字是:" Hans ","H 4 nn 3 Andersen"或"Martin Henriksen ! "

如果它重要我使用javascript .match()函数客户端,并希望使用PHP的preg_replace()"负面"服务器端.(删除不匹配的字符).

任何帮助将非常感激.

更新:
好的,感谢Alix Axel的回答,我有重要的部分,服务器方面.

但是,正如LightWing的答案提示的页面所示,我无法找到任何关于javascript的unicode支持,所以我最终为客户端提供了半个解决方案,只检查至少两个单词,最少5个字符,如下所示:

if(name.match(/\S+/g).length >= minWords && name.length >= 5) {
  //valid
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是指定shifty的答案中建议的所有unicode字符,这可能最终会像上面的解决方案那样做,但它有点不实用.

javascript php regex character-properties

11
推荐指数
2
解决办法
1万
查看次数

使用PHP/Apache控制基于DB值的文件访问

我想要的是

我正在建立一个系统,当用户上传图像时,它会进入文件夹images,其中有两个图像副本,一个拇指和一个较大的副本.

现在,当用户上传图像时,它就像在MySQL数据库中插入行一样完成,其中图像获取id,并且该行包含一个值,用于确定图像是否可供公众使用(仅适用于拇指1)可用,两者都是2)以及图像的所有者(管理员).

我不想做的是,如果用户试图通过转到图像的URL来到达图像,并且数据库中的值表明它不应该是公开可用的,并且该用户的会话不是图像,(管理员未登录)它应该说未找到图像或访问被拒绝.

我的想象

如果它可以用PHP完成我想象这样的事情:

//User tries to go to URL "images/IMAGE-ID_thumb.jpg"
if($img['access'] >= 1 || $_SESSION['admin_ID'] == $img['owner_ID']) {
  //Show image thumb
}
else {
  //Access denied
}
Run Code Online (Sandbox Code Playgroud)

我可以隐藏.htaccess受保护文件夹中的图像,制作一个接受URL变量的imgae_get.php,查看图像是否可用,如果是,则加载图像.我只是想避免去/重新编译图像和其他服务器耗电过程.

我的问题是,我可以像这样控制图像吗?有没有办法让PHP脚本显示为内部加载的图像?或者可能有一些其他/更好的方式比通过PHP?(Apache也许?)任何建议都非常感谢.

php apache file access-control

8
推荐指数
1
解决办法
2956
查看次数

服务结构 - 手动Actor停用以进行调试/测试

我正在使用具有状态的ReliableActors处理Service Fabric项目.我保存并删除了actor状态中的东西,并且有一些我想测试的重新激活逻辑.

有没有办法手动停用或垃圾收集演员?我最佳地将测试加载到actor中,将其停用,然后运行一些函数以确保actor仍按预期操作.

c# azure azure-service-fabric

6
推荐指数
1
解决办法
965
查看次数

PHP 无需等待即可执行外部脚本,同时传递变量

我正在为我的用户创建一个功能,他们可以上传大型 XML 文件以与我的数据库同步。

当用户将文件上传到 时upload.php,我想开始在后台处理数据process.php,最好是通过 shell 命令,并将用户重定向到status.php,这显示了同步的过程。

我需要process.php在执行脚本时将一些变量传递给脚本,至少一个带有用户 ID 的变量并将其他变量放入文本文件中(可能更喜欢这样做,这样我就不必在命令中放入太多数据exec()。 ) 或用户 ID 和一堆$_POST变量。

我想到的一种解决方案是执行如下 PHP 脚本:

exec("php -f ./process.php > /dev/null 2>/dev/null &"); 
Run Code Online (Sandbox Code Playgroud)

这允许我锁定 process.php 的 http 访问,这很好,因为它是一个采用脚本的进程。我在这里唯一需要的是以某种方式传递一个变量,但我不知道该怎么做。

所以我的主要问题是:

如何在上述解决方案中传递变量?

或者你们有更好的解决方案吗?可能是我不需要经历的地方exec()?请记住,我不希望用户等待脚本执行,并且我需要传递至少一个变量。

更新:为了将来参考,请记住在通过参数或类似函数传递参数时使用escapeshellarg()exec()

php shell

4
推荐指数
1
解决办法
4421
查看次数

双UTF-8编码,但为什么?PHP/MySQL的

我有一些表单,将一些数据插入MySQL数据库,由于某种原因,字符得到双utf-8编码.你没有在我的网站的前端看到它,但在后端你看,如果我查看来自phpmyadmin的数据,它是双重编码的.

此外,要显示从phpmyadmin输入的数据,我必须这样utf8_encode做.

如果我uft8_decode()在将数据放入数据库之前使用我的数据,它可以工作,但是我必须utf8_encode()再次使用才能正确显示我的数据,我想找到一个更好的解决方案来重写我的大部分代码.

我正在处理的角色是丹麦æ,ø和å字符.

我可以在php.ini中找到设置为utf-8的每个设置,我可以在phpmyadmin中找到utf8,html元标记设置为utf-8的每件事,我仍然有这个错误来处理.

所以我的问题是,有谁知道为什么会发生这种情况,或者我如何解决它?

更新:在运行了Jako建议的mysql代码之后,当数据来自前端时数据在数据库的后端正确编码,但我仍然需要运行utf8_encode()才能在前端正确显示数据,任何想法?..

更新2:同样,从运行的答案代码后,这个问题我仍然有问题,编码现在和关闭UTF8,我怀疑的phpmyadmin了莫名其妙的重新编码.我发现了一种新的做事方式,它完美无瑕,我在下面的答案中有所描述......

php mysql utf-8 character-encoding

3
推荐指数
1
解决办法
2783
查看次数