草庐IT

php - 如何在 php 中处理耗时的任务?

这是问题所在,我有一个链接,是这样的:http://mydomain.com/veryLongPrcoess.php,在这个php里面,我会做一些非常耗时的事情。我使用AJAX调用它,但是调用之后,它终于超时了,因为服务器中的进程仍在运行。处理它可能需要10分钟或更长时间...我如何通知用户,并告诉他/她我完成了工作?而不是等待它超时。谢谢。 最佳答案 这样做的一种方法是使用pcntl_fork.这将允许长任务在单独的进程中运行,并且您可以在完成后简单地向用户发送一封电子邮件。或者,您可以使用AJAX轮询服务器以查看任务是否已完成?

php - 如何在提交php时传递动态表单的字段名称和值

我有一个表单,其中包含固定字段以及从数据库创建的动态字段。这些字段每次都可能不同,它们是带有颜色大小等选项的下拉菜单。我可以这样命名下拉菜单:name="options[]"然后做类似的事情:foreach($optionsas$option){//addtodb}但是这只给我值,我还需要知道optionID我可以做类似的事情:name=""用于下拉列表,但当我尝试处理提交的数据时,我不知道表单中包含哪些optionID。向表单动态添加字段时,如何同时传递optionID和它的选定值? 最佳答案 您可以使数组成为多维的。像这样的东西

php - PHP 中的动态枚举。可能的?懂事吗?

我正在构建一个API,它将接受来自iPhone应用程序的各种指标。应用程序程序员已要求API能够处理API尚不知道的指标类型。我想使用枚举来列出当前的指标类型,但是在将新指标推送到服务器时必须添加新指标。有没有人以前见过这个?我考虑过使用数据库而不是枚举,但这看起来真的很乱。有什么想法吗? 最佳答案 不要使用枚举。枚举主要用于预先知道整个值范围的情况;这显然不是你的情况。 关于php-PHP中的动态枚举。可能的?懂事吗?,我们在StackOverflow上找到一个类似的问题:

php session_destroy 浏览器记住用户名和密码

我正在使用php身份验证方法进行摘要身份验证,如phpmanual中所示.除注销部分外,一切正常。我正在使用session_destroy()尝试注销我的用户,它确实这样做了。但是我的问题是,如果用户在关闭浏览器之前重新登录,他们不会被提示输入用户名和密码,他们会自动使用他们输入的最后一个用户名和密码重新登录。浏览器似乎以某种方式记住了凭据。在Firefox中,如果我在尝试重新登录之前手动清除“清除浏览历史记录”中的“事件登录”,那么我会提示输入用户名和密码,即使用户已使用session_destroy()注销>.我也在用anexamplefromthephpmanual清除cooki

php - 使用 PHP 从其他网站解析(无效)HTML

我正在尝试从以下URL解析以下HTML:http://md5.rednoize.com/?q=fbade9e36a3f36d3d676c1b808451dd7代码:$html=file_get_contents($url.$hash);$config=array('clean'=>'yes','output-html'=>'yes',);$tidy=tidy_parse_string($html,$config,'utf8');$tidy->cleanRepair();$dom=newDOMDocument;$dom->loadHTML($tidy);$result=$dom->get

php - 在图像加载时保存 cookie

当用户从我的服务器加载图像时,是否可以在用户计算机上保存cookie?假设我的图片网址是:http://www.site.com/image.jpg如果他只加载那个jpg,我可以在他的机器上保存一个cookie吗?谢谢, 最佳答案 如果要为此使用PHP,则必须通过PHP脚本提供图像。这可以通过重写请求以转到PHP文件,然后使用readfile来完成。在该脚本中。另一种解决方案是直接在您的网络服务器中设置cookie。如何执行此操作取决于您使用的Web服务器。这就是你在Nginx中的做法:location/image.jpg{add_

PHP:如何在脚本仍在运行时输出 HTML?

我有一个脚本可以检查几百个网页的状态。但是,加载脚本大约需要2分钟,并且在脚本运行完成之前屏幕是空白的。然后一次输出所有数据。我想在脚本还在运行的时候输出数据。这是我的脚本的一部分:foreach($urlsas$url){$headers=get_headers($url,true);$status=$headers[0];list($protocol,$code,$message)=explode('',$status,3);echo''.$url.''.$code.'';} 最佳答案 http://php.net/manual

php - 无法用冒号解析 xml 数据 (:) from response using getNamespaces()

我想阅读里面的任何内容以下xml中的标记-$xml='0.02......somemorethings...';我已将xml放入上面的变量中,然后使用SimpleXMLElement::getNamespaces如“Example#1Getdocumentnamespacesinuse”一节中给出的-//codecontinued$dom=newDOMDocument;//loadtheXMLstringdefinedabove$dom->loadXML($xml);var_dump($dom->getElementsByTagNameNS('http://api-url','*'))

php - 从命令行运行脚本时的 open_basedir 限制

我正在学习如何根据最近项目的要求使用命令行。我有一个将在cronjob期间运行的脚本,我正在使用Putty从命令行点击它来测试它。我的脚本在浏览器中运行良好,但在命令行中尝试包含文件甚至检查文件是否存在时出现权限错误。这只会在命令行中发生。这是控制台中的内容(我确定正在执行正确的脚本,现在它所做的只是检查是否存在所需的文件):这是终端中执行命令的行:secure:~/www/private/cron$php-f./update.php这是输出:Warning:file_exists():open_basedirrestrictionineffect.File(/usr/local/ap

php - 允许用户向使用 Zend Framework 创建的表单添加字段

我正在使用ZendFramework,我目前有一个使用zend-form的现有表单,它可以按要求运行。我想向其中添加另一个可选文本字段,但允许用户选择显示该字段并多次显示。例如带有“备用电子邮件”区域的用户注册表,允许用户为其每个电子邮件地址添加更多文本字段。不幸的是,我不确定该怎么做。我认为子表单可能是前进的方向,但不太确定。理想情况下,提交表单后我希望将数据存储在一个数组中,以便我可以处理它以便随后将其存储在MySQL表中。 最佳答案 请参阅杰里米·肯德尔(JeremyKendall)撰写的关于动态向表单添加字段的精彩帖子:Dy