PHP最新部分常见问题总结Word格式文档下载.docx
《PHP最新部分常见问题总结Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《PHP最新部分常见问题总结Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。
在运行时必须知道某个变量为何值。
我是这样做的,建立一文件debug.php,其内容如下:
<
?
PHP
Ob_Start();
Session_Start();
Echo
"
pre>
;
本页得到的_GET变量有:
Print_R($_GET);
本页得到的_POST变量有:
Print_R($_POST);
本页得到的_COOKIE变量有:
伊图教程网[]
Print_R($_COOKIE);
本页得到的_SESSION变量有:
Print_R($_SESSION);
/pre>
>
然后在php.ini中设置:
include_path
=
c:
/php"
,并将debug.php放在此文件夹,以后就可以在每个网页里包含此文件,查看得到的变量名和值.
3:
如何使用session
凡是与session有关的,之前必须调用函数session_start();
为session付值很简单,如:
php
Session_start();
$Name
这是一个Session例子"
Session_Register("
Name"
);
//注意,不要写成:
$Name"
$_SESSION["
//之后$_SESSION["
]为"
在php4.2之后,可以为session直接付值:
name"
]="
value"
取消session可以这样:
session_start();
session_unset();
session_destroy();
取消某个session变量在php4.2以上还有BUG.
注意:
1:
在调用Session_Start()之前不能有任何输出.例如下面是错误的.
==========================================
1行
2行
3行
//之前在第一行已经有输出
4行
.....
5行
提示1:
凡是出现"
........headers
already
sent.........."
就是Session_Start()之前向浏览器输出信息.
去掉输出就正常,(COOKIE也会出现这种错误,错误原因一样)
提示2:
如果你的Session_Start()放在循环语句里,并且很难确定之前哪里向浏览器输出信息,可以用下面这种方法:
1行
PHP
........这里是你的程序......
2:
这是什么错误
Warning:
session_start():
open(/tmp\sess_7d190aa36b4c5ec13a5c1649cc2da23f,
O_RDWR)
failed:
....
因为你没有指定session文件的存放路径.
解决方法:
(1)在c盘建立文件夹tmp
(2)打开php.ini,找到session.save_path,修改为session.save_path=
/tmp"
4:
为什么我向另一网页传送变量时,只得到前半部分,以空格开头的则全部丢失
$Var="
hello
php"
//修改为$Var="
试试得到什么结果
$post=
receive.php?
Name="
.$Var;
header("
location:
$post"
receive.php的内容:
Echo
$_GET["
正确的方法是:
.urlencode($Var);
在接收页面你不需要使用Urldecode(),变量会自动编码.
5:
如何截取指定长度汉字而不会出现以"
结尾,超出部分以"
..."
代替
一般来说,要截取的变量来自Mysql,首先要保证那个字段长度要足够长,一般为char(200),可以保持100个汉字,包括标点.
$str="
这个字符好长呀,^_^"
$Short_Str=showShort($str,4);
//截取前面4个汉字,结果为:
这个字符...
$Short_Str"
Function
csubstr($str,$start,$len)
{
$strlen=strlen($str);
$clen=0;
for($i=0;
$i<
$strlen;
$i++,$clen++)
if
($clen>
=$start+$len)
break;
if(ord(substr($str,$i,1))>
0xa0)
=$start)
$tmpstr.=substr($str,$i,2);
$i++;
}
else
$tmpstr.=substr($str,$i,1);
return
$tmpstr;
showShort($str,$len)
$tempstr
csubstr($str,0,$len);
($str<
$tempstr)
.=
//要以什么结尾,修改这里就可以.
$tempstr;
6:
规范你的SQL语句
在表格,字段前面加上"
`"
这样就不会因为误用关键字而出现错误,
当然我并不推荐你使用关键字.
例如
$Sql="
INSERT
INTO
`xltxlm`
(`author`,
`title`,
`id`,
`content`,
`date`)
VALUES
('
xltxlm'
'
use`'
1,
criterion
your
sql
string
2003-07-11
00:
00'
)"
怎么输入?
在TAB键上面.
7:
如何使Html/PHP格式的字符串不被解释,而是照原样显示
h1>
PHP<
/h1>
被解释过的:
.$str."
br>
经过处理的:
htmlentities(nl2br($str));
8:
怎么在函数里取得函数外的变量值
$a="
PHP"
foo();
foo()
global
$a;
//删除这里看看是什么结果
Echo
$a"
9:
我怎么知道系统默认支持什么函数
$arr
get_defined_functions();
php()
echo
这里显示系统所支持的所有函数,和自定以函数php\n"
print_r($arr);
在提问题前请先仔细查阅PHP手册,MYSQL手册以及PHPINFO里面的设置。
另外希望你读一下PHP编程标准。
(站长书库)
精彩30问,网罗常见PHP问题,希望大家细心查看。
我在一网页向另一网页POST数据name,为什么输出$name时却得不到任何值?
在PHP4.2以后的版本中register_global默认为off
若想取得从另一页面提交的变量:
方法一:
方法二:
方法三:
2:
在运行时必须知道某个变量为何值。
Echo"
然后在php.ini中设置:
include_path="
,并将debug.php放在此文件夹,
以后就可以在每个网页里包含此文件,查看得到的变量名和值.
3:
凡是与session有关的,之前必须调用函数session_start();
为session付值很简单,如
$Name="
Session_R