-
PHP数据量过大,导致执行效率严重降低的解决方法
PHP数据量多大,是一个网站发展到一定阶段,必须要遇到的。在这个时候,如果遇到页面的执行时间过长,执行效率严重降低的时候,可以尝试下面的方法,分析找出原因所在:
1、分析表是否建立索引
2、在mysql中直接执行SQL语句,看执行时间
相关文章:
没有评论 -
PHP 获取两个标签之间的字符串
代码如下:
<?php $str = '<h1>字符</h1>'; preg_match("|<h1>([^^]*?)</h1>|u", $str, $matches); echo $matches[1]; ?>按照上面的代码,适当的修改即可。
-
php去掉字符串中的最后一个字符 substr()、strlen()
原字符串1,2,3,4,5,6,
去掉最后一个字符”,”,最终结果为1,2,3,4,5,6
代码如下:
$str = “1,2,3,4,5,6,”;
$newstr = substr($str,0,strlen($str)-1);
echo $newstr;测试成功。
-
php轻松导出excel
实际应用中,php导出excel是很常见的。
代码如下:
<?php
header(“Cache-Control: no-cache, must-revalidate”);
header(“Pragma: no-cache”);
header(‘Content-type: application/x-msexcel’);
header(“Content-Disposition: attachment; filename=gbook.xls” );
header(“Content-Description: PHP/INTERBASE Generated Data” );xlsBOF(); // begin Excel stream
xlsWriteLabel(0,0,”留言标题”);//write a Label A1
xlsWriteLabel(0,1,”留言人”);
xlsWriteLabel(0,2,”手机”);
xlsWriteLabel(0,3,”邮箱”);
xlsWriteLabel(0,4,”QQ”);
xlsWriteLabel(0,5,”留言时间”);
xlsWriteLabel(0,6,”留言内容”);
xlsWriteLabel(0,7,”回复内容”);
//
$sql = “select * from hd_info order by add_time asc”;
$rst = $folie->excu($sql);
$i = 1;
while($info = mysql_fetch_array($rst)){
xlsWriteLabel($i,0,$info["title"]);
xlsWriteLabel($i,1,$info["add_user"]);
xlsWriteLabel($i,2,$info["tel"]);
xlsWriteLabel($i,3,$info["email"]);
xlsWriteLabel($i,4,$info["qq"]);
xlsWriteLabel($i,5,date(“Y-m-d”,$info["add_time"]));
xlsWriteLabel($i,6,$info["cont"]);
xlsWriteLabel($i,7,$info["reply_cont"]);
$i++;
}
//xlsWriteNumber(0,1,9999); // write a number B1
xlsEOF(); // close the stream// —– begin of function library —–
// Excel begin of file header
function xlsBOF() {
echo pack(“ssssss”, 0×809, 0×8, 0×0, 0×10, 0×0, 0×0);
return;
}
// Excel end of file footer
function xlsEOF() {
echo pack(“ss”, 0x0A, 0×00);
return;
}
// Function to write a Number (double) into Row, Col
function xlsWriteNumber($Row, $Col, $Value) {
echo pack(“sssss”, 0×203, 14, $Row, $Col, 0×0);
echo pack(“d”, $Value);
return;
}
// Function to write a label (text) into Row, Col
function xlsWriteLabel($Row, $Col, $Value ) {
$L = strlen($Value);
echo pack(“ssssss”, 0×204, 8 + $L, $Row, $Col, 0×0, $L);
echo $Value;
return;
}
?>连接MYSQL的语句,根据不同的网站自己写上吧,核心代码就是上面的了。
-
php里面的sql批量替换语句
网站在用临时域名访问的时候,有些编辑器上传的图片是以绝对路径保存在数据库里的,这样更换域名之后,就会导致图片不能访问。
这种情况,目前可以有两种情况解决:
1、前台输出的时候,用replace函数替换掉,但是数据库里面的不会变。
2、直接修改替换数据库里面的内容,代码如下:
sql语句为:
UPDATE `table_name` SET `field_name` = replace (`field_name`,’from_str’,'to_str’) WHERE ……
说明:
table_name —— 表的名字
field_name —— 字段名
from_str —— 需要替换的字符串
to_str —— 替换成的字符串
大家不妨试一下。
-
利用adodb5类库,PHP轻松读取ACCESS数据库
adodb5类库,的确是个好东西,这里只介绍PHP利用adodb5读取ACCESS数据库,并将信息插入到MYSQL数据库。
看下面代码:
<?php
//包含类库
include “adodb5/adodb.inc.php”;
//包含连接MYSQL数据库文件
include “mysql.php”;
//直接复制,不用设置
$db=NewADOConnection(“access”);
$drive=”DRIVER={Microsoft Access Driver (*.mdb)};DBQ=”.realpath(“data.mdb”).”;Uid=;Pwd=;”;
if($db->Connect($drive)){
date_default_timezone_set(“PRC”); //设置时区
$db->SetFetchMode(ADODB_FETCH_ASSOC); //设置读取数据的模式$folie = new mysql;
$folie->link(“”);//读取ACCESS数据库Ft_art表的字段
$rst = $db -> execute(“select * from Ft_art”);
while(!$rst -> EOF){
//读取字段art_id,方法:$rst->fields[art_id],其他相同
$id = $rst -> fields[art_id];
$title = $rst -> fields[art_title];
//插入MYSQL数据库的SQL语句
$sql = “insert into info(`id`,`title`) values(‘$id’,'$title’)”;
$folie->excu($sql);
}
//循环
$rst -> movenext();
}
}
?>根据具体的情况,具体的配置吧,类库很强大,可以百度一下其他的使用方法。
类库下载:点击下载
-
PHP:dirname(__FILE__)
今天在鼓捣淄博信息超市的时候,程序在本地测试没有任何问题,上传至空间之后,就出现不能删除已生成的静态页面的问题。
权限是有的,因为能生成页面,程序也没有问题啊,本地测试一切正常。
思考之后,想到另一个问题,有个客户的网站在底部添加了一个PHP写的访客统计的小程序,是写入记事本的。当时就出现不能写入的情况,权限没有问题。
网上搜了下,感觉是路径的问题。
进入正题:
php中定义了一个很有用的常数,即
__file__
这个内定常数是当前php程序的完整路径(路径+文件名)。
即使这个文件被其他文件引用(include或require),__file__始终是它所在文件的完整路径,而不是引用它的那个文件的完整路径。
请看下面例子:
/home/data/demo/test/a.php
<?php
$the_full_name=__FILE__;
$the_dir=dirname(__FILE__);
echo $the_full_name; //返回/home/data/demo/test/a.php
echo $the_dir; //返回/home/data/demo/test
?>经过测试,确定是路径的问题。
修改:$delFile = “./article/”.$aid.”.html”; 为 $delFile = dirname(__FILE__).”/article/”.$aid.”.html”;
问题解决。
-
PHP 正则 截取两个符号之间的内容
最近玩了个批量生产,从下面的内容里面: Read More »
-
删除通过网页编辑器上传的文件
网页中可潜入的编辑器种类繁多,多数提供了上传的功能,但是没有提供对上传文件管理的功能,这样随着时间的推移,删除的仅仅是数据库中的文字信息,而真正占用大空间的文件仍没有删除,这里就整理下如何在删除信息的同时也删除通过编辑器所上传的文件: Read More »
