PHP入门半月总结

来源:互联网 发布:网络销售是什么 编辑:程序博客网 时间:2024/04/30 17:41

总结一下自己两周来PHP的学习内容。

1.PHP,html语言的使用

直接在这里学习

PHP->http://www.w3school.com.cn/php/

html->http://www.w3school.com.cn/html/

w3school还有挺多别的,比如JS,CSS...


2.PHP开发环境的搭建

在windows下选择的是easyPHP软件,本来一个软件就搞定,但由于它的Mysql老是连接有问题,自己安装了Mysql5.6,此后没再出过问题,数据库管理用了MySQL-Front软件,当然也可以用phpMyAdmin来管理。


3.PHP和数据库Mysql的增删查改。

1)数据库连接:

//函数参数:服务器,用户,密码$con = mysql_connect("localhost","root","pw133897");if (!$con){die('Could not connect: ' . mysql_error());}mysql_select_db("contract", $con);//选择连接的表
2)增删查改

调用函数来使用Mysql语句:mysql_query

//增(字段对应插入数据(此处为变量))mysql_query("INSERT INTO test (Id, 姓名, 手机) VALUES ('$Id' , '$name', '$number')");
//删:删除Id为$deId的所有数据mysql_query("delete from test where id='$deId'");
//查$result = mysql_query("SELECT * FROM test where Id=$Id");$row = mysql_fetch_array($result);$name=$row['姓名'];$num=$row['手机'];
//改$res1 = mysql_query("update contract.test set 姓名='$name' where Id='$Id'");
注意:
/* mysql_query函数执行的结果就是资源类型的。resource mysql_query ( string query [, resource link_identifier] )mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。从结果集中取得数据就得用到 mysql_fetch_array 等函数 */


4.关于跳转页面

1)

<!--这是一个“删除”超链接,并把变量的值传送过去,用$_GET["id"]可获取--><a href='contract.php?id=".$row['Id']."'>删除</a> 

2)

//表单跳转,可以跳转到action指定页面<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">    学号:<input type="text" name="Id">   姓名:<input type="text" name="name">   手机:<input type="text" name="number">   <input type="submit" name="submit" value="添加"> </form>

3)

//自动跳转,0是指等待事间,可以修改,单位秒<meta http-equiv='refresh' content='0;URL=contract.php'>

4)
//这是一个按钮跳转的简单例程//deletebutton.php<SCRIPT Language = "JavaScript">      function func()      {          if(confirm("确认删除?"))          {              this.location = "delete.php?action=ok";          }          else          {              this.location = "ok.php?action=cancel";          }         }  </SCRIPT>  <html>      <head>      </head>      <body>  <input type=button name=btn1  value="删除" onclick=javascript:func()>     </body>  </html>  //ok.php<?php  if($_GET["action"]=="ok")  {      echo "I'm OK!";  }  else  {      echo "I'm not OK!";  }  ?>  

5.PHP页面间参数传递的四种方式

(参考:http://blog.csdn.net/chentingpc/article/details/7075134)

1)使用客户端浏览器的cookie,相当一个临时文件,浏览器的一些记录数据就暂时存放在这里

<span style="font-size:14px;">//page1.php:创建一个coolie<?php        setcookie('mydata','$data');?></span>

//在page02页面接收cookie。<?php     $getdata = $_COOKIE['mydata'];     echo $getdata;?>



2)使用服务器端的session:与cookie的不同在于它是服务器端的临时储藏室。session常被称作会话。

//在page1.php中设置一个session。//要想使用session,必须启动session。session_start();就是启动session的方法。一般要写在最前面。<?php session_start();$_SESSION["temp"]=array('123','456','789');?>
在page02页面接受session。<?php      session_start();     for($i=0;$i<3;$i++)     {             echo $_SESSION['temp'][$i].'<br />';     }?>
<pre name="code" class="php">注意:
首先启动会话。启动后我们在page01定义的变量已经可以使用了,不需要其他任何获取的操作,这里不同于cookie。下面我们使用for循环将其内容输出。1.[不要以为$_SESSION['temp'][$i]是一个二维数组,它是个一维数组,数组的名称是$_SESSION["temp"],虽然这个名称比较繁琐,数组的下标是'temp']2.[我们在写$_SESSION["temp"]时,temp加双引号或者单引号都是等价的。]3.[这里我们定义会话变量时定义的是数组,也可以定义普通变量,就像cookie里面讲到的]


3)使用表单来传递。

//注意:method可以是get,使用$_GET获取数据
//page01.php<form action="page02.php" method="post">     <input type="text" name="Myname" />     <input type="submit" name="submit" value="提交" /></form>//表单内的属性action直接指定此表单内容传递到哪个页面。method指明了传递的方式。post代表使用消息传递,就像我们发短信一样。
//page02.php<?php      $name= $_POST['myname'];     echo $name;?>


4)使用超链接传递参数。

<pre name="code" class="php"><span style="font-size:14px;">//page01.php<?php $var = 'I love you !';?><a href="<?php echo "page02.php?new=".$var ?>">get</a>//定义一个变量$var。超链接a的href属性里写明要跳转到page02页面。后面加一个问号,一个自己定义的变量new[此名称在page02页面要使用],new的值就是我们想传递的$var。</span>

<span style="font-size:14px;">//page02.php<?php     echo   $_GET['new'];?></span>

6. 图片上传

直接贴代码,非原创

