论学习PHP的方法与技巧分析 摘要:php学习中要主要的特性以和学习php必须要了解的知识 初学者应该先掌握几段代代码。 一、引言 1、PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor )的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,PHP在服务器端执行,充分利用了服务器的性能;PHP执行引擎还会将用户经常访问的PHP程序驻留在内存中,其他用户再一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是PHP高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。 PHP的特性包括: 开放的源代码:所有的PHP源代码事实上都可以得到。 PHP是免费的。 php的便捷性 : php十分便捷,学习简单 基于服务器端:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS下。 嵌入HTML:因为PHP可以嵌入HTML语言,所以学习起来并不困难。 简单的语言:PHP坚持脚本语言为主,与Java和C++不同。 效率高:PHP消耗相当少的系统资源。 图像处理:用PHP动态创建图像 面向对像:在php4,php5 中,面向对象方面都有了很大的改进,现在php完全 可以用来开发大型商业程序。 PHP 相对于其他语言,编辑简单,实用性强,更适合初学者。 3、 学习php必须要了解的知识 (一) PHP简介 (二) PHP和ASP(ASP培训 )、Java(Java教程 Java培训 )等一样, 是一门常用于Web编程的语言,它能运行在Windows、linux(linux教程 linux培训 )等绝大多数操作系统环境中,常与开源免费的 Web服务Apache和数据库Mysql配合使用于Linux平台上(简称 LAMP),具有最高的性价比,号称“Web架构黄金组合”。在与其他同类编程语言的比较中,PHP具有开发速度快、运行效率高、安全性好、可扩展性强、开源自由等特点;而回顾PHP近10年来的发展过程、展望未来互联网行业的发展趋势,我们可以得出结论:PHP的发展势头不可阻挡,必将成为未来WEB开发领域的主流技 (三) PHP技术发展状况 (1)全球5000万互联网网站中,有60%以上使用着PHP技术; (2)2010年PHP从业人数将增加42%,远超JAVA的13%和.NET的24%; (3)PHP是全球五大最受欢迎的编程语言之一,并且是唯一入选的脚本语言; (4)国内80%以上的动态网站使用PHP开发 (5)AlexaTOP500中国网站排名,有394家使用了PHP技术,比例为78.8%。 (三)php程序员职位要求 (1)计算机相关专业,1年以上PHP、SQL网站开发经验,有大型网站开发经验者优先; (2)精通PHP程序开发,熟悉PHP网站框架,熟练Web技术,DIV、CSS、Javascript、XML、Ajax等; (3)熟练Dreamweaver、Flash、Photoshop等网页制作(网页设计培训 )软件; (4)能够熟练配置Apache、php、mysql环境,了解并熟悉CMS开源程序; (5)熟练掌握MySQL、SQL Server数据库,熟练使用SQL语言,对存储过程、触发器有较深的了解; (6)拥有网站SEO(SEO(搜索引擎优化)培训 SEO教程 )能力; (7)具备良好的代码编程习惯及较强的文档编写能力, 有很好的团队合作能力和责任心;思维严密,上进心强,能吃苦耐劳,良好的执行能力,对互联网充满热情。 (四)php程序员做什么干什么? (1)负责PHP网站开发及维护。 (2)完善网站功能模块的开发与维护。 (3)负责网站模板、网页设计及网页制作。 (4)对网站数据库维护、升级、开发,对网站进行SEO优化及推广。 (5)参与windows、Linux系统,Apache服务器,MySql数据库的架设,优化及其运维工作。 php程序员做什么干什么?看过上文的朋友心中应该有答案了。php程序员的工作$currentDate += (60 * 60 * 24)) //当前时间加上1天 { /* ** 打印时间名称 */ print("" . date("l", $currentDate) . "
"); } print("
"); 函数的简单调用: function printBold($inputText) //定义function printBold() { print("" . $inputText . ""); ////打印$inputText} print("这行没有加重~
"); //直接打印字符串 printBold("这行加重了~~~"); //调用function printBold()函数 print("
"); print("这行没有加重~
"); //直接打印字符串 有返回值的函数function makeBold($inputText) //定义function makeBold()函数{ $boldedText = ""; $boldedText .= $inputText; $boldedText .= ""; return($boldedText); //返回变量$boldedText } print("这行没有加重~~~
"); //直接打印字符串 print(makeBold("这行被加重了~~~") . "
");//调用function makeBold()函数 print("这行没有加重~~~
"); //直接打印字符串 有默认参数的函数 function printColored($Text, $Color="black") //定义function函数 { print("$Text"); //获取字符串的内容和颜色 } printColored("这是黑颜色的字~"); //调用function函数 print("
"); printColored("这是蓝颜色的字~", "blue"); //调用function函数 print("
"); 用的规算法判断是否是整数 function checkInteger($Number) { if($Number > 1) { /* 整数减1仍然是整数 */ return(checkInteger($Number-1)); } elseif($Number < 0) {/* 对于一个负数,*/ /* 可以分析它的绝对值 */return(checkInteger((-1)*$Number-1));//取绝对值,把负数按整数分析 , else {if(($Number > 0) AND ($Number < 1)) { return("当然不是"); } else {/* 0 和 1 是整数 */ /* 根据相关数学定义 */return("是的"); }} } print("0是整数吗," . checkInteger(0) . "
"); print("7是整数吗, " . checkInteger(7) . "
"); print("3.5呢," . checkInteger(3.5) . "
"); print("那么-5呢," . checkInteger(-5) . "
"); print("还有-9.2," . checkInteger(-9.2) . "
"); 初始化数组 $monthName = array(1=>"January", "February", "March",//初始化一个数组 "April", "May", "June", "July","August","September", "October", "November", "December"); “5月”是 $monthName[5] 。
");//打印数组中的第6 print(" 英语的 个元素 获取数组中的元素 $monthName = array( /*定义$monthName[1]到 $monthName[12]*/1=>"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December",/*定义 $monthName["Jan"]到 $monthName["Dec"]*/ "Jan"=>"January","Feb"=>"February ", "Mar"=>"March", "Apr"=>"April", "May"=>"May", "Jun"=>"June", "Jul"=>"July", "Aug"=>"August", "Sep"=>"September", "Oct"=>"October", "Nov"=>"November", "Dec"=>"December", /*定义$monthName["Jan"]到$monthName["Dec"]*/ "January"=>"January", "February"=>"February", "March"=>"March", "April"=>"April", "May"=>"May", "June"=>"June", "July"=>"July", "August"=>"August", "September"=>"September", "October"=>"October", "November"=>"November", "December"=>"December" ); /*打印相关的元素*/ print("Month 5 is " . $monthName[5]. "
"); print("Month Aug is " . $monthName["Aug"] . "
"); print("Month June is " . $monthName["June"] . "
"); 创建一个多维数组 $Cities = array( //二维数组array() "华北地区"=>array("北京市", "天津市","石家庄" ),"西北地区"=>array( "西安","拉萨" )); print("华北地区:".$Cities["华北地区"][0]); //打印$Cities["华北地区 "][0] PHP 4.0实现表格状打印 /* ** 数据表格化 */ print("
"); // 表格开始 for($Row=1; $Row <= 12; $Row ++) {{print("
"); // 开始行 // do each column for($Column=1; $Column <= 12; $Column ++)} print("");//开始列 print($Row * $Column);//表格元素乘积 print(" ");} print("
"); // 行结束 } print("
"); // 表格结束 查看系统的一些变量 print("你正在用文件的名字为: "); print(__FILE__); print("
"); print(""); print("你的操作系统为: "); print(PHP_OS); print(""); print("你的php的版本为: "); print(PHP_VERSION) 打开本地或者远程文件 print("通过http协议打开文件
"); http 协议打开文件 // 通过 if(!($myFile = fopen("d:web/web/php/test/data.txt", "r"))) { print("文件不能打开"); exit; }while(!feof($myFile)) //循环 {// 按行读取文件中的内容 $myLine = fgetss($myFile, 255); print("$myLine
"); }// 关闭文件的句柄 fclose($myFile); 打开文件的几种方式比较 // 打开文件同时打印文件的 每一个字符 if($myFile = fopen("data.txt", "r")) {while(!feof($myFile)) {$myCharacter = fgetc($myFile); print($myCharacter);} fclose($myFile); } "); // 打开文件同时打印文件的每一行 if($myFile = fopen("data.txt", "r")) { while(!feof($myFile)) { $myLine = fgets($myFile, 255); print($myLine); } fclose($myFile); } "); /* 打开文件同时打印文件的每一行, 同时去掉取回字符串中的 HTML 语言 */ if($myFile = fopen("data.txt", "r")) {while(!feof($myFile)) {$myLine = fgetss($myFile, 255); print($myLine);} fclose($myFile);} 访问文件常见属性 print("文件的所有者(UID 值):"); print(fileowner("data.txt").""); print("文件的大小:"); print(filesize("data.txt").""); print("文件的类型:"); print(filetype("data.txt").""); 调用文 $myFile = file( "data.txt"); for($index = 0; $index < count($myFile); $index++) print($myFile[$index].""); } 创建目录函数 if(mkdir("myDir1", 0777)) //创建目录的函数 { print("目录创建成功"); //目录建立成功} else{ print("目录建立失败!"); //目录建立失败} 浏览目录 // 使用表格浏览目录的结构print("
"); // 创建表格的头print("
"); print(" 文件名
"); print(" 文件的大小
"); print("
"); $myDirectory = opendir("."); // 建立操作目录的句柄 // 读出目录中的每一个子项 while($entryName = readdir($myDirectory)) {print(" "); print("$entryName "); print(" "); print(filesize($entryName)); print(" "); print("
");} closedir($myDirectory); // 关闭目录 print("
"); PHP相关信息 phpinfo(); 常用的数值判断函数 //判断数组 $colors = array("red", "blue", "green"); if(is_array($colors)) {print("colors is an array".""); }//双精度数判断 $Temperature = 15.23; if(is_double($Temperature)) {print("Temperature is a double".""); }//整数判断 $PageCount = 2234; if(is_integer($PageCount)) {print("$PageCount is an integer".""); }//对象判断 class widget { var $name;var $length; } $thing = new widget; if(is_object($thing)) { print("thing is an object"."");} //字符判断 $Greeting = "Hello"; if(is_string($Greeting)){ print("Greeting is a string"."");} 文件上传界面 if($UploadAction){$UploadAction=0; $TimeLimit=60; /*设置超时限制时间默认时间为 30s,设置为0时为不限时 */ set_time_limit($TimeLimit); If(($Upfile != "none")&& ($Upfile != "")) { $Filepath="d:webwebphp est"; //上载文件存放路径 $FileName=$Filepath.$Upfile_name; if($Upfile_size <1024) //上载文件大小 {$FileSize = (string)$Upfile_size . "字节";} elseif($Upfile_size <(1024 * 1024)) { $FileSize = number_format((double)($Upfile_size / 1024), 1) . " KB";} else { $FileSize = number_format((double)($Upfile_size/(1024*1024)),1)."MB"; } if(!file_exists($FileName)) { if(copy($Upfile,$FileName)) {unlink($Upfile); echo "
"; echo "文件 $Upfile_name 已上载成功~"; echo "
"; echo "文件位置:$FileName"; echo "
"; echo "文件大小:$FileSize"; echo "
";} else {echo "文件 $Upfile_name上载失败~"; } } else {echo "文件 $Upfile_name已经存在~"; } } else {echo "你没有选择任何文件上载~"; } set_time_limit(30); //恢复默认超时设置 } ACTION = "default.php" METHOD = "POST"> Compiled by eTextWizard V 1.99 of Guohua Soft. 三、 结束语 HP初学者应该要注意的一些问题归纳 【1】 页面之间无法传递变量 get,post,session在最新的php版本中自动全局 变量是关闭的,所以要从上一页面取得提交过来得变量要使用 $_GET[„foo?],$_POST[„foo?],$_SESSION[„foo?]来得到。当然也可以修 改自动全局变量为开(php.ini改为register_globals = On);考虑到兼容 性,还是强迫自己熟悉新的写法比较好。 【2】 Win32下apache2 用get方法传递中文参数会出错 test.php?a=你好 &b= 你也好传递参数是会导致一个当php.ini的display_errors = On并且error_reporting = E_ALL时,将显示所有的错误和提示,调试的时候最好打开以便纠错,如果你用以前php写法错误信息多半是关于未定义变量的。变量在赋值以前调用会有提 例如显示$foo,可以 示,解决办法是探测或者屏蔽 if(isset($foo)) echo $foo 或者echo @$foo 【4】 Win32下mail()不能发送电子邮件在linux下配置好的sendmail可以发送, 在win32下需要调用smtp服务器来发送电子邮件修改php.ini的 SMTP = ip //ip是不带验证功能的smtp服务器(网上很难找到) php发 送邮件的最好解决方法是用socket直接发送到对方email服务器而不 用转发服务器 。 【5】 初装的mysql如果没有设置密码,应该使用 update mysql.user set password="yourpassword" where user="root" 修改密码 【6】 header already sent 这个错误通常会在你使用HEADER的时候出现,他 可能是几种原因:1,你在使用HEADER前PRING或者ECHO了 2.你当前文件前面有空行3.你可能INCLUDE了一个文件,该文件尾部 有空行或者输出也会出现这种错误。~ 这是我根据好友学习php的 经验记录。
信息发布:广州名易软件有限公司 http://www.myidp.net
|