<!--上传照片示例 upimage.php
功能:上传照片,显示上传人、上传时间、图片名称、图片大小、图片说明。
<!--上传照片示例 upimage.php
功能:上传照片,显示上传人、上传时间、图片名称、图片大小、图片说明。
用户在设计和维护站点的时候,经常需要限制对某些重要文件或信息的访问。通常,我们可以采用内置于WEB服务器的基于HTTP协议的用户身份验证机制。 当访问者浏览受保护页面时,客户端浏览器会弹出对话窗口要求用户输入用户名和密码,对用户的身份进行验证,以决定用户是否有权访问页面。下面用两种方法来说明其实现原理。
汉字转化为拼音(php版) 很多服务器对于中文文件名支持不是很好,有没有好的办法来解决呢???现在的解决方法一般是产生一个ID,将这个ID做文件名;网页上如果url带汉字也经常出错;现在的解决方法一般用urlencode编码
译者注:本文的原名是《Creating a Multi-File Upload Script in PHP》。我个个觉得这文章写得一般,代码也不是非常专业,但是它比较短,而且一时间也找不到好一点的文章,就把这个译过来了。其实PHP手册里也有一节是说多文件上传的,大家可以对比对比。文章内有的字句译出来不太顺眼,所以按照原意作了一定量的修改。本人水平有限,还望各位高手多指点。
通过ICQ网关发送手机短信的PHP源程序
(转自linuxforum.net 原作者:liushiliang EMAIL: lsl@163.net )
MVC with PHP(一)中的bug的问题是存在,最大的问题是日志系统的问题,等完成这这个介绍后我后把全部更正的程序源码打包
出来,这里就暂时不做更改了.
PHP有一个令人惊讶的能力——你可以利用它的服务器端脚本创建动态图形。这项功能的基础是GD库,它是由Thomas Boutell设计的ANSI C库,这个库支持除.GIF文件之外的绝大多数常见图形文件格式(不过该库的设计者许诺当LZW专利在2004年7月7日到期后就立即添加.GIF支持)。
PHP4.3以及它的更高版本集成了GD库。如果你使用的是老版本的PHP,你需要手工安装图形支持。这儿有许多与之有关的信息。
折线图
为了演示如何用PHP创建动态图形,我们建立一些自定义图形。第一个例子是画在网格上的折线图,如图A所示。
图A
我们把这个页面叫着grid.php(相关附件:清单A)。为了调用Web页动态产生的图形,你只需要访问这个PHP页,它将该图形传递到浏览器。IMG元素可以很好的完成这项工作。下面是实现这个功能的例子代码:
<imgsrc="grid.php" />
现在,我们开始编写用于创建图形的代码。下面是grid.php中源代码片断:
<?
//添加图形的值
$graphValues=array(0,80,23,11,190,245,50,80,111,240,55);
首先,我们定义图形的值。在这个例子中,图形值直接写到代码中的一个数组中,不过你可以很容易改写代码,让代码从XML文件、表格或者数据库中获取这些值。这些值的范围从0到250(以象素为单位的图形尺寸)。这些值将决定每个网格上线段的初始象素位置。如果你想使用数值0和100(用百分比表示),你只需把这些值乘以2.5来决定网格上的象素位置。
然后,我们发送一个PNG头并定义图像的高度和宽度:
// Define .PNG image
header("Content-type: image/png");
$imgWidth=250;
$imgHeight=250;
我们发送一个图形头来“欺骗”浏览器,使它认为我们的PHP页面是一幅真正的图像,这样它才可以正确显示在屏幕上。服务器将以二进制数据流的形式把程序产生的信息发送到浏览器。
PNG(Portable Network Graphic,便携式网路图形)标准是一种无损的图形格式,它由于GIF的 LZW算法专利这一法律问题而在1995年提出来的。
现在,我们例化图形对象并定义我们在图形中用到的颜色:
//创建图像、定义颜色
$image=imagecreate($imgWidth, $imgHeight);
$colorWhite=imagecolorallocate($image, 255, 255, 255);
$colorGrey=imagecolorallocate($image, 192, 192, 192);
$colorBlue=imagecolorallocate($image, 0, 0, 255);
我们设置白色背景,灰色画框以及蓝色折线。你可以通过创建新变量并赋不同的RGB值来轻松的修改或者添加颜色。
模块化安装:
首先把php4ts.dll移动到或者拷贝到windows/system (Windows 9x/Me)或者winnt/system32 (Windows NT/2000/XP)目录下面,覆盖原来存在的文件; 然后修改Apache配置文件httpd.conf:(假设c:/php/是你的PHP安装路径)
LoadModule php4_module c:/php/sapi/php4apache.dll
AddModule mod_php4.c
AddType application/x-httpd-php .php
做为CGI安装:
如果使用CGI模式,请修改php.ini的设置: cgi.force_redirect = 1,以增强apache的安全性,然后,在httpd.conf插入以下内容:
ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"
以上是两者的差异,其他都相同。
PHP 怎么这么红
最近 PHP(Personal Hypertext Preprocessor) 似乎已经成了这一两年来 Linux/Unix 上最广为大家所使用的网页处理语言╋它的方便、强大功能与 OpenSource 的特性使得它正逐渐侵蚀到传统 CGI 甚至是 MicroSoft ASP(Active Server Page)的市场╋几乎各大网站征招人才莫不以会 PHP 作为基本条件。
PHP 确实有这个资格可以这么红╋原因有下面数点 :
PHP 是 OpenSource 软件╋完全免费╋可以自由散布╋因此吸引了极多的人来使用╋也因为如此╋吸引到了商业公司为其发展更好的引擎与最佳化软件(请参考 http://www.zend.com/)。
PHP 本身非常简单易懂╋浅显的指令语法╋外加一些基本的对象导向处理能力╋让新手足以在最短时间内学会。
PHP 提供了相当多的功能╋包含了数学处理、字符串处理、网络相关功能、各种数据库的支持、影像处理功能、有为数众多的发展者正为 PHP 发展各式各样的新功能╋扩充性极佳。
PHP 非常容易与 Apache 相结合╋作为 Apache 的模块来使用╋设定安装上相当简单╋也因为 Apache 目前已经占据了 Web Server 全球 60% 的市场╋PHP 自然而然成为 Apache 最佳搭配。
不过╋这次要讲的主题不是 PHP 在网页设计上的应用╋而是 PHP 在 Shell Script 上的应用╋一般所知的 Shell Script 大约就是 tcsh、bash、perl 或是 python 这几类语言╋我所要谈的就是将 PHP 当成 Shell Script 来使用。
PHP 执行档的安装
一般 PHP 作为网页处理语言都是要编译成 Apache 的模块╋这里当然不么做╋也因此编译起来很简单╋只要以 root 的身分进行如下动作 :
解开 php-3.0.xx.tar.gz
cd php
configure
make
编译完之后╋在 php 目录下有一个可执行档╋档名为 php╋将它 copy 到 /usr/local/bin 下即可。注意╋如果档案太大╋可以使用 strip 指令将 php 的方式将不必要的信息去除╋这样档案就会小得多了。
第一个程序
开始撰写我们的第一个 PHP Shell Script 程序╋这个例子印出 "Hello world !" :
61、增加了create_function(),用于快速建立函数。(Zeev, Zend Engine)
62、增加了数组和数组、对象和对象的比较功能。“==”符号提供无序的比较功能,“===”提供有序的比较。(Zeev, Zend Engine)
63、Allow all functions that receive user-defined function callbacks to accept an array that contains an object and a method name, in place of a function name, e.g. usort($array, array($obj, "ObjSort"))
63、允许所有函数支持用户定义的function callback(不知道怎么翻)用来接受一个包括一个对象和一个方法名的数组。(Zeev, Zend Engine)
64、增加了set_error_handler()函数,允许用户自己编写错误处理函数以替代内建的错误处理功能。(Zeev, Zend Engine)
65、把user_error()改名为trigger_error();但user_error()继续保留有效。(Zeev, Zend Engine)
66、修正了全局/静态的声明为需要在其末尾加上分号“;”。(Andi, Zend Engine)
67、清除了PCRE(这是什么东西?)扩展。(Andrei)
68、给in_array()函数增加了第三个参数。如果此参数为 true ,in_array()将进行严格的比较以替代默认的比较方法。(Andrei)
69、增加了pg_trace()和pg_untrace()函数。(Dominic J. Eidson & Zeev)
70、ignore_user_abort=Off现在是默认值。(Thies)
71、增加了能递归合并相同键值的函数array_merge_recursive()。(Andrei)
72、修正了OCIParse在解析非法SQL语句时崩溃的问题。(Thies)
73、修正了在非永久性连接时,mysql_connect()会忽略socket参数的BUG。(Zeev)
74、在php.ini中增加disable_functions的选项,使管理员能禁用某些可能引起安全问题的函数。(Zeev)
75、修正了WIN32中session的问题。在php.ini里,save_path选项,现在需要用分号“;”代替原来的“:”来限定使用的目录层数。(Andi)
76、在无法找到PHP文件时,APACHE将给出“Declined”的信息。(Rasmus)
77、修正了十进制数字在国际化环境下的问题。数字应为标准的美国格式(为什么??!!)。(Andi, Zend Engine)
78、给函数preg_quote()增加了第二个参数。这个参数允许引用一个通常是常规表达式分隔符的字符。(Andrei)
79、未提交的OCI8的事务将在连接关闭前取消。(Thies)
80、ignore_user_abort()及一些相关函数能在CGI模式下工作正常。(Patch by daniel.braun@ercom.fr)
关于 PHP 的数据库 API 对于不同的数据库有不同的函数,一直以来就有人尝试使用 PHP 的面向对象的功能进行一些封装。其中有比较著名的ADODB,PHPLIB。后来举世瞩目的 PEAR 项目中的 PEAR DB 更是其中的佼佼者。这些用面向对象对数据库 API 进行的封装的包一般称为数据库抽象层。
本文介绍的是 PEAR 中对 PEAR DB 进行融合 Metabase 库的一些优秀功能之后产生的注重效率,而且简单易用,功能非常强大的 MDB 的一个非常好的介绍。作者就是 MDB 的主创人员。
想获得我最近关注的 PHP/PEAR 的最新原创和译文,请访问我的主页
Write once - run anywhere
一次编写??随处运行
PEAR MDB Database Abstraction Layer
PEAR MDB 数据库抽象层
作者:Lukas Smith
译者:taowen
While this is a Java marketing phrase it is also a key feature of PHP. Many business models depend on operation system independence to ensure that products can be sold to a wide range of customers. So why lock yourself in with a specific database vendor? Database abstraction layers allow you to develop your application independent of a database. But often they eat more performance than you are willing to give or they do not abstract enough to eliminate all database specific code.
这是Java的一句行销口号,但是它同时也是PHP的关键特性之一。许多商业模型依赖于操作系统无关性来保证产品能够销售给广泛的客户群体。因而,为什么要把你自己绑在某种数据库厂商的身上呢?数据库抽象层使得你能够与数据库独立的开发你的应用程序。但是,通常情况下它们对性能的影响超过了你所希望的,要么他们并不足够抽象以消除所有和特定数据库相关的代码。
What will this article teach me?
这篇文章将教给我什么?
This article will give a good introduction to the database abstraction package PEAR MDB. The focus will be explaining the more advanced features of MDB like data type abstraction and the XML based schema management that go beyond what other similar packages offer. A basic level of understanding of PHP and SQL is recommended.
这篇文章将对数据库抽象包 PEAR MDB 有一个很好的介绍。文章的焦点将是对 MDB 超越类似包所提供的更先进的特性,例如数据类型抽象和基于 XML 的 schema 管理。对 PHP 和 SQL 的基本理解是推荐的。