I have a problem with my PHP. Here’s the regulary expression:
[code=php]preg_match_all(‘#<kwd>(.)<kwd>#’, file_get_contents(‘./Data/keywords.xml’), $keywords);
Here is the file it’s searching through:
[code=html]<?xml version=”1.0″ encoding=”utf-8″?>
<!DOCTYPE kwds [
<!ELEMENT kwds (kwd+)>
<!ELEMENT kwd (#PCDATA)>
]>
<kwds>
<kwd>Comics</kwd>
<kwd>Chaos Theory/String Theory</kwd>
<kwd>Email</kwd>
<kwd>Flash</kwd>
<kwd>Forums</kwd>
<kwd>Furcadia</kwd>
<kwd>Furry</kwd>
<kwd>Games</kwd>
<kwd>HTML</kwd>
<kwd>Knowledge</kwd>
<kwd>LiveJournal</kwd>
<kwd>Local</kwd>
<kwd>Music</kwd>
</kwds>
For some reason, I’m not getting any of the contents of the <kwd> elements returned.
<i>
</i>'#<kwd>([^<]+)</kwd>#'
<i>
</i>'#<kwd>(.+?)</kwd>#'
[code=php]
<?php
$xml = <<<EOD
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE kwds [
<!ELEMENT kwds (kwd+)>
<!ELEMENT kwd (#PCDATA)>
]>
<kwds>
<kwd>Comics</kwd>
<kwd>Chaos Theory/String Theory</kwd>
<kwd>Email</kwd>
<kwd>Flash</kwd>
<kwd>Forums</kwd>
<kwd>Furcadia</kwd>
<kwd>Furry</kwd>
<kwd>Games</kwd>
<kwd>HTML</kwd>
<kwd>Knowledge</kwd>
<kwd>LiveJournal</kwd>
<kwd>Local</kwd>
<kwd>Music</kwd>
</kwds>
EOD;
// Use the DOM to get the kwd values:
$dom = new DOMDocument();
$dom->loadXML($xml);
$list = $dom->getElementsByTagName('kwd');
foreach($list as $item)
{
echo $item->nodeValue . "<br />n";
}
[/code]
[code=php]<?php
header('Content-type: application/xhtml+xml; charset=utf-8');
if(empty($_GET['keyword'])){
$kwd = 'Welcome';
} else {
$kwd = $_GET['keyword'];
}
class PageLink{
var $href;
var $title;
var $secs = Array();
}
//Other Stuff.
$t3 = "ttt";
$n = "rn";
?>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="application/javascript" />
<title>HomePage</title>
<link rel="stylesheet" type="text/css" href="../Formatting/homepage.css" />
</head>
<body>
<h1>Homepage</h1>
<ul id="Menu">
<?php
//Keyword XML
$key_dom = new DOMDocument();
$key_dom -> loadXML(file_get_contents('./Data/keywords.xml'));
$key_list = $key_dom -> getElementsByTagName('kwd');
foreach($key_list as $keyword){
$kword = $keyword -> nodeValue;
echo ($t3 . '<li><a href="index.php?keyword=' . $kword . '">' . $kword . '</a></li>' . $n);
}
?>
</ul>
<div id="Main">
<h2><?php echo $kwd; ?></h2>
<?php
if($kwd=='Welcome'){
echo $t3 . '<p>All Systems Are Go.</p>' . $n;
} else {
}
?>
<p>You have 0 matches</p>
<pre>
<?php
?>
</pre>
</div>
</body>
</html>[/code]
[code=html]<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE kwds [
<!ELEMENT kwds (kwd+)>
<!ELEMENT kwd (#PCDATA)>
]>
<!-- This file contains keywords of my page links. -->
<kwds>
<kwd>Comics</kwd>
<kwd>Chaos Theory/String Theory</kwd>
<kwd>Email</kwd>
<kwd>Flash</kwd>
<kwd>Forums</kwd>
<kwd>Furcadia</kwd>
<kwd>Furry</kwd>
<kwd>Games</kwd>
<kwd>HTML</kwd>
<kwd>Knowledge</kwd>
<kwd>LiveJournal</kwd>
<kwd>Local</kwd>
<kwd>Music</kwd>
</kwds>
[/code]
[code=html]<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE links [
<!ELEMENT links (link+)>
<!ELEMENT link (name, url, kwds, secs?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT url (#PCDATA)>
<!ELEMENT kwds (kwd+)>
<!ELEMENT kwd (#PCDATA)>
<!ELEMENT secs (sec+)>
<!ELEMENT sec (kwd, s+)>
<!ELEMENT s (#PCDATA)>
]>
<!-- This page contains information about my links -->
<links>
<link>
<name>Acropolis</name>
<url>furc://Acropolis</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kwd>Furcadia</kwd>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Albert "Gene Catlow" Temple</name>
<url>http://genecatlow.livejournal.com</url>
<kwds>
<kwd>LiveJournal</kwd>
</kwds>
</link>
<link>
<name>Allegria Island</name>
<url>furc://allegriaisland</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kwd>Furcadia</kwd>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>AIM Email</name>
<url>http://mail.aim.com</url>
<kwds>
<kwd>Email</kwd>
</kwds>
</link>
<link>
<name>Albino Black Sheep</name>
<url>http://www.albinoblacksheep.com</url>
<kwds>
<kwd>Flash</kwd>
</kwds>
</link>
<link>
<name>Babael</name>
<url>http://babael.livejournal.com/</url>
<kwds>
<kwd>LiveJournal</kwd>
</kwds>
</link>
<link>
<name>Belfry WebComics Index</name>
<url>http://www.belfry.com/comics</url>
<kwds>
<kwd>Comics</kwd>
<kwd>Furry</kwd>
</kwds>
<secs>
<sec>
<kwd>Furry</kwd>
<s>Comics</s>
</sec>
</secs>
</link>
<link>
<name>Bob DayWalker</name>
<url>http://spiritboi.livejournal.com/</url>
<kwds>
<kwd>LiveJournal</kwd>
</kwds>
</link>
<link>
<name>Brian Gelfand</name>
<url>http://barach.livejournal.com/</url>
<kwds>
<kwd>LiveJournal</kwd>
</kwds>
</link>
<link>
<name>Challenges</name>
<url>furc://Challenges</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kwd>Furcadia</kwd>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Chaos Theory/String Theory Facebook Group</name>
<url>http://www.facebook.com/group.php?gid=4069048319</url>
<kwds>
<kwd>Chaos Theory/String Theory</kwd>
</kwds>
</link>
<link>
<name>Chaos Theory/String Theory Google Group</name>
<url>http://groups.google.com/group/ctst</url>
<kwds>
<kwd>Chaos Theory/String Theory</kwd>
</kwds>
</link>
<link>
<name>Chaos Theory/String Theory Homepage</name>
<url>http://geocities.com/kharismaspade/</url>
<kwds>
<kwd>Chaos Theory/String Theory</kwd>
</kwds>
</link>
<link>
<name>Chaos Theory/String Theory Wiki</name>
<url>http://ctst.bluwiki.com</url>
<kwds>
<kwd>Chaos Theory/String Theory</kwd>
</kwds>
</link>
<link>
<name>Coach Random</name>
<url>http://localhost:8080/Websites/Coach_Random</url>
<kwds>
<kwd>Local</kwd>
</kwds>
</link>
<link>
<name>Cobo</name>
<url>http://cobo4231.livejournal.com/</url>
<kwds>
<kwd>LiveJournal</kwd>
</kwds>
</link>
<link>
<name>Database Journals</name>
<url>http://forums.databasejournal.com/</url>
<kwds>
<kwd>Forums</kwd>
<kwd>HTML</kwd>
</kwds>
<secs>
<sec>
<kwd>Forums</kwd>
<s>HTML</s>
</sec>
<sec>
<kwd>HTML</kwd>
<s>Forums</s>
</sec>
</secs>
</link>
<link>
<name>Delphi Forums</name>
<url>http://www.delphiforums.com</url>
<kwds>
<kwd>Forums</kwd>
<kwd>Music</kwd>
</kwds>
<secs>
<sec>
<kwd>Forums</kwd>
<s>Music</s>
</sec>
<sec>
<kwd>Music</kwd>
<s>Forums</s>
</sec>
</secs>
</link>
<link>
<name>DevPPL Forum</name>
<url>http://www.devppl.com</url>
<kwds>
<kwd>Forums</kwd>
<kwd>HTML</kwd>
</kwds>
<secs>
<sec>
<kwd>Forums</kwd>
<s>HTML</s>
</sec>
<sec>
<kwd>HTML</kwd>
<s>Forums</s>
</sec>
</secs>
</link>
<link>
<name>DeviantArt</name>
<url>http://www.deviantart.com</url>
<kwds>
<kwd>Furry</kwd>
</kwds>
<secs>
<sec>
<kwd>Furry</kwd>
<s>Art</s>
</sec>
</secs>
</link>
<link>
<name>Doctypes</name>
<url>http://localhost:8080/Local_Use_Only/HTML_Info/doctypes.xhtml</url>
<kwds>
<kwd>Local</kwd>
</kwds>
</link>
<link>
<name>Dog's Days Of Summer</name>
<url>http://community.livejournal.com/dogsdays/</url>
<kwds>
<kwd>LiveJournal</kwd>
</kwds>
<secs>
<sec>
<kwd>LiveJournal</kwd>
<s>Communities</s>
</sec>
</secs>
</link>
</links>[/code]
[code=php]
<?php
$xmlFile = "test.xml";
$search = "LiveJournal";
$linksArray = array();
$dom = new DOMDocument();
$dom->load($xmlFile);
$links = $dom->getElementsByTagName('link');
foreach($links as $link)
{
$kwds = $link->getElementsByTagName('kwd');
foreach($kwds as $kwd)
{
if($kwd->nodeValue == $search)
{
$url = $link->getElementsByTagName('url');
$name = $link->getElementsByTagName('name');
$linksArray[] = array('url' => $url->item(0)->nodeValue, 'name' => $name->item(0)->nodeValue);
break;
}
}
}
// show the results:
echo "<pre>".print_r($linksArray,1)."</pre>";
[/code]
[code=php]<?php
$link_arr = Array();
$link_tick = 0;
$link_dom = new DOMDocument();
$link_dom -> loadXML(file_get_contents('./Data/links.xml'));
$links = $link_dom -> getElementsByTagName ('link');
foreach ($links as $link){
$link_kwds = $link -> getElementsByTagName ('kwd');
foreach ($link_kwds as $link_kwd){
if($link_kwd->nodeValue == $kwd){
$url = $link->getElementsByTagName('url');
$name = $link->getElementsByTagName('name');
$link_arr[$link_tick] = ('<li><a href="' . $url->item(0)->nodeValue . '">' . $name->item(0)->nodeValue . '</a></li>');
$link_tick++;
break;
}
}
}
?>
<p>You have <?php echo count($link_arr); ?> matches</p>
<ul>
<?php for ($i=0; $i < count($link_arr); $i++){echo ($t4 . $link_arr[$i] . $n);}?>
</ul>
</div>[/code]
[code=html]<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE links [
<!ELEMENT links (link+)>
<!ELEMENT link (name, url, kwds, secs?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT url (#PCDATA)>
<!ELEMENT kwds (kwd+)>
<!ELEMENT kwd (#PCDATA)>
<!ELEMENT secs (sec+)>
<!ELEMENT sec (kword, s+)>
<!ELEMENT kword (#PCDATA)>
<!ELEMENT s (#PCDATA)>
]>
<!-- This page contains information about my links -->
<links>
<link>
<name>Acropolis</name>
<url>furc://Acropolis</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Allegria Island</name>
<url>furc://allegriaisland</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Challenges</name>
<url>furc://Challenges</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Festival</name>
<url>furc://festival/</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Furcadia</name>
<url>http://www.furcadia.com</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
</link>
<link>
<name>Furrabian Nights</name>
<url>furc://furrabiannights</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Haunted Clock Tower, The</name>
<url>http://www.freewebs.com/thehauntedclocktower/</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Dream Homepages</s>
</sec>
</secs>
</link>
<link>
<name>Hawthorn</name>
<url>furc://hawthorn</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Imaginarium</name>
<url>furc://imaginarium</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Last One Standing (Fighting Arenas)</name>
<url>furc://lastonestanding:fightingarenas//</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Roleplaying Dream</s>
</sec>
</secs>
</link>
<link>
<name>Meovanni Village</name>
<url>furc://meovannivillage/</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Naia Green</name>
<url>furc://naiagreen/</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Main Maps</s>
</sec>
</secs>
</link>
<link>
<name>Tanglewood Forest, The</name>
<url>http://www.freewebs.com/tanglewoodforest/</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Dream Homepages</s>
</sec>
</secs>
</link>
<link>
<name>Vinca, The</name>
<url>furc://vinca</url>
<kwds>
<kwd>Furcadia</kwd>
</kwds>
<secs>
<sec>
<kword>Furcadia</kword>
<s>Main Maps</s>
</sec>
</secs>
</link>
</links>
[/code]
0.1.9 — BETA 5.24