文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP基础入门

PHP基础入门

时间:2007-05-28  来源:sailboy

      PHP学习笔记 PHP入门
一种服务器端的嵌入HTML的脚本语言。
php(PHP Hypertext Preprocessor)递归的缩写名称,超文本处理器。95年,第二版问世。97三版。
PHP3特征: 简单,速度快,跨平台,数据库支持,嵌入html,分析xml,文件存储,文   本处理,复杂变量,图象处理
PHP4特征: api扩充,布尔类型,com/dcom,兼容php3,配置,加密支持,多维数组,   java交互支持,oo特点,zip文件处理。
PHP5特性: 00,XML,异常处理,支持web服务
嵌入式脚本:
 <?php
  $currtime = time(); 时间戳
  $currtimestr= strftime("%H:%M:%S",$currtime); //格式化函数
  echo "当前时间是: ".$currtimestr
 ?>
安装PHP
 安装GD图形库
  tar -zxvf jpegsrc--xx
  tar -zxvf libpng-xx
  tar -zxvf gd-xx
 安装Zend加速引
 
PHP语法结构
数值和字符串
可运算+-*/ 十进制 10  八进制 012 十六进制 0xa
符点数
888.8   科学计数 8.888e2=8.888*10   小数表示法:888.8
字符串
PHP字符串与C的char *不同,它比较象perl的字符串,php的字符传是由一块内存的首指针和内存长度共同表示的;而不象c语言一样只提供内存区的首指针,遇到"\0"符号就认为是字符串结束
位置,不用担心Buffer Overflow问题.
 单引号串 "Hello World!" 'hi,"序号上一什么"'
 双引号串 "Hello World!" "环境变量PATH=$PATH"  会显示PATH的结果
 返引号   `必须是命令`
 转移字符\n
 符号   含义
 \"   双引号
 \\   返斜线
 \n   换行
 \t   跳位(TAB)  表示8个字符
 
常量和变量
 _FILE_  这个默认常量是PHP程序文件名。
 _LINE_  这个默认常量是PHP程序的行数,若用inclue则引用文件的的该量
 PHP_VERSION  PHP程序版本
 PHP_OS  指执行PHP解吸器的操作系统名称,
 TRUE  真
 FALSE  假
 E_ERROR 最近的错误处
 E_WARNING 最近的警告处
 E_PARSE 解析语法有潜在问题处
 PHP_VERSION,_LINE_,(程序行)
可以自己定义常量  
 define("COPYRIGHT","版权所有");
 echo COPYRIGHT;  注意没有$表示常量
 可以定义缓冲区大小: define('BUF_SIZE',1000)
定义变量
 integer,在32位操作系统中,
 double,为浮点型变量。1.7E-308到1.7E+308.
 string字符串变量     $newline="换行了\n\n"
 array为数组,可以是二维,三维   元素有string,integer,double,array.
 object 为类变量,如:
 class foo{
  function do_foo{
   echo "Dcoming foo.";
  }
 }
 $bar = new foo;
 $bar->do_foo();
布尔   1为true,0为flase
变量是区分大小写
局部变量,作用于函数
全局变量,作用于主程序
 $GLOBALS 数组与global声明
例子: class foo{
  function  do_foo(){
   echo "";
   echo "";
   echo "";
  }
 }
 $bar = new foo();  //分配一个新的对象型函数
 $bar -> do_foo();
系统定义好的变量
echo $PHP_SELF;
函数不区分大小写的 变量的变量   也可以引用函数指针
$a="Hello";
$$a="world"; //$Hello="world",
echo "$a,$Hello"; //Hello,world
echo "$a,${$a}"; //也是Hello,world
表单自动变量
隐式类型转换

静态变量
 static myfunc(){
  static $mystr;
  $mystr.="哈";                  //$mystr不会继续消失
  echo $mystr."<br>";
 }
 myfunc(); //哈
 myfunc();   //哈哈
 myfunc(); //哈哈哈 
