最近在做一个东西,用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
@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';?>
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% %0
%PHPCLI% 代表的就是你上面设置的路径,这里表示执行php.exe,然后%0代表此.bat文件所在的路径, 连起来的意思就是用php.exe运行.bat文件。
会出现上面现象呢,php可不认为REM是注释呀,只认为是普通的字符。
就会首先打印@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.exe可认识了,表示上面意思?在php中@可认识否?这个表示抑制错误,那么就是字符串‘’中的内容与REM进行==,那么有被@抑制错误。安然度过。
进入下一段
[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
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

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ドリームウィーバー CS6
ビジュアル Web 開発ツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック



