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
- PHP入门半月总结
- 半月总结
- [原创]半月总结
- 新年半月总结
- 开学一个半月来的总结
- 项目半月进度总结(九月上)
- CopyU! v2 BETA测试半月总结
- tky项目第①个半月总结
- tky项目第②个半月总结
- tky项目第③个半月总结
- 实习1个半月,近期总结。
- PHP的入门总结
- PHP快速入门总结
- 学习了2个半月 算是入门了吗
- php入门过程及总结
- 对学习编程2个半月的总结!
- 干了一个半月前端的一些教训总结
- 半月闲半月忙
- android SharedPreferences 保存数据与读取数据
- Nginx启动错误:error while loading shared libraries: libpcre.so.1
- Model2
- 数据库SQL优化大总结之 百万级数据库优化方案
- Leetcode-学习安排
- PHP入门半月总结
- ZOJ 1232 Adventure of Super Mario
- 进一步成长,认识到生命中更为可贵的东西,从而增加人生的体验。(代发联系QQ:278873228)
- 【转载】知名企业薪酬模式比较及启示
- JavaScript匿名函数与委托
- 数据库范式——通俗易懂【转】
- Emmet 生成 HTML 的语法
- hdu1054 简单最小顶点覆盖
- Android学习随笔 -- draw9patch的使用