例子 <?php
  function Tdbackcolor(){
   static $colorStr;
   if($colorStr=="00FFFFF"){
    $ColorStr="ffff00";
   }else{
    $ColorStr="00ffff";
   }
  reture($ColorStr)
  }
 echo "<table border=1\n>" 
 for($i=0;$i<10;$i++){
  $ColorStr=TdBackColor();
  echo "<tr><td bgcolor=".$ColorStr.">这是第".$i."行</td></tr>\n";
 }
 echo "</table>";
 ?>

PHP函数库
系统函数
php函数库和C语言一样
函数原型:
反回类型 函数名称(类型 参数1,参数2,...)
如:
Sin函数
功能:计算正铉
语法 float sin(float arg)'
返回值 浮点数
系统函数
常用的数学函数 
number abs(number) 去绝对值
float sin(float)
echo pow(2,3);  //2的三次方
duble pi()圆周率
void srand(int) 配置随机数种子
void rand([int min],[int max]) 取随机数值
例子:
<?php
//加入时间的因素,以执行的百万分之一秒当随机数种子
 srand((double)microtime()*1000000);  //声称随机数种子
 $randval = rand();
 echo $randval;
?>
字符串函数
 string strtolower(string str)  字符串全转为小写
 string strtoupper(string str)  字符串全转为大写
 string trim(string str)  截去字符串首尾的空格
 string substr(string string,int start,int[length]) 取子串
 //本函数将字符串string的第start位起的字符串取出length个字符串。若start为负数,则从字符串尾端算起。若可省略的参数length存在,但为负数,则表示取倒数第length个字符,下标从0开始
 sub("abcdef",1,3);   bcd   
 sub("abcdef",-2); ef
 sub("abcdef",-3,1); d
 sub("abcdef",1,-1); bcde
 
 string strlen(string str)  取得字符串长度
 int strpos(string 母串,string 待查字符,int [offset])  寻找字符串中某字符最先出现处
 int strcmp(string str1,string str2) 字符串比较
 string md5(string string);  //md5
