mirror of
https://github.com/e107inc/e107.git
synced 2025-08-04 13:47:31 +02:00
parser and file-class fixes
This commit is contained in:
@@ -2403,25 +2403,41 @@ class e_parser
|
||||
|
||||
|
||||
/**
|
||||
* Return an Array of all tags found in an HTML document.
|
||||
* XXX Working on it currently.
|
||||
* Return an Array of all specific tags found in an HTML document and their attributes.
|
||||
* @param $html - raw html code
|
||||
* @param $taglist - comma separated list of tags to search or '*' for all.
|
||||
* @param $header - if the $html includes the <html> <head> or <body> tags - it should be set to true.
|
||||
*/
|
||||
public function getTag($html, $tags)
|
||||
public function getTags($html, $taglist='*', $header = false)
|
||||
{
|
||||
|
||||
if($header == false)
|
||||
{
|
||||
$html = "<html><body>".$html."</body></html>";
|
||||
}
|
||||
|
||||
$doc = $this->domObj;
|
||||
|
||||
$doc->loadHTML($html);
|
||||
|
||||
$html = "<html><body>".$html."</body></html>";
|
||||
$doc = new DOMDocument();
|
||||
$doc->loadHTML($html);
|
||||
$tg = explode(",", $taglist);
|
||||
$ret = array();
|
||||
|
||||
$tmp = $doc->getElementsByTagName($tag);
|
||||
|
||||
foreach($tmp as $k=>$tg)
|
||||
foreach($tg as $find)
|
||||
{
|
||||
$ret[$tag] = (string) $tg->getAttribute($att);
|
||||
$tmp = $doc->getElementsByTagName($find);
|
||||
|
||||
foreach($tmp as $k=>$node)
|
||||
{
|
||||
$tag = $node->nodeName;
|
||||
|
||||
foreach ($node->attributes as $attr)
|
||||
{
|
||||
$name = $attr->nodeName;
|
||||
$value = $attr->nodeValue;
|
||||
$ret[$tag][$k][$name] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
|
@@ -269,6 +269,11 @@ class e_file
|
||||
{
|
||||
$finfo = array();
|
||||
|
||||
if(filesize($path_to_file) < 2) // Don't try and read 0 byte files.
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if($imgcheck && ($tmp = getimagesize($path_to_file)))
|
||||
{
|
||||
$finfo['img-width'] = $tmp[0];
|
||||
@@ -301,6 +306,9 @@ class e_file
|
||||
|
||||
$cp = curl_init($remote_url);
|
||||
curl_setopt($cp, CURLOPT_FILE, $fp);
|
||||
curl_setopt($cp, CURLOPT_HEADER, 0);
|
||||
curl_setopt($cp, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
|
||||
curl_setopt($cp, CURLOPT_COOKIEFILE, e_SYSTEM.'cookies.txt');
|
||||
|
||||
$buffer = curl_exec($cp);
|
||||
|
||||
|
Reference in New Issue
Block a user