其它很多时间我们不会用于php ftp函数文件上传哦,但有在使用比较高级的WEB应用时就会用到关于ftp功能,如我现在要把上传的图片传B服务器,数据保存到A服务器,普通的php文件上传实例不了,但用ftp功能就可以方便的实例了。
php函数与传递参数
本教程要介绍关于函数的调用与函数定义语法,并接讲关于函数中的变量以及向函数传递数值方法。
一、函数的基础
php函数变量的作用域及函数返回值教程
在php中关于在一个函数中定义的变量,包括参数在内都不能访问函数外部变量,并且在默认的情况下,在一个函数外部定义的变量不能访问的函数变量。
php mixed preg_replace_callback 实例应用代码
浅谈PHP语法(一)
《谈谈HTML语法》一文,我已经介绍了基本的HTML语法。可以编出一个静态的Web页,可动态交互信息是很重要的。如一些网站的会员制的会员注册、登录都需后端程序的运行。很多网站所用的CGI程序主要用Perl、ASP、Java、PHP编写,而我们所要用的就是PHP。它是完全免费的,这就要感谢那些默默无闻的编程人员了。
PHP的结构类似于C语言,这可是应证了C语言里提的“一处学习,到处编程”。相信学过C语言的人可很容易上手PHP的。还是先介绍一些PHP语法吧。本文适合初学者学习。
PHP与C语言也有一些差别,或者说在某种程度上可能比C语言更为灵活。在C语言中,变量要先定义,才能使用。而PHP中变量则不需事先定义,直接使用即可。对于变量的类型,在赋值时自动生成。PHP变量的类型分为:整数(int)、双精度型(double)、字符串(string)、数组(array)、对象(object)。
整数大小超出其范围后,自动转化为双精度型,其值范围如下表:
┌─────┬─────┬──────┬────────────┐
│ 声明类型 │长度(位)│长度(字节)│ 值的范围 │
├─────┼─────┼──────┼────────────┤
│ int │ 32 │ 4 │-2147483647~2147483647 │
├─────┼─────┼──────┼────────────┤
│ double │ 32 │ 4 │ 1.7E-308~1.7E+308 │
└─────┴─────┴──────┴────────────┘
字符串,通常用""(双引号)表示。也可用''(单引号)表示,如下:
$a="abc";
$b="abc$a";
$c='abc$a';
$d=""cde"";
$e='"cde"';
PHP中的各种变量均在变量名前加上“$”以示区别。
注意,$b的内容为abcabc,$c的内容为abc$a,$d的内容为"cde",$e的内容也为"cde"。可以看出,双引号中的内容中的变量名会被替代
PHP中如何增加一个系统用户
PHP中如何增加一个系统用户 下面是一段例程,增加一个名字为james的用户,root密码是 verygood。仅供参考
$sucommand = "su --login root --command";
$useradd = "useradd ";
$rootpasswd = "verygood";
$user = "james";
$user_add = sprintf("%s "%s %s"",$sucommand,$useradd,$user);
$fp = @popen($user_add,"w");
@fputs($fp,$rootpasswd);
@pclose($fp);
使用PHP实现动态网页
动态信息理论
据Merriam-Webster Online地解释,动态一词的意思是网页的内容由“通常是连续的和实时生成的活动或者改变的信息组成。”因此当我们谈论动态数据的时候,我们也就是在谈论作为Web页面发送给用户的信息是由不同的源数据组合而成的。这与静态网页的概念是相对的,静态网页的内容并不依赖用户输入的数据而改变而且通常是直接解析给用户。Web页面上的动态信息有三种主要的类型:
动态数据--在一个Web页面里产生的变量。
动态Web页面--整个Web页面都是动态生成的。
动态内容--Web页面的一部分是动态生成的。
你如果希望对动态内容产生的过程进行细微的控制,就象动态数据的那种类型一样,那么数据处理的过程就会复杂一些。而如果你想生成大范围的信息,就象动态Web页面的生成那样,那么程序的逻辑就会变得复杂。动态内容的生成是这两种方式的折衷,它能够让我们使用两个很有用的PHP函数,include()和require()。
要记住,你在后端加入的逻辑越多,那么你的Web站点的性能将会损失得越严重。幸运的是,PHP能够很流畅的进行预处理过程,所以当我在处理动态内容和数据的时候都尽可能多的使用PHP的功能。
数据源和PHP功能
所有的动态内容都有一个共同点:它们从一个原始页面以外的数据源而来。图A列出了一些常见的数据源以及用来处理它们的相应的PHP函数。
Figure A
数据源
PHP 函数
注释
User
$HTTP_POST_VARS
$HTTP_GET_VARS
这些函数处理由用户通过Web表单直接输入的数据。
Database (local or remote)
<dbtype>_connect()
<dbtype>_pconnect()
<dbtype>_close()
<dbtype>_<function>()
example:
mysql_fetch_array()
这些都只是PHP许多数据库访问函数中的一部分,许多函数是为每个不同的数据库特别编写的。你能够在PHP函数参考手册里找到这些函数的完整列表。
Remote file
fopen(), fclose()
fgets(), fputs()
这些函数处理一个远程服务器上文件中的数据,这个文件可以通过FTP访问。
Local file
include(), require()
fopen(), fclose()
这些函数处理位于本地服务器上的文件中的数据,比方说配置文件。
常见的数据源和处理它们的PHP函数
在这篇文章“教程:PHP起步中,”我们观看了一个演示的脚本,这个脚本要求用户输入他们最喜欢的数字。根据用户输入的结果,我们在Web页面上显示一条消息。这就是一个由用户驱动的动态Web内容的例子。从Web表单返回的结果将决定显示的内容。一个更复杂的例子是“点击流程”应用程序,这个程序能够根据一个用户在Web站点上访问过的页面来决定向他或者她发送什么广告。
Zend Studio 3.0试用手记
ZDE虽然表面上看好像没有什么变化.:) 整体风格几乎没有变化. 但明显可以感觉速度上快了许多. 而对中文的支持一如既往只能用宋体之类的中文字体时才能正常显示, 很不清楚为什么Zend在这点上进行改进.
以下是ZEND的新特性介绍:
1.Profier……这个东西太强了………没话说,实在是很强很强.从DEMO上看来实在是太强了,可惜我没有Performance suit, 而似乎要装了才能使用这个功能.
2.Code Analyzer 代码分析, 非常酷的功能,你可以看下图.
它的分析能使你的应用程序有更好的安全性. 分析的文档可都是非常宝贝的经验啊.
3.浏览器上的直接Debug的按钮.这个需要安装Zend Server.
4.支持PHP5, 特别支持PHP5的一些新的语法关键词.
自动填充代码功能增强.你可以看下图.
之后你就会在该函数前获得自动注释.很方便你修改.而且ZDE自动填充时的信息是由注释提供的哦.这是一个让你养成好习惯的功能.同时的确增强了自动填充功能, 如果你用惯了Visual Studio等,那么这个的确是很好的功能.而且对于包含文件也能进行填充,虽然有些时候不大灵光. 同时你点GO TO SOURCE能跨文件直接在该函数定位.
6.只是HTML和JAVA SCRIPT的语法加亮显示.
7.ZDE更有效率更快了,的确,虽然它是用JAVA写的,但很精练.去除JRE的ZDE仅仅4M多.
另外还有代码整理功能,你可以看下图
效果很不错.而且非常好用, 因为你也许要接手其他人的项目而可能那个项目的代码写得非常差… 那么这个功能就大显身手了.
一个好的开发工具是一个语言成功的条件之一,在这一点上MS一直做得非常好.而就我而言对PHP的厌恶之情由来依旧,并早已决定除非需要否则放弃使用,但可以说ZEND这次的确带来了惊喜.我一直对PHP5缩宣扬的新特性持由怀疑态度的, 但通过这次对ZDE的支持PHP5关键词的测试, 看来的确是真的. 所以准备对现在PHP5的BETA版本进行一下接触^_^. 希望也能给我带来惊喜 :)
基于PHP的聊天室编程思想
1 页面登陆的基本要素
你可以在我的竹叶看到登陆 的表单,这里提供了最基本的登陆表单项
(1)登陆表单
<form method=POST name=chatform action=chat/login.php?action=enter onSubmit="b1_submit();return true;" target="howtodo">
(a)聊天表单的名字为chatform,我使用action=enter作为进入聊天室的入口,如果没有这个参数,则显示登陆页 面.
(b)在表单提交时,先调用b1_submit()建立聊天的窗口
(c)聊天的目标窗口为b1_submit()建立 的howtodo窗口
(2)表单项
昵称:<input type=text name=name size=15 maxlength="10">
密码:<input type=password name=pass size=15 maxlength="10">
<input type=submit name=submit value=登陆 style="width:100">
<input type=reset name=reset value=重添 style="width:50">
(a)各表单项一定要设定最大允许长度 maxlength
(3)建立聊天窗口的js
<script LANGUAGE="javascript">
function b1_submit(){
chat=window.open('',"howtodo",'Status=no,scrollbars=no,resizable=no');
chat.moveTo(0,0);
chat.resizeTo(screen.availWidth,screen.availHeight);
chat.outerWidth=screen.availWidth;
chat.outerHeight=screen.availHeight;
}
这段代码先 打开一个没有状态栏,滚动条,可调整尺寸的howtodo窗口!然后移动到屏幕左上角,然后放大到允许的屏幕大小.
聊天室编程思想--大门 -- 通行证
大门 -- 通行证
聊天室可以采用完全自由的方式运行,你可以随意 输入呢称,不用密码,不保存你的聊天状态,优点是:自由,非常适合于游客!另外一个方法是注册聊天室,每个进入 聊天室的人都要输入自己的用户名和密码才能进入!优点:充分体现个性,非常适合于老朋友,他们的呢称不会被 人恶意侵占使用.我的聊天室使用注册方法!
注册通常采用2种方法:1,先注册然后进入聊天;2,自动注 册,然后在里面修改自己的资料!我采用第2种方法!!每个新进入的聊友的用户名会被自动保存到注册到数据库内 ,下次登陆必须输入准确的密码才能进入!
下面是判断部分!本程序使用文本数据库 !
//$useronline为在线人的数据文件名称
//$useronlinelock为在线人的锁定标志
//$register为已经注册的数据文件名称
说说我的MySQL
今天做网站的可离不得数据库,说不定你维护的网站就连接着MySQL数据库。MySQL是一种关系型数据库管理系统(RDMS),我们知道,有了数据库,你的网站才会由死气沉沉的静态站点一跃而变得“神采奕奕”、活力四射,个人数据的管理、一般性的日常数据库应用等等都靠网站后端的数据库支撑着呢,这就是MySQL大显神威的地方了!我们这篇文章要谈论的就是MySQL数据库,希望读者能从概述性的本文中学到更多关于MySQL数据库的知识,由此进入MySQL世界的大门。
巨便宜的全能数据库
MySQL在开放源代码世界和Web团体社区中都是如雷贯耳的流行数据库系统,而且,实质上已经成为了免费数据库软件事实上的标准。原因何在呢?其实,MySQL数据库确实是一种真正面向大众的“下里巴”式、通俗的解决方案,它吸引了为数众多的、各种各样的数据库用户和数据库管理员,我们随后就会讨论到这些。
Mysql获得巨大成功还有另外一个原因:要获得它特别方便。在开放源代码世界里,GPL是共享开放源代码软件的一种标准许可协议;它规定自由软件(我们现在说的就是MySQL)可以无须付费即可使用,只要包含GPL产品的任何源代码也在遵守GPL的条件范围内被使用即可。这么说吧:你一个子儿不用就能免费下载MySQL。
而且,这并不是说,如果你的数据库用的是MySQL你就必须公开发布你的软件源代码。其实,只有在以下两种情况下你才必须执行GPL:其一是,从功能上说,MySQL代码是你的软件所必要的组成部分,其二是你随同自己的软件分派这种RDMS。而在商务或者个人自用的情况下就没有任何限制了,不过,使用MySQL的许多公司通常会采取专有许可协议防止软件源代码的泄露。专有许可协议可以按每一数据库服务器为单位购买,一个单位的起步价大约是200美元(如果按卷分发许可协议的话这个价格也可能会更低一些)。
--------------------------------------------------------------------------------
遵照GPL采用MySQL的网站示范
Slashdot—技术人员新闻站点
PHP-Nuke—网站管理系统
Freshmeat.net—软件目录
Linux.com—Linux新闻、技巧和下载的门户站点
--------------------------------------------------------------------------------
然而,MySQL也有个最令人头痛的问题:它没有完全地遵守ANSI SQL标准。如果你特别在意这个问题而且为此忧心忡忡,那我建议你不妨读一读Michael M. Gorman撰写的有关文章。这篇论文阐述了ANSI SQL标准的有效性,因为——说老实话,没有一个数据库系统老老实实遵守了SQL99规范。
第六节--访问属性和方法 -- Classes and Objects in PHP5 [6]
/*
+-------------------------------------------------------------------------------+
| = 本文为Haohappy读<<Core PHP Programming>>
| = 中Classes and Objects一章的笔记
| = 翻译为主+个人心得
| = 为避免可能发生的不必要的麻烦请勿转载,谢谢
| = 欢迎批评指正,希望和所有PHP爱好者共同进步!
+-------------------------------------------------------------------------------+
*/
第六节--访问属性和方法
一个对象实例的属性是变量,就像PHP的其他变量一样. 但是你必须使用->运算符来引用它们. 不需要在属性前使用美元符$. 例如, 6.1中打印User对象的name属性那一行.
可以联用->,如果一个对象的属性包含了一个对象,你可以使用两个->运算符来得到内部对象的属性. 你甚至可以用双重引用的字符串来放置这些表达式. 看6.5中的例子,对象House中的属性room包含了一组Room对象.
访问方法和访问属性类似. ->运算符用来指向实例的方法. 在例子6.1中调用getLastLogin就是. 方法执行起来和类外的函数几乎相同.
如果一个类从另一类中继承而来,父类中的属性和方法将在子类中都有效,即使在子类中没有声明. 像以前提到过的,继承是非常强大的. 如果你想访问一个继承的属性,你只需要像访问基类自己的属性那样引用即可,使用::运算符.
<?php
class Room
{
public $name;
function __construct($name="unnamed")
{
$this->name = $name;
}
}
class House
{
//array of rooms
public $room;
}
//create empty house
$home = new house;
//add some rooms
$home->room[] = new Room("bedroom");
$home->room[] = new Room("kitchen");
$home->room[] = new Room("bathroom");
//show the first room of the house
print($home->room[0]->name);
?>
PHP有两个特殊的命名空间:parent命名空间指向父类,self命名空间指向当前的类. 例子6.6中显示了如何用parent命名空间来调用父类中的构造函数. 同时也用self来在构造函数中调用另一个类方法.
<?php
class Animal //动物
{
public $blood; //热血or冷血属性
public $name;
PHP概述.
1. PHP是什么?
2. PHP 代表什么?
3. 各版本之间有什么关系?
4. 我可以同时运行不同版本的PHP吗?
5. PHP 3 和 PHP 4有什么区别?
6. 我想我发现了一个BUG,我应该告诉谁 ?
1. PHP是什么?
在 手册前言上写到:
PHP是一种嵌入式HTML脚本语言。它的大多数语法来源于C,也有一部分PHP特性借鉴于Java 和 Perl 。这种语言的目的是让WEB开发 人员能够快速高效地写出动态生成的页面。
这儿 (在 Zend站点上)是 Stig S骠her Bakken 写的一个好的PHP的介绍。
还有, 很多 PHP 资源 都是可以免费得到的.
2. PHP 代表什么?
PHP 代表什么? PHP: 超文本预处理器. 这样的一种代表使很多人感到困惑,因为简写的头一个词就这简写本身。
这种类型的简写称为递归简写。
好奇的人可以阅览 在线免费计算机词典查阅更多的信息
3. 各版本之间有什么关系?
PHP/FI 2.0 是早期版本,现在它不再被支持。
PHP 3 是 PHP/FI 2.0 继承者, 比PHP 2要好一些。
PHP 4 是最终版本(目前), 它使用了 Zend 引擎 机制。
4. 我可以同时运行不同版本的PHP吗?
是的,可以。详情参阅PHP源代码发行包里的 INSTALL 文件。当然,也要读一下相关的 附件.
5. PHP 3 和 PHP 4 有什么区别?
PHP 4 的书的作者们写了 许多文章 关于这个.下面是其中最重要的新特性:
扩展API模块
UNIX下通用的编译过程
通用WEB服务接口,支持多线程 WEB 服务器
改进的语法
内置HTTP session 支持
输出缓冲支持
更为强大的配置系统
引用计数
如果想看这些特性的细节,请参阅 What's new in PHP 4 overview 如果你正在从PHP 3 转向PHP 4, 那还得读相关 附件。
6. 我想我发现了一个 bug! 我应该告诉谁?
你首先应该去 PHP Bug Database 查一下,确认这不是一个已知的 bug。
如果在数据库里没有发现它,那么就填写报告表格来报告这个bug。
记住,一定要使用 bug 而不是简单地通知给一个邮件组,因为在数据库里bug 会分配一个 tracking number 以便于你将来返回来查询bug的进展状态。
bug database可以在下面的地址找到: http://bugs.php.net/.