php 标签文章 - 李海鑫个人博客

(2008-10-9)ucenter中magic_quotes_gpc作用

编辑文章 没有评论 :

本文HTML永久地址doc

安装最新的ecshop,需要先安装ucenter,装完后,进入 UCenterAdministrator后台,在首页的服务器环境里有个

Magic_quote_gpc:Off

与其他的中文说明格格不入,不太理解,搜索了一下官方的论坛,发现大概是这个意思

getmagicquote_gpc() 魔术引用 它会把通过 GET,POST 或者 cookie 提交给 PHP 应用程序的变量都加上斜杠。

设置ON 安全点!

magicquotagpc()实际上就是把http输入的字符用addslashes处理一遍 官方的说明 - magicquotesgpc = Off [Performance] ; Input data is no longer escaped with slashes so that it can be sent into ; SQL databases without further manipulation. Instead, you should use the ; function addslashes() on each input element you

如果需要设置,进入系统修改/etc/php.ini文件,把

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = Off

修改为

; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On

然后重启apache

apachectl restart

(2008-7-11)echo注意事项

编辑文章 没有评论 :

本文HTML永久地址doc

今天在使用$SERVER['HTTPUSER_AGENT'] 调用游览器时,发现一些echo细节:

 echo $_SERVER['HTTP_USER_AGENT'];  可以调用

 echo “$_SERVER['HTTP_USER_AGENT']”;不能调用

 echo “$_SERVER[HTTP_USER_AGENT]”;去掉HTTP_USER_AGENT单引号有可以调用了。

(2008-7-9)echo, print, printf 和 sprintf 区别(PHP)

编辑文章 没有评论 :

本文HTML永久地址doc

echo 是命令,不能返回值。echo后面可以跟很多个参数,之间用分号隔开,如:

echo $myvar1;
echo 1,2,$myvar,"<b>bold</b>";

print

是函数,可以返回一个值,只能有一个参数。

printf

函数,返回输出字符个数,把文字格式化以后输出,如:

$name="hunte";
$age=25;
$a=printf("my name is %s, age %d", $name, $age); //输出The dog likes to bark
echo $a // 输出21

sprintf

函数,将输出指派到字符串,而不是直接指派到标准输出,其他跟printf相似,但不打印,而是返回格式化后的文字,其他的与printf一样。

$b=sprintf("The %2\$s likes to %1\$s","bark","dog");
echo $b;  //输出变量b的字符串内容

(2008-7-3)使用gd库函数在图片上写字

编辑文章 没有评论 :

学习gd函数库,安装书本上的案例写了一下在图片上写字,程序代码如下:

本文HTML永久地址doc

<?
header("Content-type:image/png");      //向浏览器输出文件头
$image="1.png";         //定义变量指向图像文件
$im=imagecreatefrompng("$image");
$yellow=ImageColorAllocate($im,255,255,0);    //定义黄色
$white=ImageColorAllocate($im, 255,255,255);    //定义白色
imagestring($im,4,5,5,"I like this game!",$yellow);   //用黄色在图片上写字
imagestring($im,5,160,150,"TIAN ZHI HEN",$white);   //用白色在图片上写字;
imagepng($im);          //输出PNG
imagedestroy($im);         //销毁图像
?>

改执行文件同目录下有"1.png"图像文件,php.ini配置文件中的allow_url_fopen=On也打开了,单独使用imagestring()函数生成字符串图片也可以的,现在就是使用imagecreatfrompng()导入现存的png文件提示出错,打开ie游览出现如下信息:

Warning: imagecreatefrompng() [function.imagecreatefrompng]: '1.png' is not a valid PNG file in D:\web\Apache\htdocs\studio\php2\10\10-7.php on line 4

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in D:\web\Apache\htdocs\studio\php2\10\10-7.php on line 5

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in D:\web\Apache\htdocs\studio\php2\10\10-7.php on line 6

Warning: imagestring(): supplied argument is not a valid Image resource in D:\web\Apache\htdocs\studio\php2\10\10-7.php on line 7

Warning: imagestring(): supplied argument is not a valid Image resource in D:\web\Apache\htdocs\studio\php2\10\10-7.php on line 8

Warning: imagepng(): supplied argument is not a valid Image resource in D:\web\Apache\htdocs\studio\php2\10\10-7.php on line 9

Warning: imagedestroy(): supplied argument is not a valid Image resource in D:\web\Apache\htdocs\studio\php2\10\10-7.php on line 10

火狐3游览下提示如下信息: 图像 “http://studio.15099.net/php2/10/10-7.php” 因其本身有错无法显示。

那位朋友知道解决办法,欢迎指教!

PS:已经解决了,原来我是把原来一个文件名为jpg格式的图片直接通过修改后缀改为png文件,破坏的文件的相关信息。

(2008-7-3)php浏览目录下的文件

编辑文章 没有评论 :
使用opendir()函数浏览目录下的文件。原代码:
本文HTML永久地址doc
<html>
<head>
<title>浏览目录中的文件</title>
</head>
<body>
<table border="1">
<tr>
<td>文件名</td>
<td>文件大小</td>
<td>文件类型</td>
<td>修改时间</td>
</tr>
<?
$dirname="data";            //定义变量
$dir_handle=opendir($dirname);         //用opendir打开目录
while($file=readdir($dir_handle))         //循环读取目录里的内容
{
 echo "<tr>";
 echo "<td>".$file."</td>";         //显示文件名
 echo "<td>".filesize($file)."</td>";        //显示文件大小
 echo "<td>".filetype($file)."</td>";        //显示文件类型
 echo "<td>".date("Y年n月t日",filemtime($file))."</td>";   //格式化显示文件修改时间
 echo "</tr>";
}
closedir($dir_handle)           //关闭文件操作句柄
?>
</table>
</body>
</html>
显示目录下的图片文件(jpg,gif)后缀都不显示大小,和文件类型
我在linux和windows平台上都做了测试,单独使用filesize()filetype()都可以显示的,那边朋友知道原因帮忙留言,谢谢!

(2008-7-2)php对数组自定义排序

编辑文章 没有评论 :

usort()函数排序实例

本文HTML永久地址doc

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}$a = array(3, 2, 5, 6, 1);usort($a, "cmp");$a as $key => $value) {
    echo "$key: $value\n";
}
?> 

上例将输出:

0: 1
1: 2
2: 3
3: 5
4: 6

(2008-7-2)一段字符串函数代码

编辑文章 没有评论 :

本文HTML永久地址doc

<html>
<head>
<title>切开字符串使用实例</title>
</head>
<body>
<?
$s="123|456|789";        //定义字符串
$s2="|";          //定义子字符串
echo "字符串".$s;
echo "<br>";
echo "使用strtok方法分割开:";
$temp=strtok($s,$s2);      //使用strtok截取字符串
while($temp)        //循环显示分割后的字符串
{
 echo $temp.",";
 $temp=strtok("|");
}
?>
</body>
</html>

此段中的strtok()函数返回的只是字符串而不是字符串数组,输出的结果有点不好理解。

(2008-6-22)开始学习php

编辑文章 没有评论 :

本文HTML永久地址doc

最近一直在看ecshop架构商城,修改合适自己的模板,很多地方不懂,周五特意去书店购买了一本清华大学出版社《php+mysql完全学习手册》,学习一下