DOM XML functions
These functions are only available if PHP was configured with --with-dom=[DIR], using the GNOME xml library. You will need at least libxml-2.0.0 (the beta version will not work). These functions have been added in PHP4.
This module defines the following constants:
Table 1. XML constants
Constant Value Description
XML_ELEMENT_NODE 1
XML_ATTRIBUTE_NODE 2
XML_TEXT_NODE 3
XML_CDATA_SECTION_NODE 4
XML_ENTITY_REF_NODE 5
XML_ENTITY_NODE 6
XML_PI_NODE 7
XML_COMMENT_NODE 8
XML_DOCUMENT_NODE 9
XML_DOCUMENT_TYPE_NODE 10
XML_DOCUMENT_FRAG_NODE 11
XML_NOTATION_NODE 12
XML_GLOBAL_NAMESPACE 1
XML_LOCAL_NAMESPACE 2
This module defines a number of classes. The DOM XML functions return a parsed tree of the XML document with each node being an object belonging to one of these classes.
xmldoc
(PHP4 >= 4.0b4)
xmldoc -- Creates a DOM object of an XML document
Description
object xmldoc (string str)
The function parses the XML document in str and returns an object of class "Dom document", having the properties "doc" (resource), "version" (string) and "type" (long).
xmldocfile
(PHP4 >= 4.0b4)
xmldocfile -- Creates a DOM object from XML file
Description
object xmldocfile (string filename)
The function parses the XML document in the file named filename and returns an object of class "Dom document", having the properties "doc" (resource), "version" (string).
xmltree
(PHP4 >= 4.0b4)
xmltree -- Creates a tree of php objects from XML document
Description
object xmltree (string str)
The function parses the XML document in str and returns a tree PHP objects as the parsed document.
克隆
PHP5中的对象模型通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本 . 为了这样的目的,PHP定义了一个非凡的方法,称为__clone. 像__construct和__destruct一样,前面有两个下划线.
默认地,用__clone方法将建立一个与原对象拥有相同属性和方法的对象. 假如你想在克隆时改变默认的内容,你要在__clone中覆写(属性或方法).
克隆的方法可以没有参数,但它同时包含this和that指针(that指向被复制的对象). 假如你选择克隆自己,你要小心复制任何你要你的对象包含的信息,从that到this. 假如你用__clone来复制. PHP不会执行任何隐性的复制,
下面显示了一个用系列序数来自动化对象的例子:
class ObjectTracker file://对象跟踪器
{
private static $nextSerial = 0;
private $id;
private $name;
function __construct($name) file://构造函数
{
$this->name = $name;
$this->id = self::$nextSerial;
}
function __clone() file://克隆
{
$this->name = "Clone of $that->name";
$this->id = self::$nextSerial;
}
function getId() file://获取id属性的值
{
return($this->id);
}
function getName() file://获取name属性的值
{
return($this->name);
}
}
$ot = new ObjectTracker("Zeev's Object");
$ot2 = $ot->__clone();
//输出: 1 Zeev's Object
print($ot->getId() . " " . $ot->getName() . "
");
//输出: 2 Clone of Zeev's Object
print($ot2->getId() . " " . $ot2->getName() . "
");
?>
magic_quotes_gpc使用方法
对于magic_quotes_gpc有两种情况,第一种就是
magin_quotes_gpc=on
字符串截取函数开始
字符串截取函数开始 function csubStr($str,$start,$len)
{
$strlen=strlen($str);
$clen=0;
for($i=0;$i<$strlen;$i++,$clen++)
{
if ($clen>=$start+$len)
break;
if(ord(substr($str,$i,1))>0xa0)
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,2);
$i++;
}
else
{
if ($clen>=$start)
$tmpstr.=substr($str,$i,1);
}
}
return $tmpstr;
}
//------------------------------字符串截取函数结束-------------------------------------------
/*使用方法:
<?php
$str=csubStr("ipod光环太耀眼 苹果的电脑本业该怎么办?",0,20);
echo $str;
?>
PHP的unset()函数的实际效果
一个用PHP写的中文分词函数
class Segmentation {
var $options = array('lowercase' => TRUE,
'segment_english' => FALSE);
var $dict_name = 'Unknown';
var $dict_words = array();
function setLowercase($value) {
if ($value) {
$this->options['lowercase'] = TRUE;
} else {
$this->options['lowercase'] = FALSE;
}
return TRUE;
}
function setSegmentEnglish($value) {
if ($value) {
$this->options['segment_english'] = TRUE;
} else {
$this->options['segment_english'] = FALSE;
}
return TRUE;
}
function load($dict_file) {
if (!file_exists($dict_file)) {
return FALSE;
}
$fp = fopen($dict_file, 'r');
$temp = fgets($fp, 1024);
if ($temp === FALSE) {
return FALSE;
} else {
if (strpos($temp, "t") !== FALSE) {
list ($dict_type, $dict_name) = explode("t", trim($temp));
} else {
$dict_type = trim($temp);
$dict_name = 'Unknown';
}
$this->dict_name = $dict_name;
if ($dict_type !== 'DICT_WORD_W') {
return FALSE;
}
}
while (!feof($fp)) {
$this->dict_words[rtrim(fgets($fp, 32))] = 1;
}
fclose($fp);
return TRUE;
}
function getDictName() {
return $this->dict_name;
}
function segmentString($str) {
if (count($this->dict_words) === 0) {
return FALSE;
}
$lines = explode("n", $str);
return $this->_segmentLines($lines);
}
function segmentFile($filename) {
if (count($this->dict_words) === 0) {
return FALSE;
}
$lines = file($filename);
return $this->_segmentLines($lines);
}
function _segmentLines($lines) {
$contents_segmented = '';
foreach ($lines as $line) {
$contents_segmented .= $this->_segmentLine(rtrim($line)) . " n";
}
do {
$contents_segmented = str_replace(' ', ' ', $contents_segmented);
} while (strpos($contents_segmented, ' ') !== FALSE);
return $contents_segmented;
一个阿拉伯数字转中文数字的函数
PHP中的日期及时间
以上会输出一个单选框,其中有十个选项——今天及以后九天。在程序循环开始之前,我们将当前时间存放于变量$d中。每一个