1.聚合:最终为大家共享
组合:最终为一体
2.如何编写可移植的php代码:
将所有设置和PHP常量放在一个文件中,这样可以从如何函数或类使用它们。 考虑使用XML文件或是将这些信息存到数据库,
注意parse_ini_file函数
关闭magic_quotes
if(get_magic_quotes_gpc()){
$_GET =array_map('stripslashes',$_GET);
$_POST =array_map('stripslashes',$_GET);
$_GET =array_map('stripslashes',$_GET);
}
3.pdo
1)连接mysql
$dsn='mysql:host=localhost;dbname=world;';
$user ='user';
$password ='secret';
try{
$dbh = new PDO($dsn,$user,$password);
}catch(PDOException $e){
echo 'Connection failed'.$e->getMessage();
}
2)连接SQLite
$dsn ='sqlite2:"C:\sqlite\world.db"';
try{
$dbh = new PDO($dsn);
}catch(PDOException $e){
echo 'Connection failed'.$e->getMessage();
}
4.利用PDO使用存储过程
DROP PROCEDURE IF EXISTS getQuote;
DELIMITER
CREATE PROCEDURE getQuote()
BEGIN
DECLARE outStr VARCHAR(45);
SET outStr="Out,damned ";
SELECT outStr;
END
try{
$dbh=new PDO($dsn,$user,$password);
$dbn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql='CALL getQuote()';
$stmt =$dbh->prepare($sql);
$stmt->execute();
$return_string =$stmt->fetch();
}catch(PDOException $e){
echo "PDO Exception Caught";
echo "Error with the database :<br/>";
echo "SQL QUery:".$sql;
}
5.强制在一定字符后折行
wordwrap($string,6,"<br/>");
6.substr_replace($text,$word,$start,$length):控制如何替换文本
7.PHP_EOL:当前操作系统行尾字符,被用作换行符,更具有可移植性
explode(PHP_EOL,$text);将一行作为数组的一个元素
implode($lines,PHP_EOL);反之
8.格式化文本输出
$format='%2$d cents will buy you a %1$s.<br/>';
for($i=0;$i<3;$i++)
printf($format,$fruits[$i],$price[$i]);
9.Validate 有三个验证函数 string,email,url
Validate::string($_POST['name'],$name_options)
Validate::email($_POST['email'])
Validate::url($_POST['url'])
PEAR::Validate将生成E_STRICT错误
10.如何使用MySQL时间戳
DATE_FORMAT();
11.读取文件到数组,到字符串,到屏幕
1)$file=file("XXX.html");
$lined=count($file);
2)$file=file_get_contents("XXX.html");
$file=strip_tags($file);
3)readfile($file);
12.打开和关闭到文件的链接
$fp=fopen("XXX.html",'rb');//b是以二进制文件形式
fclose($fp);
13.1)处理小文件
$fp=fopen('XXX.html','rb');
fread($fp,filesize('xxx.html'));
2)处理大文件
$fp= fopen('xxx.html','rb');
while(!feof($fp)){
$chunk=fgets($fp);
echo $chunk;
}
fclose($fp);
14.如何修改本地文件
$lines =file('xxx.txt');
$fp=fopen('xxx.txt','w');
foreach($lines as $line){
$line=strip_tags($line);
//fget($fp);
fwrite($fp,$line);
}
fclose($fp);
15.使用目录
1)$dp=opendir('./')
readdir($dp)
closedir($dp)
2)使用dir伪类
$dir=dir("./");
while($entry=$dir->read($dir))
if(is_dir('./'.$entry))
echo '';
elseif(is_file('./'.$entry))
echo 'lslk';
16.在文件中存储配置信息
parse_ini_file('目录',TRUE);
17.用php管理文件下载
$fileName='xxx.ini';
$mimeType='application/zip';
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 5') or strpos($_SERVER['HTTP_USER_AGENT'],'Opera 7'))
$mimeType='application/x-download';
header('Content-Disposition:attachment;filename='.$fileName);
header('Content-Type:'.$mimeType);
header('Content-Length:'.filesize($fileName));
readfile($fileName);
18.如何使用PHP创建压缩ZIP/TAR
(使用Archive_Tar类)
require_once 'Archive/Tar.php';
$tar =new Archive_Tar('demo.tar.gz','gz');
$files =array('xxx.ini',
'writeSecureScripts.html'
);
$tar->create($files);
$tar2= new Archive_Tar('demo.tar.gz');
$tar2->extract('demo');
19.压缩数据库数据
$db= new PDO(DBHOST,DBUSER,DBPASS,DBNAME);
$tar = new Archive_Tar('demo/article.tar.gz','gz');
$sql ='SELECT article_id,body FROM articles';
foreach($db->query($sql) as $row){
$tar->addString('目录',$row['']);
}
20.使用PHP5中的标准PHP库操作文件
(使用DirectoryIterator类)
<?php
try{
foreach(new Directory() as $Item)
{
if($Item->getFilename())
$Item->getPath()
$Item->getPathname()
$Item->getPerms()
$Item->
}
foreach(get_class_methods('DirectoryIterator') as $methodName)
{
echo $methodName
}
}catch(){
}