仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1307|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网页编程之PHP使用经典技能二则

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
#
发表于 2015-2-4 00:23:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
虽说不上很好,但至少一般的数据操作,再在原有的SQL语言的基础上,用得还是可以的。技能   (Coolman)

因为PHP具有疾速、牢靠、跨平台使用、源代码开放等特色,使得PHP成为最受接待的办事器端Script言语之一。我依据本人在任务中体味到的,向人人引见PHP利用的心得,但愿对人人有所匡助。

使用PHP的Include files保护你的网站
不论你所开辟的网站的范围是大是小,你都应当要熟悉到反复利用法式代码的主要性,不管你反复利用的是 PHP 法式或是 HTML 原始码。举个例子来讲,网站页尾的版权宣布最少每一年都得修正一次,假如你的网站有很多个页面,该怎样办呢?下手一个一个修正这些页面一定是一件头痛的工作。经由过程 PHP 咱们可以用几个分歧的体例来反复利用法式代码。要利用哪些函数端视你要反复利用的是如何的内容而定。

这些次要的函数包含:

* include() 与 include_once()

* require() 与 require_once()

1.include() 函数会将指定的档案读入而且履行外面的法式。
例如:include('/home/me/myfile');

被导入的档案中的法式代码城市被履行,并且这些法式在履行的时分会具有和源文件中呼唤到 include() 函数的地位不异的变量局限(variable scope)。你可以导入统一个办事器中的静态档案,乃至可以经由过程兼并利用 include() 与 fopen() 函数来导入其它办事器下面的档案。

2.include_once()函数的感化和 include() 是几近不异的
独一的不同在于 include_once() 函数会先反省要导入的档案是否是已在该法式中的其它中央被导入过了,假如有的话就不会再次反复导入该档案(这项功效有时分是很主要的,例如说要导入的档案外面宣布了一些你自行界说好的函数,那末假如在统一个法式反复导入这个档案,在第二次导入的时分便会产生毛病讯息,由于 PHP 不答应不异称号的函数被反复宣布第二次)。

3.require()函数会将方针档案的内容读入,而且把本人自己代换成这些读入的内容。
这个读入而且代换的举措是在 PHP 引擎编译你的法式代码的时分产生的,而不是产生在 PHP 引擎入手下手履行编译好的法式代码的时分(PHP 3.0 引擎的任务体例是编译一行履行一行,然而到了 PHP 4.0 就有所改动了,PHP 4.0 是先把全部法式代码全体编译完成后,再将这些编译好的法式代码一次履行终了,在编译的过程当中不会履行任何法式代码)。require() 凡是来导入静态的内容,而 include() 则合适用来导入静态的法式代码。

4.好像 include_once()函数,require_once() 函数会先反省方针档案的内容是否是在之前就已导入过了,假如是的话,便不会再次反复导入一样的内容。
我团体习气利用 require() 函数来导入版权宣布(copyrights),静态文字或其它自己不含有变量,或自己需求倚赖其它履行过的法式才干准确履行的法式代码。例如:

<HTML>
<HEAD><TITLE>网页题目</TITLE></HEAD>
<BODY>
[一堆内容]
<?
// 导入版权宣布文字
require('/home/me/mycopyright');
?>
</BODY></HTML>
另外一方面,我凡是在法式的开首利用 include() 函数来导入一些函式库或相似的法式代码:

<?
// 导入我的函式库
include('/home/me/myfunctions');
// 使用之前导入的函式库外面界说好的 PHP 函数履行一些功效?>
<HTML>
<HEAD><TITLE>网页题目</TITLE></HEAD>
<BODY>
[一堆内容]
</BODY>
</HTML>
接上去你能够会问这第一个挺合适逻辑的成绩:「这些被导入的档案要放在哪儿呢?」冗长的谜底是:「放在办事器档案体系里的任何中央都行。」但是,要寄望的是假如被导入的档案除纯真的法式代码片断之外还包括了一些敏感材料,例如保持数据库体系要用到的帐号和暗码,那末建议你不要把这些档案放在 Web 办事器的文件根目次之下,由于那样的话别人即可以很轻易地盗取到这些材料了。

你可以将这些被包括的档案放在体系的任何一个目次外面,独一的前提是 PHP 自己用来履行的成分(www,nobody 或其它成分)必需要有足够的权限可以读取这些档案就能够了。这些档案的扩大名也能够恣意取,乃至没有附档名也无所谓。

善用include()和 require()来将网站外面常常需求变化的同享内容做公道的朋分,在更新网站内容的时分将会轻易停止很多。

使用PHP来保护档案体系
PHP 供应了良多与档案体系相干的函数,让咱们不但可以开启档案,还可以显示目次的内容,搬移档案的地位和其它更多功效。有的伴侣乃至写了可以经由过程阅读器来办理档案内容的 PHP 法式。

在入手下手引见 PHP 的档案体系相干功效之前,咱们要先理清一件工作:在 Windows操作体系外面,档案途径可使用斜线(/)或反斜线(\)来暗示,然而在其它操作体系外面咱们只会利用到斜线。为了坚持一致性,上面的例子外面的档案途径都是利用斜线。

上面的例子法式我将教人人根基的目次内容显示功效,每一个步调都有批注,请直接浏览。

