初学php

自定义安装PHP
1、下载apache
    apache_2.2.2-win32-x86-no_ssl.msi
    安装apache
2、下载php地址
    http://windows.php.net/downloads/releases/archives/php-5.3.5-Win32-VC6-x86.zip
    解压到相关目录
VC6:使用Apache+php
VC9:使用IIS+PHP
-------------------------------------------------------------------------------------------
apache+php整合
在apache的httpd.conf文件中添加如下配置

#LoadModule vhost_alias_module modules/mod_vhost_alias.so(找到此注释)

LoadModul php5_module ~php安装路径/php5apache2_2.dll  --加载php

PHPIniDir "~php模块安装路径"   
AddType application/x-httpd-php .php .phtml

1、更改php-5.3.5-Win32-VC6-x86目录下的php.ini-development文件更改为php.ini(启用开发模式)
2、更改完后在php.ini中指定扩展模块路径 extension_dir="~php安装路径/ext"
---------------------------------------------------------------------------------------------
测试:
1、在apache->htdocs目录下新建test.php
    <?php phpinfo() ?>
2、输入http://localhost/test.php
---------------------------------------------------------------------------------------------
整合mysql
1、下载、安装mysql
2、在php.ini文件开启支持mysql
    extension = php_bz2.dll    //启用bz库,用于数据压缩
    extension = php_gd2.dll    //启用图像库
    extension = php_mysql.dll  //启用mysql库
    extension = php_mysqli.dll  //启用mysql库
3、测试是否连接mysql
    <?php
    $test = mysql_connect("localhost","root","root");
    if($test){
        echo 'ok';
        }else{
        echo 'no ok';
        }
    ?>
-------------------------------------------------------------------------------------------------
整合phpmyadmin(这个组件用于管理mysql数据库,可以不装)
1、下载phpMyAdmin-3.4.5-all-languages.zip http://www.phpmyadmin.net
2、解压后,拷贝到apache的hadocs目录下,然后输入http://localhost/phpmyadmin/setup/index.php根据提示逐步安装
-------------------
手册下载
http://www.php.net/download-docs.php
------------------------------------------------------------------------------------------------------
1、PHP里的页面相互调用
    require(): require ("myfuns.php");将myfuns.pnp内容引入,通常适应与调用函数的使用
    require_once():require_once("myfuns.php");同一个文件只读取一次
    require和require_once的区别
        1、require在引入文件的时候一旦出错,就会报fatal erro,并退出程序,require_once()出错,也会退出程序
        2、前者遇到包含文件,后者会判断是否已经包含过了,如果已包含则不再包含文件,一可以节省资源,二可以避免重复定义的错误
        3、建议使用require_once();
    include():通常放在PHP程序的最前面,PHP在执行前,就会先读入include所引入的页面,如果出现错误,程序不会退出会继续执行
    include_once():同一个文件只读取一次
    include()和include_once()的区别
        1、include和include_once()都可以把某个php文件引入到本页面,include和include_once()在包括一个文件的时候出错,会给出警告,但是还是会继续执行。
        2、前者遇到包含文件,后者会判断是否已经包含过了,如果已包含则不再包含文件,一可以节省资源,二可以避免重复定义的错误
        3、建议使用include_once();
    require()和include的区别
        1、PHP程序在执行前,就会先读入require所指定引入的档案,使它变成PHP程序网页的一部分(执行之前)
        2、PHP程序网页在读到include的档案时,才将它读进去(执行到的时候)