文件系统函数
 int filesize(string filename); 获得文件大小
 int feof(int fp); 测试文件指针是否指到文件尾
 int fopen(string filename,string mode); 打开文件或者URL
 int fclose(int fp);关闭打开的文件
 string fread(int fp,int n);读取文件n个字节,一次读好多字符
 string fgets(int fp,int n);读得文件指针所指的行 ,适合欲读大的文件
 本函数取得文件指针的行,返回字符串长度为行的长度减一。
 例:
 $fd = fopen("/usr/local/src/tools/myfile.txt","r")l
 while ($buffer = fgets($fd,4096)){
  echo $buffer;
 }
 fclose($fd);
 int fwrite(int fp,string string,int[n]); 写入文件
 int fputs(int fp,string str,int[n]); 写入文件
 int mkdir(string pathname,int mode);     建立目录   mkdir("/tmp/mydir",0700);
 int rmdir(string dirname);               删除目录
 int rename(string oldname,string newname)改名

 例子:
  $fp = fopen("/home/admin/file.txt","r") // unix下的
  $fp = fopen("c:\\tmp\\info.txt","r");  //需要转意字符,windows下的格式
  $fp = fopen("http://www.php.net","r");
  $fp = fopen(ftp://user:[email protected]","w");
  filename = "/tmp/myfile.txt";
  $fd = fopen($filename,"r");
  $contents = fread($fp,filesize($filename));
  fclose($fd);
mkdir("/tmp/mydir",0700);      //创建文件夹 网络函数
int fsockopen(string hostname,int port,int[errno],string[errstr],int[timeout]);
打开网络的Socket联接
再使用本函数后会返回文件指针,供文件函数使用,包括fgets(),fgets(),fputs(),fclose()与feof().参数errno及errstr也是省略地,主要当作错误处理使用.
string gethostbyname(string hostname); DNS查询,返回IP网址
array gethostbynamel(string hostname); 返回机器名称的所有IP
如果一个机器有很都IP位置,适用本函数可以取得全部的IP地址,返回到数组中
<?php
 $fp = fsockopen("www.163.com",80,&$errno,&$srrstr,10);
 if(!$fp){
  echo "$errstr ($errno)<br>\n";
 }else{
  fputs($fp,"GET / HTTP/1.0\nHost: www.163.com\n\n");  //请求给我网页
  while(!feof($fp)){
   echo fgets($fp,128);
  }
  fclose($fp);
 }
?>

//php得到DNS函数
<?php
 $web = gethostbynamel("www.163.com");
 echo "网易 网站 IP Address:<ol type=1>";
 for($i=0;i<count($web);$i++){
  echo "<li>".$web[$i];
 }
?>
Mysql数据库函数
int mysql_connect(string[hostname] [:post],string[username],string[password]);
mysql连结服务器连结
int mysql_select_db(string database_name,int[link_identifier]);选择一个数据库
int mysql_query(string query,int [link_identifier]); 执行sql串
int mysql_close(int [link_identifier]); 关闭mysql服务器连结

用户函数
声明函数  function myfunc($arg_1,$arg_2,...,$arg_n)
{
 //执行一些步骤
 reture $retval;
}
在使用时候,在自定的函数名称前要加如function的保留字,表示这是定义用户自定函数 ,之后,
参数的值,通常使用传值方式输入,也可以使用地址的方式,传入参数的指针(地址)
方法就是在参数的前面加上&符号即可.
参数的值,通常使用传值<变量的值>方式输入,也可以使用地址的方式,传如参数的指针<地址>.方法就是在参数的前面加上&符号即可. 例子
<?php
 function swap($a,$b){
 $temp = $a;
 $a=$b;
 $b=$temp;
}
 $x = 100;
 $y = 1;
 swap($x,$y)
 echo "x = $x<p>y = $y";
?>
<?php
 function swap(&$a,&$b){        //x和y的数值进行了交换
 $temp = $a;
 $a=$b;
 $b=$temp;
}
 $x = 100;
 $y = 1;
 echo "x = $x<p>y = $y";
?> &于操作,
变量的作用域相当于全局变量
页面作用域,全局变量,加一个global
一个函数可以调用另一个函数
函数的递归 函数调用自己(注意死循环)
<?php
 $i=0;
 function myfunc()
 {
  global $i;  //页面作用域
  $i++;
  echo "我调用了自己!$I<br>\n";
  if($i<3){
   myfunc();
  }
 }
?>
<?php
 function myfunc1($arg_1,$arg_2,$arg_3="我是默认字符串")
 {
  echo $arg_1 + $arg_2;
  echo $arg_3 ."<p>\n"
 }
 myfunc1(3,4);
 myfunc1(6,6,"不用默认的值");
?>
  PHP图象处理
背景,x轴,y轴,网格,正旋
<?php
 header("Content-type: image/png");
 $im = imagereate()
?>
  用户函数
PHP发送邮件
mail函数linux系统必须安装有邮件服务器如sendmail,qmail或postfix
配置php的配置文件才能发送邮件
/usr/local/lib/php.ini
mail函数格式:  mail(收件人,主题,内容,发信人信息)   它返回 true或false
mail("[email protected]","主题","你好我的爱人民")
例子:
 <?php
 mail("[email protected]","主题",$message,
 "From:webmaster@{$_SERVER['SERVER_NAME']}\n\n").
 "Reply-To:webmaster@{$_SERVER['SERVER_NAME']}\r\n".
 "X-Mailer: PHP/".phpversion();
 ?>

PHP计数器
程序代码:
 <?php
  $fp = fopen("zzm.txt","r");   //以只读形式打开纪录以往访问人数的文件
  $str1 = fgets($fp,10);   //从文件中读9位数据
  
 ?>
米mian xinadf
PHP时钟
php的时间函数
date(),time(),strftime(),getdate()
时钟的设计
获得当前的时间
<?php
 $hour=date(h);  //获得小时
 $min=date(i);   //获得分钟
 $sec1=date(s);  //获得秒数
 $time=$hour.":".$min.":".$sec1;
 echo "现在的时间: ".time; //显示时钟
 
 $time1=$hour."时".$min."分".$sec1."秒";
 echo $time1;
 $date=date("y年m月d日H时i分s秒");
 print $date;
?>
静态图形时钟
<?php
 //静态图形时钟
 header("Content-type:image/gif");
 $hour=date(h);
 $min=date(i);
 $p=3.14159;
 $th=(30*$hour+$min/2)*((2*$p)/360);
 $tm=($min*6)*((2*$p)/360);
 //换算图形化时钟上时针和分针所在的位置
 $image = imagecreate(200,200);  //创建图象
 $colorbk = imagecolorallocate($image,200,200,200);  //设置背景色
 $color=imagecolorallocate($image,225,0,0);     //设置前景色
 $colorY=imagecolorallocate($image,225,0,255);     //设置字体颜色
 $colorGreen=imagecolorallocate($image,0,225,0);     //设置表盘边框颜色
 $colorBlue=imagecolorallocate($image,0,0,225);     //设置表盘颜色
 imagefill($image,0,0,$colorbk);       //用背景填充图象
 
 
?>

面向对象编程PHP5.01  全面支持面向对象
<?php
  print "hello,world";
?>
<?
 class helloWorld{
  function myPrint(){   //方法
   print "Hello,world";
  }
 }
 $myHelloWorld=new helloWorld();
 $myHelloWorld->myPrint();           // ->表示引用,C++表示一个指针,不能做加减
?>
一个类定义了对象的属性和方法.类的属性和方法是被调用的成员
PHP5有一个单重继承的,限制访问的,可以从载的对象模型
另外php支持对属性和方法的限制性访问,你可以声明成员为private,不允许外部类访问,最后
允许一个子类从它的父
class Something{
 //OOP类中,通常第一个字符为大写
 var $x;
 function setX($v){
  //方法开始为小写,然后使用大写字母来分割单词。例如getValueOfArea()
  $this->x=$v;
 }
 function getX(){
  return $this->x;
 }
}
 数据成员使用var声明来定义,在给数据成员赋值之前,他们是没有类型的,一个数据成员可以是一个整数,一个数组,一个相关数组(associative array)或者是一个对象
 方法在类中被定义成函数形式,载方法中访问类成员变量时,你因该使用$shis->name,否则对一个方法来说,它只能是局部变量
 
php文件上传   模版引型SMARATY
分离分工,杜绝重复
美工和程序的关系:
 1,首先作好美工也面,然后由程序员直接在美工页面的HTML文件中嵌入asp,php
 2,美工和程序同时进行,但这时因为没有页面框价,
PHP摸版即PHPlib的Template技术,
定义摸版文件  Mytemplate.html
 <html>
 ...
 <body>
 ...  
 ...  内部的活动内容则以变量的形式存在,并等待被替换.
 </body>
 </html>
<?php
 $mydate = date("Y年m月d日");  //处理好变量的值
 include("template.inc");                  //调入摸版程序模块
 $mytemp = new Template("/你的摸版文件所在目录/");
 //创建一个摸版实例mytemp,如果摸版就在当前目录,那么是用"."就可以
 $mytemp->set_file("MyFileHandle","MyTemplate.html");
 //设置MyFileHandle文件句柄向我们所要的摸版文件Mytemplate.html
 
?>
 
相关阅读 更多 +
排行榜 更多 +
匿名爱人游戏

匿名爱人游戏

冒险解谜 下载
魔方仆从冲刺

魔方仆从冲刺

休闲益智 下载
跑山越野摩托

跑山越野摩托

体育竞技 下载