以前都没有接触过 PHP, 最近一个项目不知怎么D大伙选用PHP来做了,我强力反对(其实不是恨PHP,只因大伙都不熟悉这个),但最后还是得随“大众”走。。。于是接下来就是做东西了,领导超幽默,PHP应该很简单,给你两天时间学会,呵呵...没办法,接下来的两天就是PHP学习,果真有点效果,呵呵...冒似的的我就用2天学"会了" 呵呵,照葫芦画瓢做东西了......更多PHP知识参看这里 http://www.w3school.com.cn/php/
说到PHP,不得不提到 MySQL 数据库,这个是目前用到很多的数据库,是免费的,很多公司使用,这个也是,第一次接触,呵呵...做东西真是催人学得快啊,也是照葫芦画瓢......更多MySQL 数据库知识参看这里 http://www.w3school.com.cn/php/php_mysql_intro.asp
下面是学习和做东西过程中的一些记录:
1, PHP 连接 mySQL 数据库
$dbServer='dbServer_IP';
$dbUser='dbUserName';
$dbPassword='myPassword';
$dbcon = mysql_connect($dbServer,$dbUser,$dbPassword);
if(!$dbcon){ //连接失败
die('Could not connect: '.mysql_error());
echo '<p>';
echo 'Link MySQL Database error.';
echo '</p>';
}else{ //连接成功
mysql_query("SET NAMES 'utf8'"); //如果连接成功,则设置数据读取的字符编码
echo '<p>Link MySQL Database OK.</p>';
}
2,PHP 关闭数据库的连接
mysql_close($dbcon);
3,选择数据库
数据在连接之后,就是选择需要的数据库,
mysql_select_db("voddb", $dbcon);
4,数据库的查询/更新/删除
mySQL的查询/更新/删除操作都可以用 mysql_query() 方法,只是 SQL 语句不同,
$xSQL="SELECT ...."; //$xSQL="UPDATE ...."; $xSQL="DELETE ....";
$result=mysql_query($xSQL);
if($result) //执行成功
echo 'Operate OK';
else
echo 'Operate wrong';
5,判断查询结果集是否存在记录
判断查询结果是否存在记录用mysql_num_rows() 函数
//$result=mysql_query("SELECT..."); 执行查询
if(mysql_num_rows($result))
echo '存在结果集合';
else
echo '结果集合为空';
6,遍历查询结果集
遍历结果集,首先判断结果集是否存在记录[用 mysql_num_rows 函数],然后用 while 循环遍历,遍历时用mysql_fetch_array 函数把结果集中的每条记录以数组形式取出,最后访问当前取出的记录的某个字段值通过字段名称取出对应的字段值;
$result = mysql_query($xsql);
if(mysql_num_rows($result)){
while($row = mysql_fetch_array($result)){
//......
//echo $row['字段名称']; //例子,取字段的值
//...other operate...
}
}
7,PHP释放结果集函数 mysql_free_result()
PHP 中对查询结果进行遍历等操作完成后就释放其所占用的资源,用到的函数为 mysql_free_result() 函数,如:
$xsql="SELECT * FROM ff_vod limit 0,100"
$resultRS=mysql_query($xsql);
//...operate...
mysql_free_result($resultRS); //释放结果集所占用的资源
8,PHP获取Client端传递过来的参数方法
$a = $_GET['参数名称']; //获取Client端 GET 方式传递过来的参数
$b = $_POST['参数名称']; //获取Client端 POST 方式传递过来的参数
$b = $_REQUEST['参数名称']; //获取Client端 POST或GET 方式传递过来的参数
9,PHP 引用文件
引用文件有两个方法,通过 include() 或 require() 函数,您可以在服务器执行 PHP 文件之前在该文件中插入另一个文件的内容;
include() 函数
include() 函数可获得指定文件中的所有文本,并把文本拷贝到使用 include 函数的文件中。
<?php
include("menus/mainMenu.php");
?>
require() 函数
require() 函数与 include() 相同,不同的是它对错误的处理方式。
<?php
require("menus/mainMenu.php");
?>
include() 和 require() 的区别:
主要是在错误的处理上不同,比如试图引用一个不存在的文件时,include() 函数会生成一个警告, 但是脚本会继续执行;而 require() 函数会生成一个致命错误(fatal error), 在错误发生后脚本会停止执行。
10, PHP 判断某个变量是否存在
用 isset(变量名) 函数,
例如: 判断客户端传递过来是否存在用户名变量;
<?php
if(isset($_REQUEST['loginUserName'])){
echo '存在登陆用户名: '.$_REQUEST['loginUserName'];
}else{
echo '不存在登陆用户名';
}
?>
这个常用于判断是否是提交的表单? 还是直接访问的?
11, PHP 注销定义的变量
用unset(变量名称) 函数
如: unset($variable); //清除变量
unset($_SESSION['loginUser']); //清除名称为 loginUser 的session变量
12, PHP中的转向
php 中的转向使用,header() 函数,其实该函数的功能是设置头信息,根据参数的不同可以进行多种头信息的设置;要注意的是在该函数之前不能有任何的输出,即不能有 echo 输出,或直接给出的静态HTML代码;利用 header() 进行转向到另一个页面如下:
header("Location : xpath/yPage.php?parameter=value");
13,缓存内容输出
缓存内容的输出用 flush() , 即使缓存未满同样也输出;
14, PHP中的替换
php中的普通的替换为str_replace( "搜索字符串" , “替换成目标值” , 源字符串);正则替换用 preg_replace("正则模式" , “替换成目标值” , 源字符串) 函数; 例如去掉 HTML 标签的代码如下:
$strHTML= preg_replace("/<([^<]*?)>/","",$strHTML); //正则替换
$strHTML = str_replace('@','*',$strHTML) //普通替换,把字符串中的 @ 替换成 *
15, PHP中过滤掉多连续的空格, 使用正则模式匹配进行替换
$aa = preg_replace("/[ ]{2,}/"," ",$sourceString); //把 $sourceString 中2个或以上的连续空格替换为一个空格
普通的字符替换函数 str_replace() :
$bb='abcaaa,ddd,efg';
str_replace('aaa','123',$bb); //结果把 $bb 变量中的 aaa 替换成 123, 返回:abc123,ddd,efg
16,PHP中过滤掉所有HTML标签
$bb = "abcd<b>12341234</b>8888888<p style='color:red'>这里是p元素内部的文本</p>";
$bb = preg_replace("/<([^<]*?)>/","",$bb); //把 $sourceString 中把所有的HTML标签去掉
echo $bb; //结果输出: "abcd123412348888888这里是p元素内部的文本"
17,关于代码停止 exit(), die()
die 是 exit 的别名,两者没有区别。函数用于退出当前脚本。如果用参数,则在退出当前脚本前先输出一个字符串或调用一个方法。
18, PHP分割字符的函数 explode()
$aa = '20120506.abcd.fileName.gif';
$valArray = explode(".",$aa); //用 "." 去分割变量 $aa,结果以数组的形式返回
$suffix = $valArray[count($valArray)-1]; //取出数组的最后一个元素,即 gif
$aa = '20120506.abcd.fileName.gif';
$valArray = explode(".",$aa); //用 "." 去分割变量 $aa,结果以数组的形式返回
echo '数组 valArray 的个数为: '.count($valArray).', 最大下标为: '.(count($valArray)-1); //数组下标以 0 为开始
20, PHP中判断某字符串中是否存在某子字符串函数 strpos()
$source = '1234a.bckk888';
$substr='kk';
if(strpos($source,$substr)>-1)
echo $source.' 存在 子字符串 '.$substr;
else
echo $source.' 不存在 子字符串 '.$substr;
$aa = 'abcde12345';
echo '变量 '.$aa.' 的长度为: '.strlength($aa);
22, PHP中截取字符串函数substr()
$aa = 'abcde12345';
$bb = substr($aa ,0 ,5); //返回 abcde
//语法: substr(string,start,length) //参数 start,length 如果为负数则从尾部起
23, PHP中清楚客户端缓存问题
header("Cache-Control:no-cache, must-revalidate"); //告诉客户端浏览器不使用缓存
header("Pragma:no-cache"); //参数(与以前的服务器兼容),即兼容HTTP1.0协议
还有
header("Expires: Mon, 26 Jul 1970 05:00:00 GMT"); //告诉浏览器此页面的过期时间
header("Last-Modified:".gmdate("D, d M Y H:i:s")."GMT");
//告诉浏览器此页面的最后更新日期(用格林威治时间表示)也就是当天,目的就是强迫浏览器获取最新资料
header("Content-type:application/file"); //输出MIME类型
header("Content-Length:227685"); //文件长度
header("Accept-Ranges:bytes"); //接受的范围单位
header("Content-Disposition:attachment; filename=$filename"); //缺省时文件保存对话框中的文件名称
header("location:http://www.baidu.com"); //转向把百度站点
更多head函数的用法望上搜索...
24,PHP中设置 session 变量方法:
//$loginName= $_REQUEST['loginName']; //获取登陆名
//...
$_SESSION['loginUser'] = $loginName; //设置 session 变量,从client端获取登陆名,进行相关验证操作后保存到 session 变量中
25,PHP判断变量是否为空函数 empty()
例如: 判断名为 loginUser 的session 变量是否为空:
if(empty($_SESSION['loginUser']))
echo '名为 loginUser'的 session 变量为 空;
else
echo '名为 loginUser'的 session 变量为 不空;
26, PHP中取得服务器相关的变量: $_SERVER['相关SERVER变量名称']
例如获取远程IP :
$cmuserIP = $_SERVER['REMOTE_ADDR'];
//或者 $cmuserIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
更多名称网上搜索...