2015-05-27
最近在做一个东西,用PHP写的,由于要将数据库中的图片名字读出来,然后访问对应图片,读取图片的大小以及分辨率,重新存入数据库。数据量现在才是处理5000条的,如果不加任何设置的话,php默认最大执行时间是30秒。
所以30秒内,我只能处理700条,刚开始只能手动,七百、七百的执行了。后来感觉这样不行,以后的数据量会过10W,这样会累死我的。
网上搜索了下,有三种处理方式。
第一种
很直接,既然你默认30秒,那么我就把你的默认时间设置长点,或者直接没有限制。
在php中添加,php ini_set('max_execution_time', '100');函数就可以了,100代表100秒,如果你设置了0,那么就代表没有限制。(ps:我用的是zend的结合,设置为0的时候,不是没有限制,而是大概是120的样子,我的解决方法是,把这个值设置的so big)
第二种
本人很喜欢,是利用php和批处理的结合。
[php]
@REM<?php
@REM =='
@SET PHPCLI="D:/Program Files/Zend/Zend Studio - 8.0.1/plugins/org.zend.php.debug.debugger.win32.x86_5.3.18.v20110322/resources/php53/php.exe"
@REM PHPCLI 设置你的php.exe的路径
@%PHPCLI% %0
@goto :EOF
@REM';?>
<?php
include'C://Program Files//Zend//Apache2//htdocs//pic_gather//pic_operate.php';
echo "/rfinish";
ob_flush();
exec("pause");
?>
是批处理命令,所以我还花了1个小时特地看了下批处理命令。大致翻译下上面的程序。
@:不显示后面的指令,如果去掉,指令会在命令窗口中打印出来
REM 是批处理的注释,后面的是注释,不执行。跟@不同,@只是命令不打印出来,并不表示注释。
程序开始执行,首先是bat运行
[php]
@SET PHPCLI="D:/Program Files/Zend/Zend Studio - 8.0.1/plugins/org.zend.php.debug.debugger.win32.x86_5.3.18.v20110322/resources/php53/php.exe"
设置了PHPCLI的值
[php] view plaincopy
@%PHPCLI% %<span style="font-family: Arial,Helvetica,sans-serif;">0</span>
%PHPCLI% 代表的就是你上面设置的路径,这里表示执行php.exe,然后%0代表此.bat文件所在的路径, 连起来的意思就是用php.exe运行.bat文件。
会出现上面现象呢,php可不认为REM是注释呀,只认为是普通的字符。
就会首先打印@REM,然后
[php]
<?php
@REM =='
@SET PHPCLI="D:/Program Files/Zend/Zend Studio - 8.0.1/plugins/org.zend.php.debug.debugger.win32.x86_5.3.18.v20110322/resources/php53/php.exe"
@REM PHPCLI 设置你的php.exe的路径
@%PHPCLI% %0
@goto :EOF
@REM';?>
这里,php.exe可认识了,表示上面意思?在php中@可认识否?这个表示抑制错误,那么就是字符串‘’中的内容与REM进行==,那么有被@抑制错误。安然度过。
进入下一段
[php]
<?php
include'C://Program Files//Zend//Apache2//htdocs//pic_gather//pic_operate.php';
echo "/rfinish";
ob_flush();
exec("pause");
?>
这里就是你要执行的程序了。我不想写在这里面,那么就include一下,这样容易让.bat成为一个模板。
到此你的php.exe算是走完了,可是还没完呢,刚刚批处理命令才到
[php]
@%PHPCLI% %0
之后为了不让批处理命令不认识php的语言,用了
[php]
@goto :EOF
来结束程序。
有人问为什么不直接这样:
[php]
@SET PHPCLI="D:/Program Files/Zend/Zend Studio - 8.0.1/plugins/org.zend.php.debug.debugger.win32.x86_5.3.18.v20110322/resources/php53/php.exe"
@REM PHPCLI
@%PHPCLI% %0
@goto :EOF
<?php
include'C://Program Files//Zend//Apache2//htdocs//pic_gather//pic_operate.php';
echo "/rfinish";
ob_flush();
exec("pause");
?>
不用搞这么复杂,我也试了下,
发现cmd命令行会出现:
@SET PHPCLI="D:/Program Files/Zend/Zend Studio - 8.0.1/plugins/org.zend.php.debu
g.debugger.win32.x86_5.3.18.v20110322/resources/php53/php.exe"
@REM PHPCLI
@%PHPCLI% %0
@goto :EOF
这代码的原作者,就是想避免出现这样的情况,然打印出太多的垃圾信息。
所以说这才是原作者的精辟之处呀。
第三种
这个如果你,仅仅只要更新里面的字符串信息,比如你设置了class类,如果class='自然风光',那么就把image前面加上pic_gather/nature/image。那么没有必要用上面的这么复杂的东西,直接用sql语言就行了,concat()函数就有这样的功能。
作者:wolinxuebin
1
CI框架连接数据库配置操作以及多数据库操作
09-05
2
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
05-17
3
C语言关键字及其解释介绍 C语言32个关键字详解
04-05
4
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
04-26
5
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
09-05
6
将视频设置为Android手机开机动画的教程
12-11
7
PHP中的(++i)前缀自增 和 (i++)后缀自增
09-05
8
常用dos命令及语法
09-27
PHP中include和require区别之我见
2014-09-05
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
2017-04-12
php递归返回值的问题
2014-09-05
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
单片机编程好学吗?单片机初学者怎样看懂代码
2022-03-21
PHP 教程之如何使用BLOB存取图片信息实例
2014-09-05
零基础的初学者怎样学习java,或者应该先学什么?
2022-03-21
学ug编程如何快速入门?
2022-03-17
PHP数组函数array
2014-09-05
学习使用C语言/C++编程的7个步骤!超赞~
2022-03-20
球球大作战汉化版下载v19.7.1 安卓版
其它手游 170.54MB
下载
葫芦侠三楼最新破解版下载v4.4.0.6 安卓版
其它手游 34.82MB
下载
葫芦侠7楼破解版免费下载v4.4.0.6安卓最新版
其它手游 34.82MB
下载
葫芦侠八楼免费版下载v4.4.0.6安卓版
其它手游 34.82MB
下载
葫芦侠3楼破解版免费下载v4.4.0.6安卓手机版
其它手游 34.82MB
下载
像素漫斗抱歉,“八神庵”是特指游戏角色的专有名词,不存在符合要求的常用同义词近义词。下载v1.00安卓版
其它手游 206.87MB
下载
葫芦侠4楼破解版游戏修改器下载v4.4.0.6安卓免费版
其它手游 34.82MB
下载
末日餐厅安卓版下载v1.35安卓版
其它手游 73.98MB
下载葫芦侠十楼免费破解版下载v4.4.0.6安卓版
下载
葫芦侠8楼最新破解版下载v4.4.0.6安卓版
下载
猫娘乐园世界连结正版下载v1.9.1 安卓版
下载
像素漫斗全员下载v1.00安卓版
下载
葫芦侠8楼手机版下载v4.4.0.6安卓版
下载
末日餐厅正版官网入口下载v1.35安卓版
下载
我的汉克狗正版下载v26.4.1.48473 安卓版
下载
像素漫斗u鼬神最新版本下载v1.00安卓版
下载