move function deletenode() to the xml class
This commit is contained in:
parent
c96a53b4b4
commit
56e38dd6bd
|
@ -12,6 +12,7 @@ use \Friendica\Core\Config;
|
||||||
require_once("include/network.php");
|
require_once("include/network.php");
|
||||||
require_once("include/Photo.php");
|
require_once("include/Photo.php");
|
||||||
require_once("include/oembed.php");
|
require_once("include/oembed.php");
|
||||||
|
require_once("include/xml.php");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Class with methods for extracting certain content from an url
|
* @brief Class with methods for extracting certain content from an url
|
||||||
|
@ -184,17 +185,17 @@ class ParseUrl {
|
||||||
$doc = new \DOMDocument();
|
$doc = new \DOMDocument();
|
||||||
@$doc->loadHTML($body);
|
@$doc->loadHTML($body);
|
||||||
|
|
||||||
self::deleteNode($doc, "style");
|
\xml::deleteNode($doc, "style");
|
||||||
self::deleteNode($doc, "script");
|
\xml::deleteNode($doc, "script");
|
||||||
self::deleteNode($doc, "option");
|
\xml::deleteNode($doc, "option");
|
||||||
self::deleteNode($doc, "h1");
|
\xml::deleteNode($doc, "h1");
|
||||||
self::deleteNode($doc, "h2");
|
\xml::deleteNode($doc, "h2");
|
||||||
self::deleteNode($doc, "h3");
|
\xml::deleteNode($doc, "h3");
|
||||||
self::deleteNode($doc, "h4");
|
\xml::deleteNode($doc, "h4");
|
||||||
self::deleteNode($doc, "h5");
|
\xml::deleteNode($doc, "h5");
|
||||||
self::deleteNode($doc, "h6");
|
\xml::deleteNode($doc, "h6");
|
||||||
self::deleteNode($doc, "ol");
|
\xml::deleteNode($doc, "ol");
|
||||||
self::deleteNode($doc, "ul");
|
\xml::deleteNode($doc, "ul");
|
||||||
|
|
||||||
$xpath = new \DomXPath($doc);
|
$xpath = new \DomXPath($doc);
|
||||||
|
|
||||||
|
@ -440,14 +441,6 @@ class ParseUrl {
|
||||||
$tag = "#" . $tag;
|
$tag = "#" . $tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function deleteNode(&$doc, $node) {
|
|
||||||
$xpath = new \DomXPath($doc);
|
|
||||||
$list = $xpath->query("//".$node);
|
|
||||||
foreach ($list as $child) {
|
|
||||||
$child->parentNode->removeChild($child);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static function completeUrl($url, $scheme) {
|
private static function completeUrl($url, $scheme) {
|
||||||
$urlarr = parse_url($url);
|
$urlarr = parse_url($url);
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
<?php
|
<?php
|
||||||
/*
|
/**
|
||||||
html2bbcode.php
|
* @file include/html2bbcode.php
|
||||||
Converter for HTML to BBCode
|
* @brief Converter for HTML to BBCode
|
||||||
Made by: ike@piratenpartei.de
|
*
|
||||||
Originally made for the syncom project: http://wiki.piratenpartei.de/Syncom
|
* Made by: ike@piratenpartei.de
|
||||||
https://github.com/annando/Syncom
|
* Originally made for the syncom project: http://wiki.piratenpartei.de/Syncom
|
||||||
*/
|
* https://github.com/annando/Syncom
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once("include/xml.php");
|
||||||
|
|
||||||
function node2bbcode(&$doc, $oldnode, $attributes, $startbb, $endbb)
|
function node2bbcode(&$doc, $oldnode, $attributes, $startbb, $endbb)
|
||||||
{
|
{
|
||||||
|
@ -76,15 +79,6 @@ function node2bbcodesub(&$doc, $oldnode, $attributes, $startbb, $endbb)
|
||||||
return($replace);
|
return($replace);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!function_exists('deletenode')) {
|
|
||||||
function deletenode(&$doc, $node)
|
|
||||||
{
|
|
||||||
$xpath = new DomXPath($doc);
|
|
||||||
$list = $xpath->query("//".$node);
|
|
||||||
foreach ($list as $child)
|
|
||||||
$child->parentNode->removeChild($child);
|
|
||||||
}}
|
|
||||||
|
|
||||||
function _replace_code_cb($m){
|
function _replace_code_cb($m){
|
||||||
return "<code>".str_replace("\n","<br>\n",$m[1]). "</code>";
|
return "<code>".str_replace("\n","<br>\n",$m[1]). "</code>";
|
||||||
}
|
}
|
||||||
|
@ -117,12 +111,12 @@ function html2bbcode($message)
|
||||||
|
|
||||||
@$doc->loadHTML($message);
|
@$doc->loadHTML($message);
|
||||||
|
|
||||||
deletenode($doc, 'style');
|
xml::deleteNode($doc, 'style');
|
||||||
deletenode($doc, 'head');
|
xml::deleteNode($doc, 'head');
|
||||||
deletenode($doc, 'title');
|
xml::deleteNode($doc, 'title');
|
||||||
deletenode($doc, 'meta');
|
xml::deleteNode($doc, 'meta');
|
||||||
deletenode($doc, 'xml');
|
xml::deleteNode($doc, 'xml');
|
||||||
deletenode($doc, 'removeme');
|
xml::deleteNode($doc, 'removeme');
|
||||||
|
|
||||||
$xpath = new DomXPath($doc);
|
$xpath = new DomXPath($doc);
|
||||||
$list = $xpath->query("//pre");
|
$list = $xpath->query("//pre");
|
||||||
|
@ -239,7 +233,7 @@ function html2bbcode($message)
|
||||||
node2bbcode($doc, 'iframe', array('src'=>'/(.+)/'), '[iframe]$1', '[/iframe]');
|
node2bbcode($doc, 'iframe', array('src'=>'/(.+)/'), '[iframe]$1', '[/iframe]');
|
||||||
|
|
||||||
node2bbcode($doc, 'code', array(), '[code]', '[/code]');
|
node2bbcode($doc, 'code', array(), '[code]', '[/code]');
|
||||||
node2bbcode($doc, 'key', array(), '[code]', '[/code]');
|
node2bbcode($doc, 'key', array(), '[code]', '[/code]');
|
||||||
|
|
||||||
$message = $doc->saveHTML();
|
$message = $doc->saveHTML();
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file include/xml.php
|
* @file include/xml.php
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief This class contain functions to work with XML data
|
* @brief This class contain methods to work with XML data
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
class xml {
|
class xml {
|
||||||
|
@ -372,5 +373,18 @@ class xml {
|
||||||
|
|
||||||
return($xml_array);
|
return($xml_array);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Delete a node in a XML object
|
||||||
|
*
|
||||||
|
* @param object $doc XML document
|
||||||
|
* @param string $node Node name
|
||||||
|
*/
|
||||||
|
public static function deleteNode(&$doc, $node) {
|
||||||
|
$xpath = new \DomXPath($doc);
|
||||||
|
$list = $xpath->query("//".$node);
|
||||||
|
foreach ($list as $child) {
|
||||||
|
$child->parentNode->removeChild($child);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
|
|
Loading…
Reference in a new issue