<? /* $dir_name 这个变量的值是你想要读取的目次的完全途径 */
$dir_name = "/home/me/";
/* opendir()函数会开启某个目次,而且传回一个参考值(handle)让咱们可以用来在法式中参照到该目次 */
$dir = opendir($dir_name);
/* 入手下手创立一个字符串,这个字符串包括了 HTML 的列表卷标,用来显示目次中的文件称号。 */
$file_list = "<ul>";
/* 利用一个 while 轮回叙说将后面开启的目次中的档案全体读取一遍。假如读取到的档名不是「.」或「..」,就把该档名写入后面提到的字符串外面去。 */
while ($file_name = readdir($dir)) {
if (($file_name != ".") && ($file_name != "..")) {
$file_list .= "<li>$file_name";
}
}
/* 替 HTML 列表卷标加上开头 */
$file_list .= "</ul>";
/* 封闭之前开启的目次而且停止这段 PHP 法式 */
closedir($dir);
?>
<!-- HTML原始码从这里入手下手 -->
<HTML>
<HEAD>

</HEAD>
<BODY>
<!-- 利用 PHP 法式来将咱们所读取的目次称号显示在页面上 -->
<P>Files in: <? echo "$dir_name"; ?></p>
<!-- 利用 PHP 法式将该目次中读取到的文件名显示在页面上 -->
<? echo "$file_list"; ?>
</BODY>
</HTML>
经由下面几步,你已胜利把某个目次中的文件称号显示在网页上了。但你要记住一点:要读取某个目次或档案(读取档案内容的做法稍后会引见),PHP 自己履行所用的成分必需最少具有该目次或档案的读取权限才行,不然体系会显示权限缺乏的毛病讯息。

下一个例子我将教人人若何复制一个档案:

<? /* 变量$orginal贮存源文件的完全途径,变量$copied贮存复制曩昔的新档案的完全途径 */
$original = "/home/me/mydatabasedump";
$copied = "/archive/mydatabasedumo_1010";
/* 呼唤 copy() 函数把档案从原始地位复制一份到新的地位去。假如没法复制,那末便终止法式的履行而且显示毛病讯息。 */
@copy($original, $copied) or die("没法复制档案。");
?>
下面的例子法式可以用来扩大成为一个档案备份体系法式。当这个法式履行的时分,它会将数据库的数据文件复制到其它目次上面做为备份之用。只需修正体系的排程档案内容(crontab),咱们即可以让这个法式主动在天天的固准时间履行一次,到达体系主动备份,不需求人工手动履行。

假如你的体系下面有装置 Lynx 软件(Lynx 是一种纯文字的 Web 阅读器)的话,你可以在体系排程档案外面到场上面这笔纪录来让体系在固准时间主动激活 Lynx 而且呼唤咱们之前写好的 PHP 备份法式。当 Lynx 呼唤(阅读)咱们的 PHP 法式的时分,该法式就会被履行,而且发生备份文件。上面这个例子教你若何在天天凌晨五点钟履行咱们的备份法式,而且在履行完今后主动将 Lynx 法式封闭:

0 5 * * * [username] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1
假如你的体系装置的是 CGI 版本的 PHP,那末你可以直接呼唤 PHP 履行档而不需求经由过程 Lynx 来呼唤咱们的 PHP 法式:

0 5 * * * [username] php /path/to/copyfile.php 1>/dev/null 2>&1  刚开始写页面程序,调试完书中的例子。然后就可以尝试编写留言板了,
小魔女 该用户已被删除
19#
发表于 2015-5-6 14:09:43 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
再见西城 该用户已被删除
18#
发表于 2015-5-4 17:47:11 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
若相依 该用户已被删除
17#
发表于 2015-5-4 07:20:34 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
蒙在股里 该用户已被删除
16#
发表于 2015-4-21 23:52:40 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
小妖女 该用户已被删除
15#
发表于 2015-4-21 13:34:12 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
不帅 该用户已被删除
14#
发表于 2015-4-15 04:24:28 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
admin 该用户已被删除
13#
发表于 2015-4-10 09:07:28 | 只看该作者
爱上php,他也会爱上你。
深爱那片海 该用户已被删除
12#
发表于 2015-4-7 00:15:48 | 只看该作者
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
灵魂腐蚀 该用户已被删除
11#
发表于 2015-3-31 04:56:17 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
谁可相欹 该用户已被删除
10#
发表于 2015-3-26 18:29:20 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-23 18:51:58 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
变相怪杰 该用户已被删除
8#
发表于 2015-3-17 04:12:13 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
海妖 该用户已被删除
7#
发表于 2015-3-14 12:19:16 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
透明 该用户已被删除
6#
发表于 2015-3-7 06:20:44 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
只想知道 该用户已被删除
5#
发表于 2015-2-26 05:07:15 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
金色的骷髅 该用户已被删除
地板
发表于 2015-2-8 20:29:21 | 只看该作者
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
莫相离 该用户已被删除
板凳
发表于 2015-2-7 03:11:08 | 只看该作者
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
老尸 该用户已被删除
沙发
发表于 2015-2-4 20:08:47 | 只看该作者
爱上php,他也会爱上你。
再现理想 该用户已被删除
楼主
发表于 2015-2-4 12:55:54 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 11:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表