首 页   · 站长博客 · 用户注册 · 会员登陆  · 会员排行  ·最新主题  ·最近回复  精华区  版权声明  ·论坛管理
  当前登录身份:游客,请先登录。  笔名: 口令: 验证码:   
楼 主  index »  PHP+MYSQL编程 » [转帖]PHPMYSQL常见问题集锦  


  作者:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

  nqp@nqp.me
  4304410
  www.nqp.me

 

 发表:2005-07-09 21:20:58 阅读 4591 次 回复 6 次 得分6  |   字号 字色
[转帖]PHPMYSQL常见问题集锦
资料来源:Exceed PHP Club http://club.phpe.net

论坛上有朋友推荐这个地址,上面有不少技巧集锦.看了以后感觉很不错,总结了许多常见错误和解答,对初学者比较有用.还有一些小技巧对PHP编程者也非常有帮助。为了防止时间长了链接失效,所以转在这里,留个备份。
注:以下节录有删节
---------------------------------------------------
===> register_globals[全局变量]的相关说明
很多入门的朋友被全局变量搞的很糊涂,可以参考以下的说明:
CODE  
决定是否将 EGPCS(Environment,GET,POST,Cookie,Server)变量注册为全局变量。例如,如果 register_globals = on,那么 URL http://www.example.com/test.php?id=3 将产生 $id。或者从 $_SERVER['DOCUMENT_ROOT'] 得来 $DOCUMENT_ROOT。如果不想用户数据把全局域弄乱的话可以将此选项关闭。自 PHP 4.2.0 开始,本指令默认为 off。推荐使用 PHP 的预定义变量来替代,例如超全局变量:$_ENV,$_GET,$_POST,$_COOKIE 和 $_SERVER。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 一个写文本数据的函数,可以有效防止清零
自己用在计数器中,在linux下日ip8万没有发现清零的现象
CODE  

