PHP入门半月总结

总结一下自己两周来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.youkuaiyun.com/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.图片下载

直接贴代码,非原创

<?php
download("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编码后汉字会出问题,所以要后面的编码转换)

<?php
class 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))




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值