小编Yas*_*984的帖子

如何随机选择学说

以下是我在数据库中查询某些单词的方法

$query = $qb->select('w')
    ->from('DbEntities\Entity\Word', 'w')
    ->where('w.indictionary = 0 AND w.frequency > 3')
    ->orderBy('w.frequency', 'DESC')
    ->getQuery()
    ->setMaxResults(100);
Run Code Online (Sandbox Code Playgroud)

我正在使用mysql,我想获得符合条件的随机行,我会在查询中使用rand()命令.

我发现这个类似的问题基本上表明,因为在学说中不支持ORDER BY RAND,你可以随机化主键.但是,这不能在我的情况下完成,因为我有一个搜索条件和一个where子句,以便不是每个主键都满足该条件.

我还发现了一个代码片段,建议你使用OFFSET随机化行,如下所示:

$userCount = Doctrine::getTable('User')
     ->createQuery()
     ->select('count(*)')
     ->fetchOne(array(), Doctrine::HYDRATE_NONE); 
$user = Doctrine::getTable('User')
     ->createQuery()
     ->limit(1)
     ->offset(rand(0, $userCount[0] - 1))
     ->fetchOne();
Run Code Online (Sandbox Code Playgroud)

我有点困惑的是,这是否会帮助我解决在我的情况下随机缺乏对订单的支持.我无法在setMaxResult之后添加偏移量.

知道如何实现这一目标吗?

php dql doctrine-orm

32
推荐指数
6
解决办法
5万
查看次数

您能以某种方式运行AWS DynamoDB的本地副本吗?

如果您想编写代码以使用AWS DynamoDB,有没有办法让它在您的本地开发环境中运行?或者你必须使用实际的产品?

您是否必须在AWS上配置开发环境?这不是很烦人,因为你必须使用vim并且无法访问你喜欢的IDE吗?或者,每当你想看看你写的是否有效时,你必须将代码推送到它?

development-environment amazon-web-services amazon-dynamodb

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

有没有办法暂时禁用xdebug的var_dump?

我想使用Zend_Debug :: dump,在日志中保留一些变量,但由于我安装了xdebug,并且xdebug替换了php的var_dump,因此我在log中的值是xdebug生成的html值.

我想知道是否有一种方法在PHP中禁用此功能,并再次启用它,以便我可以将它们放在此行的上方和下方:

    $Message = Zend_Debug::dump($objects, null, false);
Run Code Online (Sandbox Code Playgroud)

zend-framework xdebug zend-log

12
推荐指数
2
解决办法
8276
查看次数

你有什么可以使用HTML5的本地存储?

我想知道什么是HTML5的本地存储功能的一些最有创意和有用的用例.

你有没有遇到任何以酷炫方式使用该功能的网站?

换句话说,可以使用无限期地在浏览器中存储用户数据的地方的一些示例是什么?

任何想法都表示赞赏

html5 local-storage

10
推荐指数
1
解决办法
1500
查看次数

有没有办法对一个单词的发音难度进行排名?

我正在尝试建立一个难以发音的英语单词集.

我想知道是否存在某种算法或理论,可以用来表示单词发音的难度.

这对你来说是否可以计算出来?

由于这似乎是一个非常主观的事情,让我说它更客观,让我们说通过文本到语音技术发音的最难的词.

speech

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

线程安全在PHP上下文中意味着什么?

可能重复:
PHP中的线程安全或非线程安全

什么东西是或不是线程安全的是什么意思?

例如,PHP中的setlocale()不是线程安全的:

每个进程维护语言环境信息,而不是每个线程.如果您在Windows上运行多线程服务器API(如IIS或Apache)上的PHP,则在脚本运行时可能会遇到区域设置的突然更改,尽管脚本本身从未调用过setlocale().这是因为其他脚本同时在同一进程的不同线程中运行,使用setlocale()更改进程范围的语言环境.

http://php.net/manual/en/function.setlocale.php

这实际上是什么意思?什么东西是线程安全的,这是件好事吗?

在什么条件下,您需要一个线程安全或非线程安全的解决方案来解决您的问题?

php thread-safety

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

为数据库分离读写用户是一种很好的安全措施吗?

因此,如果代码的某些部分容易被sql注入,那么如果用户碰巧使用的是对所有内容没有通用写访问权限的前端,那么至少用户无法向数据库写入任何内容?

sql security sql-injection

6
推荐指数
2
解决办法
157
查看次数

在AWS上托管用户上传视频的最佳方法