<?php 
// Write Something to a Text 
function writetofile($filename,$data,$method="rb+"){ 
  touch($filename); 
  $handle=fopen($filename,$method); 
  flock($handle,LOCK_EX); 
  $fettle=fwrite($handle,$data); 
  if($method=="rb+"){ftruncate($handle,strlen($data));} 
  fclose($handle); 
  return $fettle; 


//test 
writetofile("test.txt","Some data!"); 
?> 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> Client does not support authentication protocol
好多朋友升级了mysql为4.10以上会发生此错误,php4.x下phpmyadmin之类的程序连接不上数据库,是因为mysql4.10以上改变了用户密码验证协议,php的连接模块也需要更换新的,php5默认就是这种新的连接模块...

不想更换可以这样:
CODE  
# SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd'); 
# FLUSH PRIVILEGES;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 如果在数字前面强制加0
格式化数字的位数,未满位的加前导0
CODE  
<?php 
$num = 12; 
$var = sprintf("%09d", $num); 
echo $var; 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 取得当前脚本的路径
请不要用 $_SERVER['PHP_SELF']取路径,$_SERVER['PHP_SELF']取出来的在某些情况下是错误的.也不要用$_SERVER['SERVER_NAME'],$_SERVER['SERVER_NAME']取得的主机名不包含端口号,而且有时候取得的是服务器名,非你的虚拟主机名.
脚本路径:
CODE  
<?php 
$url = 'http://'.dirname($_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']).'/'; 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

地址栏信息:
CODE  
<?php 
$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> url传递参数需要这样编码
与 HTML 实体相匹配的变量。像 &、© 和 £ 都将被浏览器解析,并使用实际实体替代所期待的变量名。解决办法是使用 & 代替 & 作为分隔符。使用 htmlentities(urlencode($data)) 对你的 URL 进行编码。 
CODE  
<?php 
echo "<a href='filename.php?par=" . htmlentities(urlencode($parameter)) . "'>"; 
?>
接受页面直接使用,不需要解码.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 数据存入MySQL需要注意
入库:
CODE  
<?php 
$str = addslashes($str); 
?>
出库:
CODE  
<?php 
$str = stripslashes($str); 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 返回MySQL数据库上一步 INSERT 操作产生的 ID 
mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。
CODE  
<?php 
$last_id = mysql_insert_id(); 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 如何解决表单出错返回从填的时候以前填写的东西全部消失
因为使用了session,可以用session_cache_limiter强制数据流从新生效.
CODE  
<?php 
// session start 
session_cache_limiter("private, must-revalidate"); 
session_start(); 
... 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 如何一劳永逸的解决Cannot send session cache limiter - headers already sent 这种错误
当用header()转向或者session_start()之前有输出,会有Cannot send session cache limiter - headers already sent的错误,可以用ob_start(),这样会在页面全部执行完毕才输出.
CODE  
<?php 
session_start(); 
ob_start(); 
... 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 如何表单填写错误时返回后以前填写的内容消失?
当使用session后会出现这种情况,我们可以使用session_cache_limiter();强制生效.
CODE  
<?php 
session_cache_limiter("private, must-revalidate"); 
session_start(); 
... 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 判断邮件地址是否合法!
判断邮件地址是否合法!
CODE  
<?php 
if(!ereg("^[-a-zA-Z0-9_\.]+\@([0-9A-Za-z][0-9A-Za-z-]+\.)+[A-Za-z]{2,3}$",$mail_from)){ 
  echo "<script>alert('E-mail Error!');location.replace('javascript:history.back(1)');</script>"; 
  exit; 

?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 数组存储到MySQL数据库
数组存储到mysql中要用serialize() 产生一个可存储的值
CODE  
<?php 
$array_in = serialize($data); 
... 
?>
 

出库时
CODE  
<?php 
... 
$array_out = unserialize($data); 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 取来源页面地址
如果是通过<script language="javascript" src="filename.php"></script>调用,取到的只是filename.php,而非来源页面.这时候可以用js来取.
CODE  
<?php 
echo $_SERVER['HTTP_REFERER']; 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 实现任意文件的下载
用header可以实现任意文件的下载,而不是打开,比如txt和图片等.自己找一下Content-type,根据相应的类型替换就可以了.
CODE  
<?php 
// We'll be outputting a gif 
header('Content-type: image/gif'); 

// It will be called pic.gif 
header('Content-Disposition: attachment; filename="pic.gif"'); 

// The gif source is in pic.gif 
readfile('pic.gif'); 
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
===> 为什么 $foo[bar] 错了?[摘自php手册]
应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。但是为什么 $foo[bar] 错了呢?你可能在老的脚本中见过如下语法: 
CODE  
<?php 
$foo[bar] = 'enemy'; 
echo $foo[bar]; 
// etc 
?>

这样是错的,但可以正常运行。那么为什么错了呢?原因是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而 PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。 
注: 这并不意味着总是给键名加上引号。用不着给键名为常量 或 变量 的加上引号,否则会使 PHP 不能解析它们。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
未完待续 

 

 
 
 1#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 1#楼 发表于2005-07-09 21:22:05  评分:× 

===> 一个汉字转拼音的函数
代码区那边看到的一个汉字转拼音的函数,觉得很好顺便转过来方便查阅  
CODE  
<? 
// 作者:qiushuiwuhen 来源:CSDN 
$d = array( 
array("a",-20319), 
array("ai",-20317), 
array("an",-20304), 
array("ang",-20295), 
array("ao",-20292), 
array("ba",-20283), 
array("bai",-20265), 
array("ban",-20257), 
array("bang",-20242), 
array("bao",-20230), 
array("bei",-20051), 
array("ben",-20036), 
array("beng",-20032), 
array("bi",-20026), 
array("bian",-20002), 
array("biao",-19990), 
array("bie",-19986), 
array("bin",-19982), 
array("bing",-19976), 
array("bo",-19805), 
array("bu",-19784), 
array("ca",-19775), 
array("cai",-19774), 
array("can",-19763), 
array("cang",-19756), 
array("cao",-19751), 
array("ce",-19746), 
array("ceng",-19741), 
array("cha",-19739), 
array("chai",-19728), 
array("chan",-19725), 
array("chang",-19715), 
array("chao",-19540), 
array("che",-19531), 
array("chen",-19525), 
array("cheng",-19515), 
array("chi",-19500), 
array("chong",-19484), 
array("chou",-19479), 
array("chu",-19467), 
array("chuai",-19289), 
array("chuan",-19288), 
array("chuang",-19281), 
array("chui",-19275), 
array("chun",-19270), 
array("chuo",-19263), 
array("ci",-19261), 
array("cong",-19249), 
array("cou",-19243), 
array("cu",-19242), 
array("cuan",-19238), 
array("cui",-19235), 
array("cun",-19227), 
array("cuo",-19224), 
array("da",-19218), 
array("dai",-19212), 
array("dan",-19038), 
array("dang",-19023), 
array("dao",-19018), 
array("de",-19006), 
array("deng",-19003), 
array("di",-18996), 
array("dian",-18977), 
array("diao",-18961), 
array("die",-18952), 
array("ding",-18783), 
array("diu",-18774), 
array("dong",-18773), 
array("dou",-18763), 
array("du",-18756), 
array("duan",-18741), 
array("dui",-18735), 
array("dun",-18731), 
array("duo",-18722), 
array("e",-18710), 
array("en",-18697), 
array("er",-18696), 
array("fa",-18526), 
array("fan",-18518), 
array("fang",-18501), 
array("fei",-18490), 
array("fen",-18478), 
array("feng",-18463), 
array("fo",-18448), 
array("fou",-18447), 
array("fu",-18446), 
array("ga",-18239), 
array("gai",-18237), 
array("gan",-18231), 
array("gang",-18220), 
array("gao",-18211), 
array("ge",-18201), 
array("gei",-18184), 
array("gen",-18183), 
array("geng",-18181), 
array("gong",-18012), 
array("gou",-17997), 
array("gu",-17988), 
array("gua",-17970), 
array("guai",-17964), 
array("guan",-17961), 
array("guang",-17950), 
array("gui",-17947), 
array("gun",-17931), 
array("guo",-17928), 
array("ha",-17922), 
array("hai",-17759), 
array("han",-17752), 
array("hang",-17733), 
array("hao",-17730), 
array("he",-17721), 
array("hei",-17703), 
array("hen",-17701), 
array("heng",-17697), 
array("hong",-17692), 
array("hou",-17683), 
array("hu",-17676), 
array("hua",-17496), 
array("huai",-17487), 
array("huan",-17482), 
array("huang",-17468), 
array("hui",-17454), 
array("hun",-17433), 
array("huo",-17427), 
array("ji",-17417), 
array("jia",-17202), 
array("jian",-17185), 
array("jiang",-16983), 
array("jiao",-16970), 
array("jie",-16942), 
array("jin",-16915), 
array("jing",-16733), 
array("jiong",-16708), 
array("jiu",-16706), 
array("ju",-16689), 
array("juan",-16664), 
array("jue",-16657), 
array("jun",-16647), 
array("ka",-16474), 
array("kai",-16470), 
array("kan",-16465), 
array("kang",-16459), 
array("kao",-16452), 
array("ke",-16448), 
array("ken",-16433), 
array("keng",-16429), 
array("kong",-16427), 
array("kou",-16423), 
array("ku",-16419), 
array("kua",-16412), 
array("kuai",-16407), 
array("kuan",-16403), 
array("kuang",-16401), 
array("kui",-16393), 
array("kun",-16220), 
array("kuo",-16216), 
array("la",-16212), 
array("lai",-16205), 
array("lan",-16202), 
array("lang",-16187), 
array("lao",-16180), 
array("le",-16171), 
array("lei",-16169), 
array("leng",-16158), 
array("li",-16155), 
array("lia",-15959), 
array("lian",-15958), 
array("liang",-15944), 
array("liao",-15933), 
array("lie",-15920), 
array("lin",-15915), 
array("ling",-15903), 
array("liu",-15889), 
array("long",-15878), 
array("lou",-15707), 
array("lu",-15701), 
array("lv",-15681), 
array("luan",-15667), 
array("lue",-15661), 
array("lun",-15659), 
array("luo",-15652), 
array("ma",-15640), 
array("mai",-15631), 
array("man",-15625), 
array("mang",-15454), 
array("mao",-15448), 
array("me",-15436), 
array("mei",-15435), 
array("men",-15419), 
array("meng",-15416), 
array("mi",-15408), 
array("mian",-15394), 
array("miao",-15385), 
array("mie",-15377), 
array("min",-15375), 
array("ming",-15369), 
array("miu",-15363), 
array("mo",-15362), 
array("mou",-15183), 
array("mu",-15180), 
array("na",-15165), 
array("nai",-15158), 
array("nan",-15153), 
array("nang",-15150), 
array("nao",-15149), 
array("ne",-15144), 
array("nei",-15143), 
array("nen",-15141), 
array("neng",-15140), 
array("ni",-15139), 
array("nian",-15128), 
array("niang",-15121), 
array("niao",-15119), 
array("nie",-15117), 
array("nin",-15110), 
array("ning",-15109), 
array("niu",-14941), 
array("nong",-14937), 
array("nu",-14933), 
array("nv",-14930), 
array("nuan",-14929), 
array("nue",-14928), 
array("nuo",-14926), 
array("o",-14922), 
array("ou",-14921), 
array("pa",-14914), 
array("pai",-14908), 
array("pan",-14902), 
array("pang",-14894), 
array("pao",-14889), 
array("pei",-14882), 
array("pen",-14873), 
array("peng",-14871), 
array("pi",-14857), 
array("pian",-14678), 
array("piao",-14674), 
array("pie",-14670), 
array("pin",-14668), 
array("ping",-14663), 
array("po",-14654), 
array("pu",-14645), 
array("qi",-14630), 
array("qia",-14594), 
array("qian",-14429), 
array("qiang",-14407), 
array("qiao",-14399), 
array("qie",-14384), 
array("qin",-14379), 
array("qing",-14368), 
array("qiong",-14355), 
array("qiu",-14353), 
array("qu",-14345), 
array("quan",-14170), 
array("que",-14159), 
array("qun",-14151), 
array("ran",-14149), 
array("rang",-14145), 
array("rao",-14140), 
array("re",-14137), 
array("ren",-14135), 
array("reng",-14125), 
array("ri",-14123), 
array("rong",-14122), 
array("rou",-14112), 
array("ru",-14109), 
array("ruan",-14099), 
array("rui",-14097), 
array("run",-14094), 
array("ruo",-14092), 
array("sa",-14090), 
array("sai",-14087), 
array("san",-14083), 
array("sang",-13917), 
array("sao",-13914), 
array("se",-13910), 
array("sen",-13907), 
array("seng",-13906), 
array("sha",-13905), 
array("shai",-13896), 
array("shan",-13894), 
array("shang",-13878), 
array("shao",-13870), 
array("she",-13859), 
array("shen",-13847), 
array("sheng",-13831), 
array("shi",-13658), 
array("shou",-13611), 
array("shu",-13601), 
array("shua",-13406), 
array("shuai",-13404), 
array("shuan",-13400), 
array("shuang",-13398), 
array("shui",-13395), 
array("shun",-13391), 
array("shuo",-13387), 
array("si",-13383), 
array("song",-13367), 
array("sou",-13359), 
array("su",-13356), 
array("suan",-13343), 
array("sui",-13340), 
array("sun",-13329), 
array("suo",-13326), 
array("ta",-13318), 
array("tai",-13147), 
array("tan",-13138), 
array("tang",-13120), 
array("tao",-13107), 
array("te",-13096), 
array("teng",-13095), 
array("ti",-13091), 
array("tian",-13076), 
array("tiao",-13068), 
array("tie",-13063), 
array("ting",-13060), 
array("tong",-12888), 
array("tou",-12875), 
array("tu",-12871), 
array("tuan",-12860), 
array("tui",-12858), 
array("tun",-12852), 
array("tuo",-12849), 
array("wa",-12838), 
array("wai",-12831), 
array("wan",-12829), 
array("wang",-12812), 
array("wei",-12802), 
array("wen",-12607), 
array("weng",-12597), 
array("wo",-12594), 
array("wu",-12585), 
array("xi",-12556), 
array("xia",-12359), 
array("xian",-12346), 
array("xiang",-12320), 
array("xiao",-12300), 
array("xie",-12120), 
array("xin",-12099), 
array("xing",-12089), 
array("xiong",-12074), 
array("xiu",-12067), 
array("xu",-12058), 
array("xuan",-12039), 
array("xue",-11867), 
array("xun",-11861), 
array("ya",-11847), 
array("yan",-11831), 
array("yang",-11798), 
array("yao",-11781), 
array("ye",-11604), 
array("yi",-11589), 
array("yin",-11536), 
array("ying",-11358), 
array("yo",-11340), 
array("yong",-11339), 
array("you",-11324), 
array("yu",-11303), 
array("yuan",-11097), 
array("yue",-11077), 
array("yun",-11067), 
array("za",-11055), 
array("zai",-11052), 
array("zan",-11045), 
array("zang",-11041), 
array("zao",-11038), 
array("ze",-11024), 
array("zei",-11020), 
array("zen",-11019), 
array("zeng",-11018), 
array("zha",-11014), 
array("zhai",-10838), 
array("zhan",-10832), 
array("zhang",-10815), 
array("zhao",-10800), 
array("zhe",-10790), 
array("zhen",-10780), 
array("zheng",-10764), 
array("zhi",-10587), 
array("zhong",-10544), 
array("zhou",-10533), 
array("zhu",-10519), 
array("zhua",-10331), 
array("zhuai",-10329), 
array("zhuan",-10328), 
array("zhuang",-10322), 
array("zhui",-10315), 
array("zhun",-10309), 
array("zhuo",-10307), 
array("zi",-10296), 
array("zong",-10281), 
array("zou",-10274), 
array("zu",-10270), 
array("zuan",-10262), 
array("zui",-10260), 
array("zun",-10256), 
array("zuo",-10254) 
); 
function g($num){ 
global $d; 
if($num>0&&$num<160){ 
 return chr($num); 

elseif($num<-20319||$num>-10247){ 
 return ""; 
}else{ 
 for($i=count($d)-1;$i>=0;$i--){if($d[$i][1]<=$num)break;} 
 return $d[$i][0]; 



function c($str){ 
$ret=""; 
for($i=0;$i<strlen($str);$i++){ 
 $p=ord(substr($str,$i,1)); 
 if($p>160){ 
  $q=ord(substr($str,++$i,1)); 
  $p=$p*256+$q-65536; 
 } 
 $ret.=g($p); 

return $ret; 


echo "拼音为:".c($_POST['hz']); 
?> 

<br> 

<form method="post" action=""> 
请在此处输入中文:<input name="hz"> 
<input type="submit" value="Submit"> 
</form>
 2#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 2#楼 发表于2005-07-09 21:23:09  评分:× 

===> 一个用MySQL保存图片和取出图片的例子  
方法并不可取,因为保存图片的数据量是很大的,对宝贵的数据库资源太浪费,可以将图片存储到目录中,用数据库存储路径和文件名.

Database table:
CODE  
CREATE TABLE `image_table` ( 
 `id` int(4) NOT NULL auto_increment, 
 `image` blob NOT NULL, 
 PRIMARY KEY  (`id`) 
) TYPE=MyISAM;
 


上传图片存储到MySQL:
CODE  
<?php 
// pic_database_upload.php By Bleakwind 
$Host = "localhost"; 
$User = "bleakwind"; 
$Password = "bleakwind"; 
$Database = "test"; 

mysql_connect($Host,$User,$Password) or die("Could not connect:" . mysql_error()); 
mysql_select_db($Database) or die("Could not select database!"); 

if(!empty($_FILES['image']['name'])){ 
  $image_data = addslashes(fread(fopen($_FILES['image']['tmp_name'], "rb"), filesize($_FILES['image']['tmp_name']))); 
  $sql = "INSERT INTO `image_table` (`image`) VALUES ('".$image_data."')"; 
  if(mysql_query($sql)){ echo "成功!"; }else{ echo "失败!"; } 

?> 

<form action="" method="post" name="form" enctype="multipart/form-data"> 
<input type="file" name="image" size="30"> 
<input type="submit" value="Upload"> 
</form>
 


从数据库中取出图片.
注意:
1.可能具体应用你还要分配一个字段来存储图片类型,这样下面的header( "content-type: image/gif");这句的gif用相应的类型替换掉.
2.如果想取出多个图片可以将下面的文件存成一个文件,在另外的文件遍历ID后调用此文件输出.
CODE  
<?php 
// pic_database_output.php By Bleakwind 
header( "content-type: image/gif"); 
$Host = "localhost"; 
$User = "bleakwind"; 
$Password = "bleakwind"; 
$Database = "test"; 
$id   = 1; 

mysql_connect($Host,$User,$Password) or die("Could not connect:" . mysql_error()); 
mysql_select_db($Database) or die("Could not select database!"); 

$sql    = "SELECT * FROM `image_table` WHERE `id`=" . $id; 
$result = mysql_query($sql) or die("Could not perform query!"); 
$row    = mysql_fetch_array($result); 
echo $row['image']; 
?>
 
 3#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 3#楼 发表于2005-07-09 21:23:38  评分:× 

警告 
在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上 'b'。 
例子: 
$filename = "c:\\files\\somepic.gif"; 
$handle = fopen ($filename, "rb"); 
$contents = fread ($handle, filesize ($filename)); 
fclose ($handle); 
 4#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 4#楼 发表于2005-07-09 21:24:10  评分:× 

===> 一个生成随机字符串的函数
可以控制字符串内容是什么,$len参数为生成的随即字符串长度,$array数组里面改成自己需要的内容就可以.可以使用汉字...
这只是一个方法,随即字串产生的方法多种多样,比如可以md5当前microtime(),然后截取你想要的长度...
CODE  
<?php 
// By Bleakwind 
function str_rand($len) 

  $str   = ""; 
  $array = array("a","b","c","d","e","f","g","h","i","j","k","l","m", 
     "n","o","p","q","r","s","t","u","v","w","x","y","z", 
     "0","1","2","3","4","5","6","7","8","9"); 
  $key   = array_rand($array,$len); 
  for($i=0;$i<$len;$i++){ 
  $str .= $array[$key[$i]]; 
  } 
  return $str; 


// Use it 
echo str_rand(6); 
?>
 


===> 如何截取文件扩展名
如上传文件的扩展名等,此扩展名可能是伪造的.想判断文件类型请用mime_content_type()...
CODE  
<?php 
// 第一种 
$extendname = array_pop(explode ( ".",$filename)); 

// 第二种 
$extendname = end(explode(".", $filename)); 

// 第三种 
$file_part  = pathinfo($filename); 
$extendname = $file_part["extension"]; 
?>
 
 5#楼  
 
  回复人:一起PHP
  注册时间:2004-02-27
  主题/回复:247/1521
  积分:4649
  等级:★★★★★☆(十一级)
  称号:论坛圣人

   
 5#楼 发表于2005-07-09 21:26:20  评分:× 

===> 一个缓冲输出显示的例子
1.有些Apache的模块,比如mod_gzip,可能自己进行输出缓存,这将导致flush()函数产生的结果不会立即被发送到客户端浏览器。
2.甚至浏览器也会在显示之前,缓存接收到的内容。例如 Netscape 浏览器会在接受到换
行或 html 标记的开头之前缓存内容,并且在接受到 </table> 标记之前,不会显示出整个表格。
CODE  
<?php 
set_time_limit(0); 
ob_start(); 

// 一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面, 
// 所以必须发送一些额外的空格来让这些浏览器显示页面内容。 
echo str_pad('Loading... ',4096)."<br>\n"; 

for ($i = 0; $i < 30; $i++) { 
  echo "="; 
  flush(); 
  ob_flush(); 
  sleep(1); 

ob_end_flush(); 
?> 
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
全文完
 6#楼  
 
  回复人:Butterfly
  注册时间:2005-10-14
  主题/回复:0/2
  积分:402
  等级:★★☆(五级)
  称号:略有小成

   
 6#楼 发表于2005-10-14 18:37:40  评分:5 

好东西,我来第一个顶,希望多出这些好东西啊!
  页数1/1首页 « 1 » 末页
  发表回复:您还没有登陆,无法发表回复。请先[登陆]

一起PHP技术联盟 主办:一起PHP 联系方式:站长QQ:4304410 QQ群:8423742 20159565 站长博客 E-mail: nqp@nqp.me 执行时间:0.042sec
SimsmaBBS 2008 (v6.0) Developed by 17php.com,Copyright(C)2003-2010 All rights reserved. 副本授权:一起PHP官方专用版