如何用PHP把RDF内容插入Web站点之中(5)
if (!($fp = fopen($this->file, "r")))
{
die("Could not read $this->file"),
}
// parse data
while ($xml = fread($fp, 4096))
{
if (!xml_parse($this->xp, $xml, feof($fp)))
{
die("XML parser error: " .
xml_error_string(xml_get_error_code($this->xp))),
}
}
// destroy parser
xml_parser_free($this->xp),
}
// opening tag handler
function elementBegin($parser, $name, $attributes)
{
$this->currentTag = $name,
// set flag if entering
if ($name == "ITEM")
{
$this->flag = 1,
}
else if ($name == "CHANNEL")
{
$this->flag = 2,
}
}
// closing tag handler
function elementEnd($parser, $name)
{
$this->currentTag = "",
// set flag if exiting
if ($name == "ITEM")
{
$this->count++,
$this->flag = 0,
}
else if ($name == "CHANNEL")
{
$this->flag = 0,
}
}
// character data handler
function characterData($parser, $data)
{
$data = trim(htmlspecialchars($data)),
if ($this->currentTag == "TITLE" || $this->currentTag ==
"LINK" || $this->currentTag == "DESCRIPTION")
{
// add data to $channels[] or $items[] array
if ($this->flag == 1)
{
$this->items[$this->count][strtolower($this->currentTag)] .= $data,
}
else if ($this->flag == 2)
{
$this->channel[strtolower($this->currentTag)] .= $data,
}
}
}
// return an associative array containing channel information
// (the $channel[] array)
function getChannelInfo()
{
return $this->channel,
}
// return an associative array of arrays containing item
information
// (the $items[] array)
function getItems()
{
return $this->items,
}
}
?>
在使用这个类之前,我要特别花几分钟指出其中的一行代码——即上面对xml_set_object()函数调用的那一行。
现在的问题是如何使用这个类实际生成具有多个内容来源的Web页。
include("class.RDFParser.php"),
// how many items to display in each channel
$maxItems = 5,
?>
basefont face="Verdana">
valign=top align=left> // get and parse freshmeat.net channel $f = new RDFParser(), $f->setResource("http://www.freshmeat.net/backend/fm-releases.rdf"), $f->parseResource(), $f_channel = $f->getChannelInfo(), $f_items = $f->getItems(), // now format and print it... ?> The latest from href= echo $f_channel["link"], ?>> echo $f_channel["title"], ?> br> ul> // iterate through items array for ($x=0, $xmaxItems, $x++) { if (is_array($f_items[$x])) { // print data $item = $f_items[$x], echo "li>href=" . $item["link"] . ">" . $item["title"] . "", } } ?> ul> |
i>Primary page content herei> |
valign=top align=left> // get and parse slashdot.org channel $s = new RDFParser(), $s->setResource("http://slashdot.org/slashdot.rdf"), $s->parseResource(), $s_channel = $s->getChannelInfo(), $s_items = $s->getItems(), // now format and print it... ?> The latest from href= echo $s_channel["link"], ?>> echo $s_channel["title"], ?> br> ul> // iterate through items array for ($x=0, $xmaxItems, $x++) { if (is_array($s_items[$x])) { // print data $item = $s_items[$x], echo "li>href=" . $item["link"] . ">" . $item["title"] . "", } } ?> ul> |
这段代码相当简单。一旦你用“new”关键字生成一个类的实例,
$f = new RDFParser(),
那么就可以用类方法来设置要分析的RDF文件的位置,
$f->setResource("http://www.freshmeat.net/backend/fm-releases.rdf"),
$f->parseResource(),
并且获取$channel和$items数组,以用于后面的处理。
$f_channel = $f->getChannelInfo(),
$f_items = $f->getItems(),
?>
The latest from href= echo $f_channel["link"], ?>> echo
$f_channel["title"], ?> br> ul> // iterate through items array
for ($x=0, $xmaxItems, $x++) {
if (is_array($f_items[$x]))
{
// print data
$item = $f_items[$x],

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题











许多用户在选择智能手表的时候都会选择的华为的品牌,其中华为GT3pro和GT4都是非常热门的选择,不少用户都很好奇华为GT3pro和GT4有什么区别,下面就就给大家介绍一下二者。华为GT3pro和GT4有什么区别一、外观GT4:46mm和41mm,材质是玻璃表镜+不锈钢机身+高分纤维后壳。GT3pro:46.6mm和42.9mm,材质是蓝宝石玻璃表镜+钛金属机身/陶瓷机身+陶瓷后壳二、健康GT4:采用最新的华为Truseen5.5+算法,结果会更加的精准。GT3pro:多了ECG心电图和血管及安

为什么截图工具在Windows11上不起作用了解问题的根本原因有助于找到正确的解决方案。以下是截图工具可能无法正常工作的主要原因:对焦助手已打开:这可以防止截图工具打开。应用程序损坏:如果截图工具在启动时崩溃,则可能已损坏。过时的图形驱动程序:不兼容的驱动程序可能会干扰截图工具。来自其他应用程序的干扰:其他正在运行的应用程序可能与截图工具冲突。证书已过期:升级过程中的错误可能会导致此issu简单的解决方案这些适合大多数用户,不需要任何特殊的技术知识。1.更新窗口和Microsoft应用商店应用程

第1部分:初始故障排除步骤检查苹果的系统状态:在深入研究复杂的解决方案之前,让我们从基础知识开始。问题可能不在于您的设备;苹果的服务器可能会关闭。访问Apple的系统状态页面,查看AppStore是否正常工作。如果有问题,您所能做的就是等待Apple修复它。检查您的互联网连接:确保您拥有稳定的互联网连接,因为“无法连接到AppStore”问题有时可归因于连接不良。尝试在Wi-Fi和移动数据之间切换或重置网络设置(“常规”>“重置”>“重置网络设置”>设置)。更新您的iOS版本:

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

本篇文章带大家解读vue源码,来介绍一下Vue2中为什么可以使用 this 访问各种选项中的属性,希望对大家有所帮助!

同事因为this指向的问题卡住的bug,vue2的this指向问题,使用了箭头函数,导致拿不到对应的props。当我给他介绍的时候他竟然不知道,随后也刻意的看了一下前端交流群,至今最起码还有70%以上的前端程序员搞不明白,今天给大家分享一下this指向,如果啥都没学会,请给我一个大嘴巴子。

Go语言中的channel是一种用于协程之间进行通信和数据同步的机制。可以被看作是一种特殊的数据类型,类似于队列或管道,用于在不同的协程之间传递数据。Channel提供了两个主要操作:发送(send)和接收(receive)。在channel中发送和接收操作都是阻塞的,这意味着如果没有发送方或接收方准备好,操作将被阻塞,直到有一个协程准备好进行相应的操作等。

Go语言中使用channel和goroutine通信。创建channel后,goroutine可以通过
