我有一个webapp需要处理URI以查找数据库中是否存在页面.我没有问题使用.htaccess将URI指向应用程序:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?p=$1 [NC]
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果页面不存在,我不想使用用PHP编写的自定义404处理程序,我想显示默认的Apache 404页面.当确定页面不存在时,有没有办法让PHP将执行权交还给Apache?
我在MySQL中有两个相关的表.我想在表A中找到没有相应行表B的行.这里的手册和其他线程推荐这样做:
SELECT a.id
FROM a LEFT JOIN b ON a.id = b.a_id
WHERE b.id IS NULL;
Run Code Online (Sandbox Code Playgroud)
但是,这很慢.在我的例子中,表A的行少于5000行,表B的行数约为40000,但此查询最多需要8分钟.
有谁知道如何更快地实现这一目标?
非常感谢,亚光
编辑:索引是问题.创建一个后,查询将在10微秒内运行.
我一直在使用php的get_browser()功能对我的用户进行一些轻量级分析,主要用于调试.然而,看来browsercap.ini的维护者,为get_browser提供动力的数据已经退出了项目,虽然有些人似乎正在重新启动它,但数据变得非常陈旧.他们正在谈论完全改写,所以我担心它会再花一段时间才能重新开始.
有人知道不依赖于browsercap.ini的替代方案吗?
编辑:我很抱歉我的问题含糊不清.我需要这个用于调试,而不是分析.我在Web应用程序中的"报告错误"工具中使用它,它有很多跨浏览器的错误,但我无法控制客户端计算机.这是一个非常古老的应用程序(最初是为IE6构建的),我们一直在尽最大努力使其更新,但跨浏览器问题有时很难找到.
再次感谢你
我使用专有的第三方Drupal模块,通过curl查询第三方服务.这项服务最近有点不稳定,这使我的页面加载速度变慢了,当我有大量的流量时,我正在进行max_connections.
此扩展程序查询的信息并不重要,但重要的是我不能只删除该模块.目前,我通过修补模块来修复它,为请求添加一个curl超时:
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
Run Code Online (Sandbox Code Playgroud)
但是,我不想将黑客留在原地,因为它会在下次更新时消失,因为问题是间歇性的,它不会出现在测试中.
有没有办法在php.ini设置或PHP中通过代码全局设置超时(我可以放入自定义模块)?
任何帮助表示赞赏,
谢谢