因此,我正在一个网站上提供用户上传的视频,所有基础架构都在亚马逊上。我正在寻找一个好的工作解决方案,这就是我的想法

  1. 拥有一个EC2 Instant,可使用PHP处理将文件上传到其EBS卷的操作
  2. 将视频文件传输到S3
  3. 使Amazon Elastic Transcoder将视频文件从S3转换为适当的格式,然后将它们存储回S3
  4. 使用CloudFront将转换后的视频文件提供给公众

首先,您对此有何看法?有没有更简单的方法可以达到相同或更好的效果?

其次,我现在的主要问题是将文件传输到S3,我已经尝试过s3fs来做到这一点,但是在大型文件传输中却遇到了各种奇怪的问题,这使我放弃了s3fs。

为了响应最快/最佳方式,将数据从S3复制到EC2?有人建议使用EBS卷,但是我不确定是否可以挂载EBS,然后也可以访问S3上的相同数据。

任何帮助表示赞赏

amazon-s3 amazon-ebs amazon-cloudfront

5
推荐指数
1
解决办法
2457
查看次数

让人们在AWS负载平衡环境中上传文件的最佳方法是什么?

假设您在AWS中运行了instance1,instance2和instance3.

它们都运行Apache,您运行的Web应用程序需要允许用户上传图像,这在许多项目中都是如此.

此外,当您显示图像时,需要将其裁剪为正确的大小,因此您基本上需要确保所有实例始终可以访问相同的文件.

因此,假设用户将图像上传到instance1,而另一个用户正在访问其中相同图像以100x100大小显示的页面,并且他点击了instance2.另一个用户试图在instance3上看到300x300大小的相同图像.还有许多其他不容易预测的尺寸.

所以你基本上需要一个分布式文件系统,我正在使用Gluster FS.所以所有实例都可以访问相同的文件,当看到图像的请求时,我有一个PHP脚本,检查该图像是否已经调整到给定的尺寸,如果是,它将显示它们,如果不是它将调整大小它然后再显示.

Gluster FS工作非常顺利,我对它非常满意,除了我认为我正在重新发明轮子,AWS应该有一些解决方案.使用top命令,我可以看到glusterfs总是使用我的一些CPU.

我还使用CloutFront来缓存调整大小脚本的输出,这可以将服务器负载降低到很好的程度,但Gluster FS的运行成本仍然很高.

您可以使用rsync和某种类型的cron作业来完成同样的操作而不需要Gluster FS,但这需要很多工作并且不太可靠,因为您需要知道何时触发rsyncing过程,并且您仍然无法获得巨大的好处Gluster FS提供的.我也试过s3fs,我只是想说这绝对是一场噩梦.

与Gluster FS相比,NFS驱动器似乎也非常原始,我认为它们使用UDP,因此它们会对您的数据进行处理无关紧要.

那么做这样的事情最好的方法是什么?我试图找到AWS提供的分布式文件系统,因为我认为许多开发人员会有相同或类似的问题,但没有.

您可以说只是上传到s3,但s3对我没有帮助,我需要知道图像是否已经调整大小,然后调整大小并提供服务或者只是服务,所以我需要一些我可以编写脚本的东西.

您也可以说好,为什么不首先调整所有图像的大小,然后将它们全部上传到s3,我不能这样做的原因是

  1. 大约有100万张图片和100种尺寸,因此我们正在寻找大量要转换的文件
  2. 可能每天都会添加新尺寸,因此调整第一个策略不起作用

amazon-s3 amazon-web-services distributed-filesystem glusterfs

5
推荐指数
1
解决办法
411
查看次数

如何在Go中模拟负向后看

我正在尝试编写一个可以提取命令的正则表达式,这是到目前为止使用负向后置断言获得的结果:

\b(?<![@#\/])\w.*
Run Code Online (Sandbox Code Playgroud)

因此,输入:

/msg @nickname #channel foo bar baz
/foo #channel @nickname foo bar baz 
foo bar baz
Run Code Online (Sandbox Code Playgroud)

foo bar baz每次都提取。参见工作示例 https://regex101.com/r/lF9aG7/3

但是在Go中,这不会编译http://play.golang.org/p/gkkVZgScS_

它抛出:

panic: regexp: Compile(`\b(?<![@#\/])\w.*`): error parsing regexp: invalid or unsupported Perl syntax: `(?<`
Run Code Online (Sandbox Code Playgroud)

我进行了一些研究,发现该语言不支持负向回溯以保证O(n)时间。

我该如何重写此正则表达式,以使其在没有负面效果的情况下完成相同的工作?

regex go

5
推荐指数
1
解决办法
3034
查看次数