张先生的驿站,心灵车站欢迎你
日志
相册

首页

 > 

日志



愈合

2012-01-17

翻农历的时侯,发现昨天是1月16号。我都不知道哪来的记忆。想起去年的此刻来。真无聊。

这个上帝很奇怪,不给人设一个记忆删除功能,辟如开刀的时侯就不用打麻醉药了,呵呵,我的那个小伤口愈合得很快,现在还有点硬块,据说留刀疤了

不过话说回来,虽然手术的时侯我没有很英勇,但是爷们我也是开过刀的人了。

我有两把吉他

2011-11-14

我有两把木吉他。

一把是我在视频中看了无数次心醉的蜂鸟,我喜欢它的红色,血色一般的,我至今弹它的时间不多,两年多了,保存得和新的一般。不过我一直认为他的声音不是很好,很浑浊,只是扫起来很有共鸣,很和谐。

另一把是价值不到1000元的国产的不知名面单琴,我拿到手的时候发现,低音很好,造型又比较接近蜂鸟,手感很轻松的那种,于是近半年一直用它。虽然玩的时间并不多,但是我偏执的认为,它胜于蜂鸟。

大概是两个多月又一点没碰着东西了,今天我拿出新的那把琴,发现音完全走样了,可以说很不好调了,又用软件校正了音调,发现还是有点不对,我想应该是弦的问题。而蜂鸟,拿出来的时候还是那么重,还有股木头的香味,拨了几下,发现音调低了那么一点点,声音却木有乱。

而我却想的是另一问题,到底是旧事物真的美好,还是只是印象深刻而已。当然这些无聊的问题是没有结果的。

而我自己可能就像我弹这曲子一样,开头和结尾会很准,而中间会有些凌乱,然后再凌乱之后假装镇静,然后再凌乱。当然这凌乱是有结果的。

我还有两把木吉他。老的我会继续爱护珍藏;新的我会换弦,换枕调得很完美。

使用PHP DOMDocument创建动态XML文件

2011-11-04

 

当处理基于XML应用程序时,开发者经常需要建立XML编码数据结构。例如,Web中基于用户输入的XML状态模板,服务器请求XML语句,以及基于运行时间参数的客户响应。
 
尽管XML数据结构的构建比较费时,但如果使用成熟的PHP DOM应用程序接口,一切都会变得简单明了。本文将向你介绍PHP DOM应用程序接口的主要功能,演示如何生成一个正确的XML完整文件并将其保存到磁盘中。
 
创建文档类型声明
 
一般而言,XML声明放在文档顶部。在PHP中声明十分简单:只需实例化一个DOM文档类的对象并赋予它一个版本号。查看程序清单A:
 
程序清单 A
 
<?php
// create doctype
$dom = new DOMDocument("1.0");
 
// display document in browser as plain text 
// display document in browser as plain text 
// for readability purposes
header("Content-Type: text/plain");
 
// save and display tree
echo $dom->saveXML();
?>
 
请注意DOM文档对象的saveXML()方法。稍后我再详细介绍这一方法,现在你只需要简单认识到它用于输出XML文档的当前快照到一个文件或浏览器。在本例,为增强可读性,我已经将ASCII码文本直接输出至浏览器。在实际应用中,可将以text/XML头文件发送到浏览器。
 
如在浏览器中查看输出,你可看到如下代码:
 
<?xml version="1.0"?>
 
添加元素和文本节点
 
XML真正强大的功能是来自其元素与封装的内容。幸运的是,一旦你初始化DOM文档,很多操作变得很简单。此过程包含如下两步骤:
 
对想添加的每一元素或文本节点,通过元素名或文本内容调用DOM文档对象的createElement()或createTextNode()方法。这将创建对应于元素或文本节点的新对象。
通过调用节点的appendChild()方法,并把其传递给上一步中创建的对象,并在XML文档树中将元素或文本节点添加到父节点。
以下范例将清楚地演示这2步骤,请查看程序清单B。
 
程序清单 B
 
<?php
// create doctype
$dom = new DOMDocument("1.0");
 