<?php if(empty($_GET[submit])) { ?> <form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']?>?submit=1" method="post"> Upload small image: <input name="filename" type="file"> <input type="submit" value="Upload"> </form> <?php }else{ $path="uploadfile/"; //上传路径 if(!file_exists($path)) { //检查是否有该文件夹,如果没有就创建,并给予最高权限 mkdir("$path", 0700); }//END IF //允许上传的文件格式 $tp = array("image/gif","image/pjpeg","image/jpeg","image/png"); //检查上传文件是否在允许上传的类型 if(!in_array($_FILES["filename"]["type"],$tp)) { echo "File Type is incorrect"; exit; }//END IF if($_FILES["filename"]["name"]) { $file1=$_FILES["filename"]["name"]; //$file2 = $path.time().$file1; //文件名称 取原文件名$file2 = $path.$file1; $flag=1; }//END IF if($flag) $result=move_uploaded_file($_FILES["filename"]["tmp_name"],$file2); //特别注意这里传递给move_uploaded_file的第一个参数为上传到服务器上的临时文件 if($result) { //echo "上传成功!".$file2; echo "<script language='javascript'>"; echo "alert(\"Upload Success!\");";echo "</script>"; ?><form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF']?>?submit=1" method="post"> Upload small image: <input name="filename" type="file"> <input type="submit" value="Upload"> </form> <?php//显示路径下图片名称列表$dirr = 'uploadfile/'; $dir = opendir($dirr); echo '<h1>success!</h1><br>'; echo 'File size:' . $_FILES['file']['size'] . 'byte' . '<Br>'; echo 'File Path:' . $dirr; echo '<hr with="100%" />' . '<p>'; echo $dirr . '--Listing:<ul>'; while($file = readdir($dir)){ echo "<li>$file</li>";     } echo '</ul>'; closedir($dir); }//END IF } ?>

7.图片下载

直接贴代码,非原创

<?phpdownload("dianzi.jpg","happy");function download($file_url,$new_name=''){        $file_url=iconv('utf-8','gb2312',$file_url);                 //将编码转为支持中英文的gb2312编码        if(!isset($file_url)||trim($file_url)==''){            return '500';        }        if(!file_exists($file_url)){ //检查文件是否存在            return '404';        }        $file_name=basename($file_url);        $file_type=explode('.',$file_url);        $file_type=$file_type[count($file_type)-1];                $file_name=trim($new_name=='')?$file_name:urlencode($new_name).'.'.$file_type;        //输入文件标签        header("Content-type: application/octet-stream");        header("Accept-Ranges: bytes");        header("Accept-Length: ".filesize($file_url));        header("Content-Disposition: attachment; filename=".$file_name);        $file_type=fopen($file_url,'r'); //打开文件        //输出文件内容        $file_size=filesize($file_url);//获取文件大小         $buffer=1024;   //定义1KB的缓存空间                 $file_count=0;  //计数器,计算发送了多少数据                 while(!feof($file_type) && ($file_size>$file_count)){                  //如果文件还没读到结尾,且还有数据没有发送                  $senddata=fread($file_type,$buffer);                 //读取文件内容到缓存区                 $file_count+=$senddata;                  echo $senddata;                  }        //echo fread($file_type,filesize($file_url));        fclose($file_type);}?>
注意:代码前面不能有“echo出任何东西”,否则下载的图片编码前面会有一段你echo的代码,导致图片无法打开。

8.PHP中Json的使用

使用两个函数

编码:json_encode(下面贴自己的一个例子,需要注意的是json编码后汉字会出问题,所以要后面的编码转换)

<?phpclass Datalist {public  $Id ;public  $name ;public  $phone ;}class data{public $Mydata;}$con = mysql_connect("localhost","root","pw133897");if (!$con){die('Could not connect: ' . mysql_error());}mysql_select_db("contract", $con);$result = mysql_query("SELECT * FROM test");$num=0;while ($row= mysql_fetch_array($result, MYSQL_ASSOC)){$MyId[$num]= $row['Id'];$num++;}echo "<table border='1' cellpadding='10'><tr><th>学号</th><th>姓名</th><th>手机</th></tr>";arsort($MyId);echo "倒序后的列表:<br>";foreach($MyId as $x=>$x_value){$datalist = new Datalist();$result = mysql_query("SELECT * FROM test where Id=$x_value");$row= mysql_fetch_array($result, MYSQL_ASSOC);echo "<tr>";echo "<td width='250'>" . $x_value . "</td>";echo "<td width='250'>" . $row['姓名'] . "</td>";echo "<td width='250'>" . $row['手机'] . "</td>"; echo "</tr>";$datalist->Id = $x_value;$datalist->name = $row['姓名'];$datalist->phone = $row['手机'];$data[]=$datalist;}echo "</table>";$Mylist=new data();$Mylist->Mydata=$data;$json = json_encode($Mylist);//把数据转换为JSON数据.echo "<br>json编码输出:<br>";//将json输出的unicode编码(windows下为UCS-2BE)转为utf-8编码$str=preg_replace("#\\\u([0-9a-f]{4})#ie", "iconv('UCS-2BE', 'UTF-8', pack('H4', '\\1'))", $json);echo $str;?>
解码:json_decode

<?php   $json = '{"a":"php","b":"mysql","c":3}';  $json_Class=json_decode($json);   $json_Array=json_decode($json, true);   print_r($json_Class);   print_r($json_Array);   ?>//注意,用echo是无法直接打印出来的,如果用echo,要这样用 echo var_dump(json_decode($json,true))




0 0
原创粉丝点击