note 97077 added to function.simplexml-load-file
| From: | jamie at splooshmedia dot co dot uk | Date: | Wed, 31 Mar 2010 14:17:04 +0000 |
| Subject: | note 97077 added to function.simplexml-load-file | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-167558@lists.php.net to get a copy of this message | ||
A wrapper around simplexml_load_file to circumvent nasty error messages when the xml server times
out or gives a 500 error etc.
function loadXML2($domain, $path, $timeout = 30) {
/*
Usage:
$xml = loadXML2("127.0.0.1", "/path/to/xml/server.php?code=do_something");
if($xml) {
// xml doc loaded
} else {
// failed. show friendly error message.
}
*/
$fp = fsockopen($domain, 80, $errno, $errstr, $timeout);
if($fp) {
// make request
$out = "GET $path HTTP/1.1\r\n";
$out .= "Host: $domain\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
// get response
$resp = "";
while (!feof($fp)) {
$resp .= fgets($fp, 128);
}
fclose($fp);
// check status is 200
$status_regex = "/HTTP\/1\.\d\s(\d+)/";
if(preg_match($status_regex, $resp, $matches) && $matches[1] == 200) {
// load xml as object
$parts = explode("\r\n\r\n", $resp);
return simplexml_load_string($parts[1]);
}
}
return false;
}
----
Server IP: 69.147.83.197
Probable Submitter: 85.118.3.53
----
Manual Page -- http://www.php.net/manual/en/function.simplexml-load-file.php
Edit -- https://master.php.net/note/edit/97077
Del: integrated -- https://master.php.net/note/delete/97077/integrated
Del: useless -- https://master.php.net/note/delete/97077/useless
Del: bad code -- https://master.php.net/note/delete/97077/bad+code
Del: spam -- https://master.php.net/note/delete/97077/spam
Del: non-english -- https://master.php.net/note/delete/97077/non-english
Del: in docs -- https://master.php.net/note/delete/97077/in+docs
Del: other reasons-- https://master.php.net/note/delete/97077
Reject -- https://master.php.net/note/reject/97077
Search -- https://master.php.net/manage/user-notes.php