ÿØÿà JFIF ÿÛ „ ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /var/www/html/thietkewebvumi.com/lib/ |
<?php class removelink { /** * Contains the HTML content to convert. * * @var string $html * @access public */ var $html; /** * Contains the converted, formatted text. * * @var string $text * @access public */ var $text; /** * Maximum width of the formatted text, in columns. * * Set this value to 0 (or less) to ignore word wrapping * and not constrain text to a fixed-width column. * * @var integer $width * @access public */ var $width = 70; /** * List of preg* regular expression patterns to search for, * used in conjunction with $replace. * * @var array $search * @access public * @see $replace */ var $search = array( '/<a [^>]*href="([^"]+)"[^>]*>(.*?)<\/a>/ie' ); /** * List of pattern replacements corresponding to patterns searched. * * @var array $replace * @access public * @see $search */ var $replace = array( // <li> '$this->_build_link_list("\\1", "\\2")' ); /** * Contains a list of HTML tags to allow in the resulting text. * * @var string $allowed_tags * @access public * @see set_allowed_tags() */ var $allowed_tags = ''; /** * Contains the base URL that relative links should resolve to. * * @var string $url * @access public */ var $url; /** * Indicates whether content in the $html variable has been converted yet. * * @var boolean $_converted * @access private * @see $html, $text */ var $_converted = false; /** * Contains URL addresses from links to be rendered in plain text. * * @var string $_link_list * @access private * @see _build_link_list() */ var $_link_list = ''; /** * Number of valid links detected in the text, used for plain text * display (rendered similar to footnotes). * * @var integer $_link_count * @access private * @see _build_link_list() */ var $_link_count = 0; /** * Constructor. * * If the HTML source string (or file) is supplied, the class * will instantiate with that source propagated, all that has * to be done it to call get_text(). * * @param string $source HTML content * @param boolean $from_file Indicates $source is a file to pull content from * @access public * @return void */ function removelink( $source = '', $from_file = false ) { if ( !empty($source) ) { $this->set_html($source, $from_file); } $this->set_base_url(); } /** * Loads source HTML into memory, either from $source string or a file. * * @param string $source HTML content * @param boolean $from_file Indicates $source is a file to pull content from * @access public * @return void */ function set_html( $source, $from_file = false ) { $this->html = $source; if ( $from_file && file_exists($source) ) { $fp = fopen($source, 'r'); $this->html = fread($fp, filesize($source)); fclose($fp); } $this->_converted = false; } /** * Returns the text, converted from HTML. * * @access public * @return string */ function get_text() { if ( !$this->_converted ) { $this->_convert(); } return $this->text; } /** * Prints the text, converted from HTML. * * @access public * @return void */ function print_text() { print $this->get_text(); } /** * Alias to print_text(), operates identically. * * @access public * @return void * @see print_text() */ function p() { print $this->get_text(); } /** * Sets the allowed HTML tags to pass through to the resulting text. * * Tags should be in the form "<p>", with no corresponding closing tag. * * @access public * @return void */ function set_allowed_tags( $allowed_tags = '' ) { if ( !empty($allowed_tags) ) { $this->allowed_tags = $allowed_tags; } } /** * Sets a base URL to handle relative links. * * @access public * @return void */ function set_base_url( $url = '' ) { if ( empty($url) ) { if ( !empty($_SERVER['HTTP_HOST']) ) { $this->url = 'http://' . $_SERVER['HTTP_HOST']; } else { $this->url = ''; } } else { // Strip any trailing slashes for consistency (relative // URLs may already start with a slash like "/file.html") if ( substr($url, -1) == '/' ) { $url = substr($url, 0, -1); } $this->url = $url; } } /** * Workhorse function that does actual conversion. * * First performs custom tag replacement specified by $search and * $replace arrays. Then strips any remaining HTML tags, reduces whitespace * and newlines to a readable format, and word wraps the text to * $width characters. * * @access private * @return void */ function _convert() { // Variables used for building the link list $this->_link_count = 0; $this->_link_list = ''; // $text = trim(stripslashes($this->html)); // Run our defined search-and-replace $text = preg_replace($this->search, $this->replace, $text); // Strip any other HTML tags //$text = strip_tags($text, $this->allowed_tags); // Bring down number of empty lines to 2 max $text = preg_replace("/\n\s+\n/", "\n\n", $text); $text = preg_replace("/[\n]{3,}/", "\n\n", $text); // Add link list /* if ( !empty($this->_link_list) ) { $text .= "\n\nLinks:\n------\n" . $this->_link_list; } */ // Wrap the text to a readable format // for PHP versions >= 4.0.2. Default width is 75 // If width is 0 or less, don't wrap the text. /* if ( $this->width > 0 ) { $text = wordwrap($text, $this->width); } */ $this->text = $text; $this->_converted = true; } /** * Helper function called by preg_replace() on link replacement. * * Maintains an internal list of links to be displayed at the end of the * text, with numeric indices to the original point in the text they * appeared. Also makes an effort at identifying and handling absolute * and relative links. * * @param string $link URL of the link * @param string $display Part of the text to associate number with * @access private * @return string */ function _build_link_list( $link, $display ) { if ( substr($link, 0, 7) == 'http://' || substr($link, 0, 8) == 'https://' || substr($link, 0, 7) == 'mailto:' ) { $this->_link_count++; $this->_link_list .= "[" . $this->_link_count . "] $link\n"; $additional = ' [' . $this->_link_count . ']'; } elseif ( substr($link, 0, 11) == 'javascript:' ) { // Don't count the link; ignore it $additional = ''; // what about href="#anchor" ? } else { $this->_link_count++; $this->_link_list .= "[" . $this->_link_count . "] " . $this->url; if ( substr($link, 0, 1) != '/' ) { $this->_link_list .= '/'; } $this->_link_list .= "$link\n"; $additional = ' [' . $this->_link_count . ']'; } return $display . $additional; } } ?>