2、面向对象
    1、class MyPc{//成员属性var $price;//function vod(){$this -> price;}}
       成员属性:var $price、public $price;
       成员方法:function vod(){}
       $pc1 = new MyPc();
           $pc1 -> price;//使用->访问对象内容

   $pc1 :: price; //使用 :: 访问对象属性

    2、对象中的$this关键字
       $this关键字是用来访问当前对象中的对象属性和对象方法的系统变量
    3、初始化对象  __construct()
       class MyPc{fucntion _construct(){}};也可写为class MyPc{function MyPc(){}}
    4、定义 header()头部输出格式
       header("Content-Disposition(定义输出的文件类型):filename=php100.xls(定义输出的文件名)");
------------------------------------------------------------------------------------------------------
PHP基本语法概述
1、php可以和html混编
    例如:<?php echo "<font color="red" size="7">Hello php</font>"; ?>
2、每个语句要以分号(;)    结束
3、变量的数据类型不是固定不变的
    $a = 90;  $a是整数
     $a = "abc"; $a是字符串
4、php是弱数据类型编程语言,其数据类型是由php的上下文决定(php引擎,即可理解为给它什么值,就是什么类型)
    变量的类型可以随时变化的
5、php语句要放在<?php    ?>
6、解决PHP的乱码:在<?php ?>标签名加入<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Php变量----为什么需要
1、一个程序就是一个世界,变量都是其程序的基本组成单位;
    在java中比变量高的是语句,
    比语句高的是函数(方法)
    比函数高的是类
    比类高的是模块
    比模块高的是项目
php基本数据类型分类
1、基本数据类型(标量类型)
    1.1、整形(Ingerger)
    1.2、小数(单精度 float,双精度 double)
    1.3、字符串类型(string)
    1.4、布尔型(boolean)
2、复合数据类型
    2.1、数组 array
    2.2、对象 object
3、特殊数据类型
    3.1、空值 null
    3.2、资源 resource(声音,图片等)
php中Integer的值是用常量:.PHP_INT_SIZE;
php最大值用常量:.PHP_INT_MAX;
------------------------------------------------------------------------------------------------------
浮点数的细节讨论
1、叫法(浮点数、单精度、双精度、实数)
2、浮点数的字长和平台相关,尽管通常最大值是 1.8e308 并具有 14 位十进制数字的精度(这个限制很重要)。
小数的精度如何起算:从左边开始第一个非0的数开始计算
案例说明:
$a=0.23456789022222988;// 0.234567890222223
$a=0.0023456789022222488;//0.0023456789022222
$a=0.0000000008907777777;//0.000000000890777777

字符串的细节讨论
1、定义一个字符串有两种方式
    $a = "adc";  //双引号
    $a = 'abc';  //单引号
区别:
    " "号的字符串,在输出的时候,会把$xx当做一个变量对待,而' '号的字符串,会当做普通的字符输出如下
    $c =56
      $a = "abc$c"
    $b = 'ab$c'
    
    echo $a."<br/>"
    echo $b;
数据类型的自动转换

$var1 = 90;
echo '$var1 类型是'.var_dump();
$var1 = 8.9
echo '$var1类型是'.var_dump();

表达式如下
$a =67;
$a = 56 + 90;
$a =调用有返回值的函数
-------------------------------------------------------------------------------------------------------
PHP三大流程控件
1、顺序控件
    程序默认执行的流程
2、分支控件
    1、单分支
        基本语法是
        if(表达式){语句;语句;}
    2、双分支
         基本语法是
        if(表达式){语句;语句;}else{语句;}
    3、多分支
        基本语法是
        if(表达式){语句;语句;}else if{语句;}else{语句;}
    4、多分支-switch
        switch(表达式){case 常量1:语句1;break;case 常量2:语句2;break;default:语句;break;}
        1\在switch仍然遵循非0为true的规则
        2\给一个数字字串,在匹配时,会自动转换后再去匹配
        3\switch支持小数、字串、boolean、整型、null
        4\switch的break语句,表示跳出整个switch语句块
        5\default在switch语句中的位置、可以随意、而不会影响到执行的结果
3、循环控件:循环的执行某一段代码
    1、for(初始值;条件判断;步长){语句块;}
    2、while(循环条件表达式){语句;//循环体} //while循环是先判断在执行语句
    3、do{语句;//循环体}while(循环条件表达式) //do while循环是先执行,再判断
---------
    A、break语句:用于跳出当前的循环控件语句(while,do....while,for,switch),特别说明,break语句后可以带一个数字,表示跳出第几层控制语句,默认为1
        break 1;表示跳出第一层循环
        break 2;表示跳出第二层循环
    B、continue语句:用于停止执行循环控制语句后的代码,而进行下一次的循环语句,continue语句后可以带数字,表示执行第几层的循环控件语句,默认为1
    C、goto语句:仅支持5.3及以上版本,跳转到指定的标签中,常见的用法是用来了跳出循环或者switch,可以代替多层的break;goto语句不能跨函数
        goto a;//a表示一个lable(标签)        
        a:
         echo "aa";
------------------------------------------------------------------------------------------------------
PHP的常量
常量使用define定义,也可使用const(仅支持5.3及以上版本)定义
定义:是一种特殊的变量,一旦被定义,就不能改变其值
<?php
    define("TAX_RATE","123");
    echo TAX_RATE;
    //仅支持5.3及以上版本
    const RATE = 23;
    echo RATE;

?>
常量和变更的区别
1、常量前面没有美元符号($)
2、常量用define()函数定义,而不能通过赋值语句;
3、常量可以不用理会变量的作用域,而在任何地方定义和访问
4、常量一旦被定义,就不能改变其值
5、常量的值是标量(string,integer,float,boolean)
-------------------------------------------------------------------------------------------------------
PHP的函数(方法)
函数:为完成某一功能的程序指令(语句)的集合,称为函数,使用函数可提高程序的复用性和可维护性。
1、自定义函数
    function 函数名(参数列表){//语句集合(目的是为了完成某项功能); return 返回值;//返回值可以没有(根据情况而定)}
    如果在其它页面使用函数,请参照PHP里的页面相互调用
    函数调用
        echo 函数名(参数列表)
    使用函数
    1、函数的参数列表可以是多个
    2、参数列表可以是多个,并且数据类型可以是任意的类型(array,integer,float,boolean,string,object)
    3、函数的命名和自定义变量一样,首字母只能使用,案例_,A-Z,a-z
    4、一个自定义函数中的变量是局部的,函数外不生效
    5、使用global全局变量的时候,可以使用在函数外的变量<?php $a= 10 function abc(){global $a; $a +=10;} echo abc() ?>;
    6、为了防止全局变量的混乱可以使用unset($var)删除一个变量<?php $a= 10 function abc($a){ unset($a); $a =30;} echo abc($a) ?>
    7、php的标量默认是传值而不是传地址,如果你希望传入的是地址,可以这样做:函数(&$b)
    $a = 10
    function abc (&$b)
    {
        $b = $b +100;
    }
    abc($a);echo $a;
2、系统函数
    查看帮助文档

 1、str_replace替换函数
  例:str_replace(被替换的值,替换的值,被替换的内容);
   /**
      * 将空格,回车、转义、替换
      */
   function htmltocode($content){
    $content = str_replace("\n","<br>",str_replace("","&nbsp",$content));
     return $content;
   }
 2、htmlspecialchars格式化html:主要功能是将HTML格式化,防止在输出html时被浏览器执行
  htmlspecialchars(所要格式化对象,定义单双引号,编码)
 3、md5加密函数
  md5(加密对象);
 4、cookie的使用和登陆
  setcookie("TEST","value",3600,"/dir",".domains.com",true);
  TEST:cookie名--value:cookie值---3600:保存时间----/dir:cookie保存路径----.domains.com:

起效域名----true:http发送
  注意:
   使用PHP cookie当场不能生效,需要刷新一次
 5、parse_url():解析URL函数,是将URL解析成有固定键值名称的数组的函数
  $ua = parase_url("http://username:password@php.com/path?arg=value#ahchor");
  结果
  Array
  (
   [scheme] => http
   [host] => php.com
   [user] => username
   [pass] => password
   [path] => /path
   [query] => arg =>value
   [fragment] => anchor
  )

--------------------------------------------------------------------------------------------------------------------------------

PHP数组的创建修改和使用
1、创建和修改数组/多维数组
 array(key=>value,key=>value,....)
 例:$arr1 = array(2,3,4); $arr2=array("id"=>2,"title"=>3);

 print_r($arr1):显示数组的详情
 $arr2[title]:通过Key获取数组的值
 
 多维数组
 $arr = array(array(3,6),array(2,4));
 echo $arr[0][1] //结果为6
 
 修改数组
 $arr[0][1]= 10;//更改值

2、数组与数组的函数
 统计数组条数函数:echo count($arr);
 判断数组函数:    is_array($arr); //if(is_array($arr)){echo "是数组"}
 另一种创建数组的函数:explode("key",value);//$a = "123-345-456";$arr = explode("-",$a);print_r

($arr);
 explode相当于拆分之后,得到的数组

3、使用foreach遍历数组
 遍历数组有很多种方法,可以使用for,while,foreach
 foreach($arr as $key => $value){}
 
 例: ($key,$value)php关键字
 $arr = array(21,3,34,5);
 foreach($arr as $key=> $value)
 {
  echo $value;
 }

------------------------------------------------------------------------------------------------------
mySql在PHP5中的应用
1、PHP与mysql建立连接
 php.ini加载mysql组件
  extension = php_mysql.dll
  extension_dir = ""
 php连接mysql函数
  mysql_connect(): //开启mysql连接
  mysql_select_db(): //打开一个数据库
  @ 和 or die :隐藏错误 和 条件显示
  例:
   $conn = @mysql_connect("主机","用户名","密码") or die ("连接错误");
   mysql_select_db("打开数据库",$conn);
2、如何去执行一个SQL语句
 @mysql_query(sql语句,连接标识符);
  例:
   $sql = "select *from test";
   $resutl = @mysql_query($sql,$conn) or die(mysql_error());
3、两种查询函数array/row区别
 mysql_fetch_row(result):用来查询结果的一行保存至数组,该数组下标从0开始,每一个数组元素对应一

个域,通过循环可以将查询结果全部获取。
 mysql_fetch_array(result):和mysql_fetch_row功能基本相同,只不过它除了可以用从0开始的偏移量索引

,还可以用域名(字段名)作索引。

 mysql_query("set names 'GBK'");解决中文乱码

 例:
  $sql = "select *from test";
  mysql_query("set names 'utf-8'");  //使用utf-8中文编码
  $resutl = @mysql_query($sql,$conn) or die(mysql_error());

  $row = mysql_fetch_row($result);
  print_r $row; 
  while($row){echo $row[name];}; 
 
4、其它常用Mysql函数介绍
 mysql_num_rows:用于计算查询结果中所得行的数目
  例:echo mysql_num_rows($sql);
 mysql_insert_id:传回最后一次使用insert指令的ID
 mysql_tablename:取得数据库名称
 mysql_error: 返回错误信息
 mysql_close: 关闭Mysql连接
-----------------------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值