// display document in browser as plain text 
// for readability purposes
header("Content-Type: text/plain");
 
// create root element
$root = $dom->createElement("toppings");
$dom->appendChild($root);
 
// create child element
$item = $dom->createElement("item");
$root->appendChild($item);
 
// create text node
$text = $dom->createTextNode("pepperoni");
$item->appendChild($text);
 
// save and display tree
echo $dom->saveXML();
?>
 
这 里,我首先创建一个名字为<toppings>的根元素,并使它归于XML头文件中。然后,我建立名为<item>的元素并使它 归于根元素。最后,我又创建一个值为“pepperoni”的文本节点并使它归于<item>元素。最终结果如下:
 
<?xml version="1.0"?>
<toppings>
?<item>pepperoni</item>
</toppings>
 
如果你想添加另外一个topping,只需创建另外一个<item>并添加不同的内容,如程序清单C所示。
 
程序清单C
 
<?php
// create doctype
$dom = new DOMDocument("1.0");
 
// display document in browser as plain text 
// for readability purposes
header("Content-Type: text/plain");
 
// create root element
$root = $dom->createElement("toppings");
$dom->appendChild($root);
 
// create child element
$item = $dom->createElement("item");
$root->appendChild($item);
 
// create text node
$text = $dom->createTextNode("pepperoni");
$item->appendChild($text);
 
// create child element
$item = $dom->createElement("item");
$root->appendChild($item);
 
// create another text node
$text = $dom->createTextNode("tomato");
$item->appendChild($text);
 
// save and display tree
echo $dom->saveXML();
?>
 
以下是执行程序清单C后的输出:
 
<?xml version="1.0"?>
<toppings>
?<item>pepperoni</item>
?<item>tomato</item>
</toppings>
 
添加属性
 
通过使用属性,你也可以添加适合的信息到元素。对于PHP DOM API,添加属性需要两步:首先用DOM文档对象的createAttribute()方法创建拥有此属性名字的节点,然后将文档节点添加到拥有属性值的属性节点。详见程序清单D。
 
程序清单 D
 
<?php
// create doctype
$dom = new DOMDocument("1.0");
 
// display document in browser as plain text 
// for readability purposes
header("Content-Type: text/plain");
// create root element
$root = $dom->createElement("toppings");
$dom->appendChild($root);
 
// create child element
$item = $dom->createElement("item");
$root->appendChild($item);
 
// create text node
$text = $dom->createTextNode("pepperoni");
$item->appendChild($text);
 
// create attribute node
$price = $dom->createAttribute("price");
$item->appendChild($price);
 
// create attribute value node
$priceValue = $dom->createTextNode("4");
$price->appendChild($priceValue);
 
// save and display tree
echo $dom->saveXML();
?>
 
输出如下所示:
 
<?xml version="1.0"?>
<toppings>
?<item price="4">pepperoni</item>
</toppings>
 
添加CDATA模块和过程向导
 
虽然不经常使用CDATA模块和过程向导,但是通过调用DOM文档对象的createCDATASection()和createProcessingInstruction()方法, PHP API 也能很好地支持CDATA和过程向导,请见程序清单E。
 
程序清单 E
 
<?php
// create doctype
// create doctype
$dom = new DOMDocument("1.0");
 
// display document in browser as plain text 
// for readability purposes
header("Content-Type: text/plain");
 
// create root element
$root = $dom->createElement("toppings");
$dom->appendChild($root);
 
// create child element
$item = $dom->createElement("item");
$root->appendChild($item);
 
// create text node
$text = $dom->createTextNode("pepperoni");
$item->appendChild($text);
 
// create attribute node
$price = $dom->createAttribute("price");
$item->appendChild($price);
 
// create attribute value node
$priceValue = $dom->createTextNode("4");
$price->appendChild($priceValue);
 
// create CDATA section
$cdata = $dom->createCDATASection(" Customer requests that pizza be sliced into 16 square pieces ");
$root->appendChild($cdata);
 
// create PI
$pi = $dom->createProcessingInstruction("pizza", "bake()");
$root->appendChild($pi);
 
