海妖 发表于 2015-2-4 00:08:50

PHP网页编程之PHP/MySQL三日通-第三天(二)

对于PHP的语法结构,刚开始真的很不习惯,真搞不懂为什么每个变量之前都要加个“$”符号,每个语句写完之后都必须加上“分号”来表示此句已经结束,还有,PHP对字母的大小写是敏感的,写的时候一定要注意大小写的区别。   3、 处置惯例表达式 
  咱们略微讲讲用ereg()和eregi()两个函数处置惯例表达式。后面我已提过,这些函数有的很复杂,有的很庞杂,看您的实践需求而定。
  利用惯例表达式,您可以对一个字符串停止反省,搜刮个中的一些布局形式,剖断这些形式是不是知足您的划定。最广泛的用法包含反省电子邮件地址是不是无效(固然,即便这类举措剖断无效,也不克不及包管邮件地址真的存在)。
  咱们在这里不细究惯例表达式的庞杂细节了,仅仅给出几个实例。您可使用上一页顶用过的表格 - 把响应的法式代码复制过去,添加到上面的代码段中,就能够看到它是如何任务的。
  起首,咱们要确保表格中各栏只能输出字母。上面的惯例表达式在用户输出一个或多个小写字母时剖断为真,而输出数字是不答应的:
if (!ereg("", $first) || !ereg("", $last)) {
如今咱们更进一步,反省字符串的长度是不是是四到六位字符长。用[[:alpha:]]是反省字符是否是字母的复杂体例。大括号内的数字反省字符个数。还要申明的是,^ 和 $ 分离代表字符串的入手下手和停止。
if (!ereg("^[[:alpha:]]{4,6}$", $first) || !ereg("^[[:alpha:]]{4,6}$", $last)) {
最初,咱们来机关一个惯例表达式,来查验电子邮件地址的无效性。这类查验体例的后果已激发了相当多的会商。没有甚么器材是浑然一体的,不外我上面给出的这段法式仍是非常见效的。
  if (!ereg(^[-!#$%&\*+\\./0-9=?A-Z^_`a-z{|}~]+.

@.

[-!#$%&\*+\\/0-9=?A-Z^_`a-z{|}~]+\..

[-!#$%&\*+\\./0-9=?A-Z^_`a-z{|}~]+$, $last)) { 别花太多工夫来细究这段代码了,仍是先到下一页内容吧。
4、 简捷办法
  后面的惯例表达式怎样?很成心思,是吧?如果在每一个需求反省电子邮件地址的法式里都写上这么一段法式,那才真叫成心思呢?!想一想看吧,得写那末七零八落的一段法式,还得写上那末多遍!...不外,固然了,还有更简捷的办法。
  还记得后面? 学过的头文件吗?它能让咱们写一段法式,象是这个电子邮件地址的反省法式,然后把这段法式包括进多个法式外面去。如许,咱们要改写这段法式时,只须修改一处就好了,不必修正多个文件。
  然而,要做到这一点,咱们必需用到函数。
  咱们已用过良多次函数了。每次咱们查询数据库或反省字符串长度时,咱们都是用函数来做的。这些函数是PHP自带的。假如您是位热情的法式员,您可以用本人编写的函数来扩大PHP自己的功效。但对本教程而言,这局部内容是太甚深邃了一点。咱们要创立的函数不是那一种,而是写在PHP剧本法式外部的函数。
  函数就是一段法式代码,咱们可以把一个或多个值传给这段代码,然后这段代码会处置咱们传给它的数据并前往一个值。依据实践需求,函数可以很复杂,也能够非常庞杂。然而只需咱们传出来一个数,然后能失掉一个数,您管它外面有是庞杂仍是复杂呢!这就是函数的心爱的地方。
  PHP里的函数与C言语里的函数体现差不多。当咱们界说函数时,必需指明函数需求吸收甚么样的数据。一入手下手好象不太好了解为何它要吸收数据出来,不外如许可以避免产生一些奇异的成绩。函数之所以能做到这一点,是由于函数外面的变量都是公有变量,也就是说,它只在该函数外部存在。例如,您在法式中有一个变量叫$myname,假如您创立了一个函数,想让这个函数也利用谁人$myname变量(值也不异),那是不可的。您可以在函数外部创立一个变量,名字也叫$myname,这两个变量可以各平相处,而各自取分歧的值。不外我可不建议您这么做!您假如真的这么做了,等半年后您再来修正如许的法式时,您能够就会被弄懵懂了。
  那咱们如今就来创立一个函数,先来个复杂的。咱们要给它取个名字,指定它要吸收甚么的变量。在挪用这个函数之前,咱们还得界说这个函数。
 
  $#@60;html$#@62;

$#@60;body$#@62;

$#@60;?php

function addnum($first, $second) {

$newnum = $first + $second;

return $newnum;

}

echo addnum(4,5);

?$#@62;

$#@60;/body$#@62;

$#@60;/html$#@62;
这就好了!起首,咱们创立了第一个本人的函数。咱们界说了两个新变量,$first和$second,注重它们是如何被界说的。在挪用这个函数时,要给这两个变量按它们呈现的按次赋好值 - 4赋给$first,5赋给$second。然后咱们复杂地把这两个数加在一同,前往了局。“前往”在这里的意思是把了局送归去。在法式最初局部咱们把数字9显示出来。
  咱们再来创立一个函数,让它对咱们的数据库使用有点匡助。一个能妥帖处置毛病的函数怎样?尝尝上面的法式:
  $#@60;html$#@62;

$#@60;body$#@62;

$#@60;?php

function do_error($error) {


echo "噢,好象有点儿成绩...$#@60;br$#@62;";


echo "体系呈报的毛病是:$error.\n$#@60;br$#@62;";


echo "最好是临时封闭网站并告诉体系办理员。";

die;

}


if (!$db = @mysql_connect("localhost","user", "password")) {


$db_error = "没法毗连到MySQL数据库";

do_error($db_error);
}

?$#@62;

$#@60;/body$#@62;

$#@60;/html$#@62;   在运转法式之前,尝尝封闭MySQL数据库,或利用毛病的用户名或口令。您会看到友爱的、有效的毛病信息 。仔细的伴侣会注重到在mysql_connect()函数之前的谁人@符号。它会克制体系毛病信息,使得法式只能从do_error()函数那边失掉有关的毛病信息。您还会注重到,咱们可以把一个在别处界说的变量作为参数传给函数,而不是在挪用时直接赋一个值。
  还记得我过函数利用的是公有变量吧?这话说得不完整对。现实上,您可让函数会见到函数里面的变量。您能够要写一个函数,用它来查询数据库,然后把了局显示在多个网页中。您不想每次都把数据库毗连标识都传给函数。在这类情形下,您可以把毗连标识界说成一个全局的变量。例如:
  $#@60;html$#@62;

$#@60;body$#@62;

$#@60;?php

function db_query($sql) {

global $db;

$result = mysql_query($sql,$db);

return $result;

}

$sql = "SELECT * FROM mytable";

$result = db_query($sql);

?$#@62;

$#@60;/body$#@62;

$#@60;/html$#@62;   这是个很复杂的函数,但主要的是,您在挪用这个函数时,不用传递$db变量 - 您可以经由过程 global这个字使得函数可以会见到该变量。在这条语句中您可以界说多个全局变量,各个全局变量之间用逗号离隔。
  最初,您可使用可选参数,如许看起来您已是真实的专家了。这外面关头的一点是,在函数中界说参数时要给它指定一个缺省值。然后您在挪用这个函数时,假如不为该参数变量指定其他值,那末函数会主动把缺省值赋给这个变量。假如您指定了其他值,那末缺省值就不起感化了。
  不太分明?例如说,您在毗连数据库时,几近老是毗连到不异的办事器,而且利用不异的用户名和口令。不外有时分,您也需求毗连到其他的办事器。看看上面的法式:
  $#@60;html$#@62;

$#@60;body$#@62;

$#@60;?php



function db_connect($host = "localhost", $user="username", $pass="graeme") {

$db = mysql_connect($host, $username, $password);

return $db;

}


$old_db = db_connect();



$new_host = "site.com";

$new_db = db_connect($new_host);

?$#@62;


$#@60;/body$#@62;

$#@60;/html$#@62;
  很“酷”是否是?在界说函数时,函数外部用到的变量也界说好了。第一次挪用这个函数时,全体参数变量都是用的缺省值。第二次挪用时,办事器名变了,而用户名和口令没有变。真是太棒了!
  想一想您在甚么中央还能用到函数。您可以用函数来作数据校验,来完成经常使用的功效,等等。在对Web网页上显示的文字作处置时,我用到了良多函数。我可以一次完成对文字的反省、解析和修正,来到场换行符和HTML标志等。
  如今,剩下的就是我要给您的一些忠言了。
5、进阶技能
  谈起数据库开辟,咱们有良多器材要学。假如您还没有进修过如何停止数据库设计,和如何在分歧的平台上牢靠地运转数据库,那末请您从速去找本这方面的好书来读一读。这方面的才能会带给您没法估计的优点,从久远的目光看,它会为您节俭大批的工夫与精神。还有,仔细学学MySQL。这是一个庞杂而风趣的数据库,有良多不错的文档。学学数据库的表布局、数据类型,还有SQL。假如您真正把握了SQL,您可以完成相当多的实践任务。
  最初,还有PHP。您想要的一切几近都可以在PHP的网站上找到,包含周全的文档、邮件会商组的会商内容、法式代码库,等等。进修PHP的一个绝好的举措是研讨用户手册中给出的实例,并查阅网上的代码。网友们宣布的代码包含很多函数和类,您可以在本人的法式中直接利用,而不用本人从头来过。别的,假如您碰到成绩,邮件会商组是一个十分值得使用的资本。PHP的开辟人员本人也会列入邮件会商组,还有很多经历丰厚的高手们,他们都可以匡助您处理成绩。
  祝您编程顺遂,一切顺遂!
算是1个熟悉的过程,所以c语言的基础有就更好,没有也不怕。

乐观 发表于 2015-2-4 09:23:50

爱上php,他也会爱上你。

小女巫 发表于 2015-2-4 20:42:51

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

海妖 发表于 2015-2-6 15:44:47

如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,

因胸联盟 发表于 2015-2-16 15:05:23

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

金色的骷髅 发表于 2015-3-5 06:34:01

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

冷月葬花魂 发表于 2015-3-8 16:13:03

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

莫相离 发表于 2015-3-22 20:08:09

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

若天明 发表于 2015-3-27 08:09:11

实践是检验自己会不会的真理。

仓酷云 发表于 2015-3-31 10:09:22

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

变相怪杰 发表于 2015-4-3 05:02:54

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

admin 发表于 2015-4-12 06:20:31

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

小妖女 发表于 2015-6-11 23:26:31

环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。

精灵巫婆 发表于 2015-6-12 10:00:27

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

山那边是海 发表于 2015-7-4 20:57:38

php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)

只想知道 发表于 2015-7-6 01:13:16

我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:

飘灵儿 发表于 2015-7-7 21:01:06

多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。

老尸 发表于 2015-7-8 07:01:03

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

再见西城 发表于 2015-7-21 08:41:23

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

灵魂腐蚀 发表于 2015-7-23 00:35:27

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
页: [1]
查看完整版本: PHP网页编程之PHP/MySQL三日通-第三天(二)