php信息提醒怎么写,如何修改IIS中的ASP脚本和PHP脚本超时时间?
1,修改ASP脚本超时时间限制 右击需要修改的站点,选择“属性”,然后选择“主目录”,再选择“配置”。 选择“选项”,在ASP脚本超时中修改下时间,确定下就可以了。2,修改PHP脚本超时时间限制FastCGI ErrorThe FastCGI Handler was unable to process the request. --------------------------------------------------------------------------------Error Details:•The FastCGI process exceeded configured activity timeout•Error Number: 258 (0x80070102).•Error Description: µÈ´ýµÄ²Ù×÷¹ýʱ¡£ HTTP Error 500 Server Error.Internet Information Services (IIS) 如果服务器正常,本错误往往发生在提交一个很大的字符串时发生。原因就是在处理如此“巨大”的字符串提交请求时,服务器处理超时了。可以通过设置fcgiext.ini里面的超时配置和php.ini里的超时配置来解决。当然,根据个人对服务器设置的不同,可能还需要修改更多配置信息。比如允许一次性提交多少数据。 大概给该网站建立一个独立的应用程序池也可以解决某些因此原因导致的问题。 在C:\WINDOWS\system32\inetsrv文件夹中找到fcgiext.ini文件。 注意:如果是新版的PHP环境,fcgiext.ini文件是存放在C:\ZkeysSoft\php\目录。 打开文件后,里面关于php脚本活动超时时间(ActivityTimeout)的配置信息如下:[Types]php=PHP[PHP]ExePath=c:\PHP\php-cgi.exeInstanceMaxRequests=500EnvironmentVars=PHP_FCGI_MAX_REQUESTS:1000ActivityTimeout=1200 里面的数字可以自行调整。上面的提示,即配置文件里的ActivityTimeout=600 这个时间超时设置,600是10分钟,最大可以设置为6000一小时。但不一定就是这个原因引起的。
实时生成并下载大数据量的EXCEL文件?
对于任何一个网站肯定是少不了下载功能,常见的下载功能有图片、视频、Excel表格,如果文件比较小的话,那么不会遇到任何的问题,但是当文件信息而超过了PHP的最大内存,那么在这个时候它就会有的内存溢出的问题。
那么它们是因为什么而发生的?对于这个过程的原理才是我们应该真正要去弄明白的事情
下载大数据量的EXCEL文件为何要报错?PHP在下载大Excel表格的时候,那么首先它是需要去把MySQL的数据从硬盘上面读取到内存,但读取它是一次性载入到我们的内存,如果说它一次性载入的数据量远远大于最大内存,然后再来执行浏览器的业务下载。那么这个时候它就会发生我们这个内存溢出。
就比如:说我们现在有100M的数据量,但是我们PHP内存最大只有64M,那么这个它肯定是装不了的,我们可以把那个内存比喻为一个水杯,这个水杯的容量比喻为内存,现在杯子最大容量为64L。你要存放100L。肯定放不下
大事化小,小事化了。拆分成段从上面可以看到文件下载,它是分为两步,首先是载入内存然后执行浏览器的输出下载,那么既然大型文件一次性载入不了,那可以采用 “大事化小,小事化了”思路,我们可以实现边写边下载,也就是分批次的读取与写入。
因为用户的话,只要最终拿到这个文件就可以,对于浏览器的下载原理不需要关心。只需要给到文件下载提示给用户即可,然后后端在实时的分批次的写入到要下载的文件当中。
实现思路步骤:
1、一设置浏览器下载Excel需要的Header
2、打开 php://output 流,并设置写入文件句柄。
注:(php://output,是一个可写的输出流,允许程序像操作文件一样将输出写入到输出流中,PHP会把输出流中的内容发送给web服务器并返回给发起请求的浏览器)
3、获取数据库所有数据量,并设置每次查询的条数,通过这两个值计算分批查询的次数
4、基于分批查询的次数循环查询数据库,然后写入到文件中,同时清除本次操作变量内存,刷新缓冲到浏览器,让浏览器的文件始终实时保持到最新的大小
注:刷新用ob_flush、flush()PHP的I/O流在这里我们用到了PHP的一个IO的输入输出,也就是我们常用的
php://input php://output。php://input
php://input可以读取原始的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。php://input不能用于enctype=multipart/form-data”.
注:HTTP_RAW_POST_DATA 在PHP7已经被废弃,它不是$_POST额php://output
php://output 是一个只写的数据流, 允许你以 print 和 echo 一样的方式 写入到输出缓冲区。
综上:实现思维与原理很重要如有感悟,欢迎关注额。(* ̄︶ ̄)thinkphp中怎么做时间的到期提醒?
这个其实用php没法做,只能配合js来用,用ajax不断请求php当到达规定时间后ajax返回提示结果,这样比较费资源,还有一种就是直接在客户端的js中计算时间的到期提醒,摒弃服务器端。
微信支付接口收不到支付通知原因?
1、首先确定您已经配置好微信支付,用户已经能通过您的微信公众号付款,只是付款成功后您配置的通知接口收不到成功的通知消息,然后再往下读。
2、这次说明使用微信支付接口PHP版本的,配置文件在WxPay.pub.config.php中,NOTIFY_URL 配置的连接就是您微信平台服务器接收通知消息的接口文件。
3、针对上面配置说明下,不管你用哪种场景方式支付,扫码、JSAPI、APP等都需要提供一个通知接口,以便您的平台收到成功消息后实现自动充值或购买操作。
4、官方有说明,平台给您的接口发送通知是30分钟内8次,如果收不到您就不能实现自动充值等功能,很是麻烦,需要手动去商户平台对账操作,但这个接口具体要求我看遍了官方文档也没有详细的说明。
5、用的是thinkphp为框架开发的微信公众号平台,所以开始接口地址我配置的是:http://www.xxxxxx.com/index.php?s=s=/addon/chongzhi/chongzhiOK/token/xxxxx.html 这种带参数的地址,这个地址在外面是可以正常打开访问的,但就是支付成功后收不到微信发来的通知。后来我把地址更换为:http://www.xxxxxx.com/huitiao.php 就能正常接收通知了,才发现微信支付通知接口地址不允许带有任何参数的。
6、直接在服务器上做了个rewrite,,当通知接口是www.xxx.com/huitiao.php时我rewrite, http://www.xxxxxx.com/index.php?s=s=/addon/chongzhi/chongzhiOK/token/xxxxx.html ,这样既能接收通知,也能正常使用功能了。
7、这时请检查并开启软件的自启动管理,避免待机时后台应用清除而收不到。
【设置】--【电力管理】
8自启动管理--将“支付宝”、“微信”开启允许通知。
怎么限制让他发送10条消息1秒钟之后再发送?
正常接口返回格式是{code:0,msg:'',data:{}},接口限制的时候可以返回{code:1001,msg:'请一秒钟后重试.',data:{}}你可以记录一个cahce值,内容就存用户这次访问本接口的时间戳,和发送次数;每次请求进来的时候,取用户cache,比对发送次数,如果不到10次,提示msg,然后ajax接收到code=1001的返回值就搁置按钮1秒钟.