Which PHP version are you using and what exactly are you up to?i cant seem to figure this one out...
if i have this for xml:
Code:<taghere attributename="value" anothername="value1" />
how do i get it so i can assign to a php valueCode:$value = attributename;
<?php
$xml = new DOMDocument();
$xml->loadXML('<taghere attributename="value" anothername="value1" />');
$elems = $xml->getElementsByTagName('taghere');
foreach ($elems as $elem)
{
print $elem->getAttribute('attributename'). ' = ' . $elem->getAttribute('anothername') . "\n";
}
?>
Warning: domdocument() expects at least 1 parameter, 0 given in
(address here) on line 5
Fatal error: Call to undefined function: loadxml() in
(address here) on line 6
$xml = new DOMDocument();
$xml->loadXML('test.xml');
This may be why
"PHP Version 4.4.0" -phpinfo();
<?php
$xml = domxml_open_mem('<taghere attributename="value" anothername="value1" />');
$elems = $xml->get_elements_by_tagname('taghere');
foreach ($elems as $elem)
{
print $elem->get_attribute('attributename'). ' = ' . $elem->get_attribute('anothername') . "\n";
}
?>
function GetRoster(){
$roster_front = "<table><tr><td>Name</td><td>Level</td><td>Class</td><td>Race</td><td>Gender</td><td></td></tr>";
$xml = domxml_open_file("http://armory.worldofwarcraft.com/guild-info.xml?r=Lightning's+Blade&n=Paradigm+Shift");
$elems = $xml->get_elements_by_tagname('characters');
foreach ($elems as $elem){
$name = $elem->get_attribute('name');
$level = $elem->get_attribute('level');
$class = $elem->get_attribute('class');
$race = $elem->get_attribute('race');
$gender = $elem->get_attribute('gender');
$url = $elem->get_attribute('url');
$roster_front .= "<tr><td>$name</td><td>$level</td><td>$class</td><td>$race</td><td>$gender</td><td><a href='http://armory.worldofwarcraft.com/character-sheet.xml?$url'>Armory</a></td></tr>";
}
$roster_front .= "</table>";
return $roster_front;
}
Warning: domxml_open_file(): ParsePI: PI xml-stylesheet never end ... in /home/www/theugl.com/functions/functions.php on line 5
Warning: domxml_open_file(): Start tag expected, '<' not found in /home/www/theugl.com/functions/functions.php on line 5
Fatal error: Call to a member function on a non-object in /home/www/theugl.com/functions/functions.php on line 6
It's pretty obvious, you only have to read the error messages and look at your code:i get these errors:
Code:Warning: domxml_open_file(): ParsePI: PI xml-stylesheet never end ... in /home/www/theugl.com/functions/functions.php on line 5 Warning: domxml_open_file(): Start tag expected, '<' not found in /home/www/theugl.com/functions/functions.php on line 5 Fatal error: Call to a member function on a non-object in /home/www/theugl.com/functions/functions.php on line 6
for the second warning i dont know what the hell its talking about...
enouwee said:fetch the XML file using a HTTP GET (cURL or whatever your favorite is) and not directly from the DOMXML code and switch to domxml_opem_mem() instead. Someone might turn off fopen_wrappers and you'll look stupid. Or it's already disabled, which would be good choice.
enouwee said:(optional, may work find with the XSL stylesheet) remove the stylesheet from XML file, or tell PHP to ignore external entities
i need some help there.
<?php
$url = 'http://armory.worldofwarcraft.com/guild-info.xml?r=Lightning\'s+Blade&n=Paradigm+Shift';
header('Content-type: text/plain');
# -------------------------------------
# fetch $url using either cURL or fopen
# -------------------------------------
if (function_exists('curl_init'))
{
# curl_* functions are available
print "[+] cURL is installed. Using it.\n";
if (($handle = curl_init($url)) === false)
{
print "[-] curl_init() failed\n";
exit;
}
curl_setopt($handle, CURLOPT_HEADER, 0);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
if (($content = curl_exec($handle)) === false)
{
print "[-] curl_exec() failed\n";
curl_close($handle);
exit;
}
curl_close($handle);
}
else if (is_resource($handle = fopen($url, 'r')))
{
# revert to fopen()
print "[+] Using fopen_wrapper\n";
$content = '';
while(!feof($handle))
{
if (($tmp = fread($handle, 4096)) === false)
{
print "[-] fread() failed\n";
fclose($handle);
exit;
}
$content .= $tmp;
}
fclose($handle);
}
else if (function_exists('fsockopen'))
{
print "[+] Using fsockopen()\n";
if (!preg_match(',http://(.*?)(/.*),', $url, &$matches))
{
print '[-] Invalid $url: ' . $url . "\n";
exit;
}
if (!($handle = fsockopen($matches[1], 80)))
{
print "[-] fread() failed\n";
exit;
}
$request = 'GET ' . $matches[2] . ' HTTP/1.1' . "\n"
. 'Host: ' . $matches[1] . "\n"
. 'Connection: close' . "\n\n";
$len = strlen($request);
if (fwrite($handle, $request, $len) != $len)
{
print "[-] fwrite() couldn't send the data\n";
exit;
}
fflush($handle);
$content = '';
while(!feof($handle))
{
if (($tmp = fread($handle, 4096)) === false)
{
print "[-] fread() failed\n";
fclose($handle);
exit;
}
$content .= $tmp;
}
fclose($handle);
if (($pos = strpos($content, "\n\n")) === false && ($pos = strpos($content, "\r\n\r\n")) === false)
{
print "[-] HTTP response header not found\n";
exit;
}
$content = substr($content, $pos);
}
else
{
# better try something else...
print "[-] Bad luck, neither cUrl, fsockopen() nor fopen_wrapper available\n";
exit;
}
# ---------------------------
# parse $content using DOMXML
# ---------------------------
if (($xml = domxml_open_mem($content)) == false)
{
print "[-] domxml_open_mem() failed\n";
exit;
}
$elems = $xml->get_elements_by_tagname('character');
if (empty($elems))
{
print "[-] No elements available.\n";
exit;
}
print "[+] Output:\n";
foreach ($elems as $elem)
{
print 'Name: ' . $elem->get_attribute('name') . "\n"
. 'Level: ' . $elem->get_attribute('level') . "\n"
. 'Class: ' . $elem->get_attribute('class') . "\n"
. 'Race: ' . $elem->get_attribute('race') . "\n"
. 'Gender: ' . $elem->get_attribute('gender') . "\n"
. 'Url: ' . $elem->get_attribute('url') . "\n\n";
}
?>
[+] cURL is installed. Using it.
<br />
<b>Warning</b>: domxml_open_mem(): ParsePI: PI xml-stylesheet never end ...
in ... on line <b>105</b><br />
<br />
<b>Warning</b>: domxml_open_mem(): Start tag expected, '<' not found
in ... on line <b>105</b><br />
[-] domxml_open_mem() failed
[-] domxml_open_mem() failed
if (($xml = domxml_open_mem($content)) == false)
{
print "[-] domxml_open_mem() failed\n";
exit;
}
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/layout/guild-info.xsl"?>
<page globalSearch="1" lang="en_us" requestUrl="/guild-info.xml">
<guildInfo>
<guild battleGroup="Vindication" name="Underworld" realm="Lightning's Blade" rosterUrl="r=Lightning%27s+Blade&n=Underworld&p=1" statsUrl="r=Lightning%27s+Blade&n=Underworld" statsUrlEscape="r=Lightning%27s+Blade&n=Underworld">
<members memberCount="49">
<character class="Rogue" classId="4" gender="Male" genderId="0" level="47" name="Acillatem" race="Undead" raceId="5" rank="4" url="r=Lightning%27s+Blade&n=Acillatem"/>
<character class="Druid" classId="11" gender="Male" genderId="0" level="70" name="Amaha" race="Tauren" raceId="6" rank="1" url="r=Lightning%27s+Blade&n=Amaha"/>
<character class="Shaman" classId="7" gender="Male" genderId="0" level="70" name="Asakhar" race="Orc" raceId="2" rank="3" url="r=Lightning%27s+Blade&n=Asakhar"/>
<character class="Warlock" classId="9" gender="Male" genderId="0" level="48" name="Bloodi" race="Blood Elf" raceId="10" rank="3" url="r=Lightning%27s+Blade&n=Bloodi"/>
<character class="Rogue" classId="4" gender="Male" genderId="0" level="46" name="Bloodmaniak" race="Blood Elf" raceId="10" rank="4" url="r=Lightning%27s+Blade&n=Bloodmaniak"/>
<character class="Druid" classId="11" gender="Male" genderId="0" level="20" name="Clockradio" race="Tauren" raceId="6" rank="4" url="r=Lightning%27s+Blade&n=Clockradio"/>
<character class="Rogue" classId="4" gender="Male" genderId="0" level="60" name="Cooldowns" race="Blood Elf" raceId="10" rank="3" url="r=Lightning%27s+Blade&n=Cooldowns"/>
<character class="Priest" classId="5" gender="Female" genderId="1" level="66" name="Curranhealz" race="Undead" raceId="5" rank="3" url="r=Lightning%27s+Blade&n=Curranhealz"/>
<character class="Warlock" classId="9" gender="Male" genderId="0" level="70" name="Deathwishh" race="Undead" raceId="5" rank="3" url="r=Lightning%27s+Blade&n=Deathwishh"/>
<character class="Mage" classId="8" gender="Male" genderId="0" level="45" name="Diablomaniak" race="Blood Elf" raceId="10" rank="4" url="r=Lightning%27s+Blade&n=Diablomaniak"/>
<character class="Warrior" classId="1" gender="Male" genderId="0" level="25" name="Doesitmatter" race="Undead" raceId="5" rank="4" url="r=Lightning%27s+Blade&n=Doesitmatter"/>
<character class="Warrior" classId="1" gender="Male" genderId="0" level="70" name="Eofk" race="Tauren" raceId="6" rank="1" url="r=Lightning%27s+Blade&n=Eofk"/>
<character class="Warlock" classId="9" gender="Male" genderId="0" level="70" name="Fearfigment" race="Undead" raceId="5" rank="3" url="r=Lightning%27s+Blade&n=Fearfigment"/>
<character class="Hunter" classId="3" gender="Male" genderId="0" level="11" name="Fokd" race="Tauren" raceId="6" rank="4" url="r=Lightning%27s+Blade&n=Fokd"/>
<character class="Hunter" classId="3" gender="Male" genderId="0" level="70" name="Foldeak" race="Blood Elf" raceId="10" rank="3" url="r=Lightning%27s+Blade&n=Foldeak"/>
<character class="Mage" classId="8" gender="Male" genderId="0" level="70" name="Froggert" race="Undead" raceId="5" rank="3" url="r=Lightning%27s+Blade&n=Froggert"/>
<character class="Priest" classId="5" gender="Male" genderId="0" level="70" name="Ghostmaniak" race="Blood Elf" raceId="10" rank="1" url="r=Lightning%27s+Blade&n=Ghostmaniak"/>
<character class="Druid" classId="11" gender="Male" genderId="0" level="70" name="Grogol" race="Tauren" raceId="6" rank="1" url="r=Lightning%27s+Blade&n=Grogol"/>
<character class="Paladin" classId="2" gender="Male" genderId="0" level="70" name="Halomaniak" race="Blood Elf" raceId="10" rank="1" url="r=Lightning%27s+Blade&n=Halomaniak"/>
<character class="Paladin" classId="2" gender="Male" genderId="0" level="25" name="Herthnbuble" race="Blood Elf" raceId="10" rank="4" url="r=Lightning%27s+Blade&n=Herthnbuble"/>
<character class="Priest" classId="5" gender="Male" genderId="0" level="70" name="Hippoboy" race="Troll" raceId="8" rank="4" url="r=Lightning%27s+Blade&n=Hippoboy"/>
<character class="Warrior" classId="1" gender="Male" genderId="0" level="70" name="Hippoman" race="Tauren" raceId="6" rank="3" url="r=Lightning%27s+Blade&n=Hippoman"/>
<character class="Mage" classId="8" gender="Male" genderId="0" level="21" name="Jamairak" race="Undead" raceId="5" rank="4" url="r=Lightning%27s+Blade&n=Jamairak"/>
<character class="Paladin" classId="2" gender="Female" genderId="1" level="51" name="Jessicalee" race="Blood Elf" raceId="10" rank="3" url="r=Lightning%27s+Blade&n=Jessicalee"/>
<character class="Rogue" classId="4" gender="Male" genderId="0" level="70" name="Jikeidan" race="Undead" raceId="5" rank="1" url="r=Lightning%27s+Blade&n=Jikeidan"/>
<character class="Hunter" classId="3" gender="Male" genderId="0" level="70" name="Kakihara" race="Orc" raceId="2" rank="3" url="r=Lightning%27s+Blade&n=Kakihara"/>
<character class="Rogue" classId="4" gender="Male" genderId="0" level="39" name="Kalph" race="Undead" raceId="5" rank="3" url="r=Lightning%27s+Blade&n=Kalph"/>
<character class="Warrior" classId="1" gender="Male" genderId="0" level="70" name="Marahumal" race="Tauren" raceId="6" rank="3" url="r=Lightning%27s+Blade&n=Marahumal"/>
<character class="Priest" classId="5" gender="Female" genderId="1" level="70" name="Mirowen" race="Undead" raceId="5" rank="1" url="r=Lightning%27s+Blade&n=Mirowen"/>
<character class="Mage" classId="8" gender="Male" genderId="0" level="22" name="Nuajix" race="Undead" raceId="5" rank="4" url="r=Lightning%27s+Blade&n=Nuajix"/>
<character class="Mage" classId="8" gender="Male" genderId="0" level="70" name="Reboot" race="Blood Elf" raceId="10" rank="0" url="r=Lightning%27s+Blade&n=Reboot"/>
<character class="Mage" classId="8" gender="Male" genderId="0" level="70" name="Rexmaniak" race="Blood Elf" raceId="10" rank="1" url="r=Lightning%27s+Blade&n=Rexmaniak"/>
<character class="Druid" classId="11" gender="Male" genderId="0" level="68" name="Roako" race="Tauren" raceId="6" rank="3" url="r=Lightning%27s+Blade&n=Roako"/>
<character class="Mage" classId="8" gender="Male" genderId="0" level="70" name="Sarriz" race="Undead" raceId="5" rank="3" url="r=Lightning%27s+Blade&n=Sarriz"/>
<character class="Hunter" classId="3" gender="Male" genderId="0" level="70" name="Sevenups" race="Troll" raceId="8" rank="1" url="r=Lightning%27s+Blade&n=Sevenups"/>
<character class="Mage" classId="8" gender="Male" genderId="0" level="70" name="Shabobble" race="Undead" raceId="5" rank="3" url="r=Lightning%27s+Blade&n=Shabobble"/>
<character class="Warrior" classId="1" gender="Male" genderId="0" level="70" name="Spearhead" race="Undead" raceId="5" rank="2" url="r=Lightning%27s+Blade&n=Spearhead"/>
<character class="Rogue" classId="4" gender="Male" genderId="0" level="70" name="Spiritkiller" race="Troll" raceId="8" rank="3" url="r=Lightning%27s+Blade&n=Spiritkiller"/>
<character class="Warlock" classId="9" gender="Male" genderId="0" level="70" name="Stupify" race="Undead" raceId="5" rank="3" url="r=Lightning%27s+Blade&n=Stupify"/>
<character class="Mage" classId="8" gender="Male" genderId="0" level="70" name="Sudantu" race="Undead" raceId="5" rank="4" url="r=Lightning%27s+Blade&n=Sudantu"/>
<character class="Hunter" classId="3" gender="Male" genderId="0" level="70" name="Trappa" race="Blood Elf" raceId="10" rank="3" url="r=Lightning%27s+Blade&n=Trappa"/>
<character class="Priest" classId="5" gender="Male" genderId="0" level="70" name="Trie" race="Undead" raceId="5" rank="3" url="r=Lightning%27s+Blade&n=Trie"/>
<character class="Shaman" classId="7" gender="Male" genderId="0" level="70" name="Twopac" race="Tauren" raceId="6" rank="4" url="r=Lightning%27s+Blade&n=Twopac"/>
<character class="Mage" classId="8" gender="Male" genderId="0" level="64" name="Uptown" race="Undead" raceId="5" rank="4" url="r=Lightning%27s+Blade&n=Uptown"/>
<character class="Warrior" classId="1" gender="Male" genderId="0" level="70" name="Warhero" race="Orc" raceId="2" rank="3" url="r=Lightning%27s+Blade&n=Warhero"/>
<character class="Druid" classId="11" gender="Male" genderId="0" level="70" name="Warugi" race="Tauren" raceId="6" rank="3" url="r=Lightning%27s+Blade&n=Warugi"/>
<character class="Shaman" classId="7" gender="Male" genderId="0" level="70" name="Xereth" race="Troll" raceId="8" rank="2" url="r=Lightning%27s+Blade&n=Xereth"/>
<character class="Druid" classId="11" gender="Male" genderId="0" level="70" name="Yaok" race="Tauren" raceId="6" rank="2" url="r=Lightning%27s+Blade&n=Yaok"/>
<character class="Warlock" classId="9" gender="Female" genderId="1" level="70" name="Zukina" race="Blood Elf" raceId="10" rank="1" url="r=Lightning%27s+Blade&n=Zukina"/>
</members>
</guild>
</guildInfo>
</page>
function CheckRoster(){
$sql = "SELECT * FROM miscinfo WHERE title = 'rostertimer'";
$result = mysql_query($sql);
if(mysql_query($sql)){
$prev_day = mysql_result($result, 0, 'info1');
$curr_day = date(Ymd);
if($prev_day<$currday){
UpdateRoster();
}else{
GetRoster();
}
}else{
return "Error: Could not complete $sql";
}
}
<?php
$url = 'http://armory.worldofwarcraft.com/guild-info.xml?r=Lightning\'s+Blade&n=Paradigm+Shift';
header('Content-type: text/plain');
if (($handle = curl_init($url)) === false)
{
print "[-] curl_init() failed\n";
exit;
}
$headers = array(
'Accept: text/xml,application/xml,application/xhtml+xml',
'Accept-Charset: utf-8,ISO-8859-1'
);
curl_setopt($handle, CURLOPT_HEADER, 0);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20070101 Firefox/2.0.0.4');
curl_setopt($handle, CURLOPT_HTTPHEADER, $headers);
if (($content = curl_exec($handle)) === false)
{
print "[-] curl_exec() failed\n";
curl_close($handle);
exit;
}
curl_close($handle);
if (($xml = domxml_open_mem($content)) == false)
{
print "[-] domxml_open_mem() failed\n";
exit;
}
$elems = $xml->get_elements_by_tagname('character');
if (empty($elems))
{
print "[-] No elements available.\n";
exit;
}
print "[+] Output:\n";
foreach ($elems as $elem)
{
print 'Name: ' . $elem->get_attribute('name') . "\n"
. 'Level: ' . $elem->get_attribute('level') . "\n"
. 'Class: ' . $elem->get_attribute('class') . "\n"
. 'Race: ' . $elem->get_attribute('race') . "\n"
. 'Gender: ' . $elem->get_attribute('gender') . "\n"
. 'Url: ' . $elem->get_attribute('url') . "\n\n";
}
?>
wrong "identification" headers
Yes, it's pretending to be a Firefox browser, as the Blizzard webserver sends back HTML if you don't provide a supported "User-Agent" and/or "Accept" header, matching a (probably hardcoded) list of browsers known to be able to apply XSLT correctly).Ok i love you because it worked
BUT im scared of what u mean in the disclaimer....
Meaning, the code is lying to wow.com?