// save and display tree
echo $dom->saveXML();
?>
 
输出如下所示:
 
<?xml version="1.0"?>
<toppings>
<item price="4">pepperoni</item>
<![CDATA[
      Customer requests that pizza be sliced into 16 square pieces
]]>
<?pizza bake()?>
</toppings>
 
保存结果
 
一旦已经实现你的目标,就可以将结果保存在一个文件或存储于PHP的变量。通过调用带有文件名的save()方法可以将结果保存在文件中,而通过调用saveXML()方法可存储于PHP的变量。请参考以下实例(程序清单F):
 
程序清单 F
 
<?php
// create doctype
$dom = new DOMDocument("1.0");
 
// create root element
$root = $dom->createElement("toppings");
$dom->appendChild($root);
$dom->formatOutput=true;
 
// create child element
$item = $dom->createElement("item");
$root->appendChild($item);
 
// create text node
$text = $dom->createTextNode("pepperoni");
$item->appendChild($text);
 
// create attribute node
$price = $dom->createAttribute("price");
$item->appendChild($price);
 
// create attribute value node
$priceValue = $dom->createTextNode("4");
$price->appendChild($priceValue);
 
// create CDATA section
$cdata = $dom->createCDATASection(" Customer requests that pizza be
 
sliced into 16 square pieces ");
$root->appendChild($cdata);
 
// create PI
$pi = $dom->createProcessingInstruction("pizza", "bake()");
$root->appendChild($pi);
 
// save tree to file
$dom->save("order.xml");
 
// save tree to string
$order = $dom->save("order.xml");
?>

爱情的枪

2011-10-10

 借我那把枪吧 你说你用不上那玩意去杀谁

莫非有人把情爱都已看厌
借我那把枪吧 或者借我五毛钱
我要搭上北方的快车 头也不回

杀了诚实吧 或者杀了爱情吧 
在北风吹起的時侯加入我们的队伍
杀了真理吧 或者杀了谎言吧 
好在北风吹起的狂野中唱着激昂的进行曲
借我那把枪吧 我又沒说用不上那玩意 
莫非有人给你机会 让你感到自卑

借我那把枪吧 或者借我五毛钱  
生就属于北方的我将一去不回
如果有天我再归来  请不要因为我感到伤悲
雁子会捎来讯息 当春风吹拂着新绿
那是因为我想你

跟我去北方吧
那里正下着雪 就让我滚热的灵魂在冰霜上撒个野
跟我去北方吧 逃离爱情的肤浅 
南方的江山太娇媚 腐蚀了我的热血

杀了诚实吧 或者杀了爱情吧 
爱情来的時侯 你就会背叛你的诚实主义
杀了真理吧 或者杀了谎言吧 
千万不要让他们站在敌对的那一边

借我那把枪吧 我又沒说用不上那玩意儿
当真理站在谎言的那边 我就解决我自己
借我那把枪吧 或者借我五毛钱 
南方的江山太娇媚 容易遮上我的眼

如果有天我再回来  请不要为我感到伤悲
雁子会捎来讯息 当春风吹拂着新绿
那是因为我想你

半夜随笔

2011-09-17


  半夜的时候,喝了点酒,回去看着八卦路的路口,那是我天天都要路过的,晚上看的时候却有点陌生。

 
 想起L,不知道数次晚上总是想起她。这个地方转悠,当年京基还是个大坑的时候,她跟我说这个是最高的楼,而今马上就建成了都,而我几乎每天都在目睹这一切。从来没敢跟她多喝过,其实挺想多喝点的,知道一个人倔犟的人要是失控总是很突然。我想君也是这样。
 
 小伙子需要开导,但是明天当他清醒,他就会茫然不知所措。但是良药本来就是抑制症状的,而真正的恢复还得靠自己的免疫力。恩,都一样,靠自己,因为咱是男人。
 
 “信吧,也许咱们的挫折不一样,但是咱们的心还是一样滚烫。”



心灵车站全球战略伙伴:onVon.com    ItIsShop   isdb-t


加盟Email:raptor@raptorzhang.com
版权保护 如有雷同 必然追究