当前位置: 首页>>代码示例>>PHP>>正文


PHP simple_html_dom::save方法代码示例

本文整理汇总了PHP中simple_html_dom::save方法的典型用法代码示例。如果您正苦于以下问题:PHP simple_html_dom::save方法的具体用法?PHP simple_html_dom::save怎么用?PHP simple_html_dom::save使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在simple_html_dom的用法示例。


在下文中一共展示了simple_html_dom::save方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: parse

 public function parse($isUpdate = false)
 {
     Ibos::import("application.extensions.simple_html_dom", true);
     if ($isUpdate) {
         $model = preg_replace("/\\s+data-id\\s?=\\s?\"?\\d+\"?/i", "", $this->printmodel);
         $max = 0;
     } else {
         $model = $this->printmodel;
         $max = intval($this->itemmax);
     }
     $elements = array();
     $doc = new simple_html_dom();
     $doc->load($model, true, true, CHARSET);
     $items = $doc->find("ic");
     $config = $this->getItemConfig();
     if (!empty($items) && !empty($config)) {
         $this->refactor($items, $config, $max, $elements);
     }
     $html = $doc->save();
     $this->_cache = $elements;
     CacheUtil::set("form_" . $this->ID, $elements);
     $form["printmodelshort"] = $html;
     if ($max != $this->itemmax) {
         $form["itemmax"] = $max;
     }
     $doc->clear();
     FlowFormType::model()->modify($this->ID, $form);
 }
开发者ID:AxelPanda,项目名称:ibos,代码行数:28,代码来源:SimpleHtmlParser.php

示例2: addToTable

	function addToTable($text,$position,$button){
		$dom = new simple_html_dom();
		$dom->load($text);

		$tableEl = $dom->find('.'.$position,0);
		if(!$tableEl){
			$table = '<table class="'.$position	.' myApiShareTable"></table>';
			$text 	= ($position == 'myApiShareTop') ?  $table.$text : $text.$table;
			$dom->load($text);
		}
		
		$text 	= $dom->save();
		$dom->load($text);
		
		$rowEl = $dom->find('.'.$position,0)->find('.myApiButtons',0);
		if(!$rowEl){
			$tr = '<tr class="myApiButtons"><td><table><tr><td>'.$button.'</td></tr></table></td></tr>';
			$row = $dom->find('.'.$position,0);
			$row->innertext = $tr.$row->innertext;
		}else{
			$rowEl->find('table',0)->find('tr',0)->innertext = '<td>'.$button.'</td>'.$rowEl->find('table',0)->find('tr',0)->innertext;
		}
		
		$text 	= $dom->save();
		$dom->load($text);
		
		$commentsTable = $dom->find('.myApiShareBottom',0);
		if($commentsTable){
			$commentsEl = $commentsTable->find('.myApiCommentsCell',0);
			if($commentsEl){
				$buttonRow = $commentsTable->find('.myApiButtons',0);
				if($buttonRow){
					$commentsEl->colspan = sizeof($buttonRow->find('td'));
					$text 	= $dom->save();
				}
			}
		}
		$dom->clear(); unset($dom);	
		return $text;
	}
开发者ID:rhumme,项目名称:myApi,代码行数:40,代码来源:myApiDom.php

示例3: buffer

	function buffer(){
		ob_start();
		require(ROOT.DS.MAIN.DS.'reflex'.DS.'templates'.DS.$this->_template.'.php');
		$html_string = ob_get_clean();
		$html_string = str_replace('<php>','<?php ',$html_string);
		$html_string = str_replace('</php>',' ?>',$html_string);
		require(ROOT.DS.MAIN.DS.'library'.DS.'simple_html_dom.php');
		$html = new simple_html_dom();
		$html->load($html_string);
		$b = $html->find('base',0);
		if(!isset($b)){
			$html->find('head',0)->innertext = '<base href="http://'.THIS_DOMAIN.'/"/>'.$html->find('head',0)->innertext;
			$html_string = $html->save();
		}
		$fileloc = fopen(ROOT.DS.MAIN.DS.'reflex'.DS.'admin'.DS.'documents'.DS.'dont_touch_this_file.php', 'w');
		fwrite($fileloc,$html_string);
		fclose($fileloc);
	}
开发者ID:nathanjsweet,项目名称:Reflexion,代码行数:18,代码来源:preview_post.internal.php

示例4: foreach

                      <li>Coffee</li>
                      <li>Tea</li>
                      <li>Milk</li>
                    </ul>
                  <li>Tea</li>
                  <li>Milk</li>
                </ul>
              <li>Tea</li>
              <li>Milk</li>
            </ul>
            </body>
            </html>';
//creating DOM object
$domObject1 = new simple_html_dom($htmlText);
//dumping it to a string
$str = $domObject1->save();
echo $str;
//Printing nested elements
foreach ($domObject1->find('ul') as $ul) {
    foreach ($ul->find('li') as $li) {
        echo $li->plaintext . "\n";
    }
}
echo "\n";
//Accesing direct descendant elements
$domObject1->find('ul ul ul li', 2)->plaintext = 'Not enough milk! :(';
echo $domObject1->find('ul')[0]->children()[0]->plaintext . "\n";
//prints 'Coffee'
echo $domObject1->find('ul', 0)->children(0)->plaintext . "\n";
//prints the same as the last line
echo $domObject1->find('ul', 2)->children(2)->plaintext . "\n";
开发者ID:AnhellO,项目名称:scripting_experiments,代码行数:31,代码来源:get_ul_tags_DOMparser.php

示例5: inlineCss

 function inlineCss($html)
 {
     // パースしやすいように無駄な空白や改行を取り除く
     $html = preg_replace('!\\s+!', ' ', trim($html));
     // headからCSSファイルを取り出す
     preg_match('/<head>.*<\\/head>/', $html, $match);
     $dom = new simple_html_dom();
     $dom->load($match[0], true);
     $css = '';
     foreach ($dom->find('link[type=text/css]') as $e) {
         if (is_object($e)) {
             $url = 'http://' . env('HTTP_HOST') . $e->href;
             $css .= file_get_contents($url);
         }
     }
     $dom->clear();
     // CSSのパース
     $styles = $this->_parseCss($css);
     // a:*をヘッダ内に格納
     $css = '<style type="text/css"> <![CDATA[' . "\n";
     $links = array('a:link', 'a:hover', 'a:focus', 'a:visited');
     foreach ($links as $link) {
         if (isset($styles[$link])) {
             $css .= $link . '{' . $styles[$link] . '}' . "\n";
             unset($styles[$link]);
         }
     }
     $css .= ']]> </style>';
     $html = preg_replace('/<\\/head>/', $css . ' </head>', $html);
     // bodyを取り出す
     preg_match('/<body[^>]*>.*<\\/body>/', $html, $match);
     $dom = new simple_html_dom();
     $dom->load($match[0], true);
     // インライン化
     foreach ($styles as $element => $style) {
         $es = $dom->find($element);
         foreach ($es as $e) {
             if (is_object($e)) {
                 if (isset($e->attr['style'])) {
                     $style .= str_replace('"', '', $e->attr['style']);
                 }
                 $e->attr = array_merge($e->attr, array('style' => '"' . $style . '"'));
             }
         }
     }
     // session_idの付与
     $targets = array('a', 'form');
     foreach ($targets as $target) {
         $es = $dom->find($target);
         foreach ($es as $e) {
             if ('a' === $target && isset($e->attr['href'])) {
                 $url = $e->attr['href'];
                 $e->attr['href'] = $this->_url($url);
             }
             if ('form' === $target && isset($e->attr['action'])) {
                 $url = $e->attr['action'];
                 $e->attr['action'] = $this->_url($url);
             }
         }
     }
     // html再構成
     $body = $dom->save();
     $dom->clear();
     $html = preg_replace("/<body>.*<\\/body>/", $body, $html);
     $html = preg_replace("/> /", ">\n", $html);
     $html = preg_replace("/ </", "\n<", $html);
     return $html;
 }
开发者ID:slywalker,项目名称:mobile_kit,代码行数:68,代码来源:render.php

示例6: flash_replace

function flash_replace($texte_a_formater)
{
    $html = new simple_html_dom();
    $html->load($texte_a_formater);
    $flv_found = 0;
    foreach ($html->find("object") as $element) {
        // SE E' RELATIVO A UN FILE FLV
        if (substr(strtoupper($element->data), -4) == ".FLV" || substr(strtoupper($element->data), -4) == ".MP4") {
            $flv_found++;
            $flv_file = $element->data;
            $flv_width = $element->width;
            $flv_height = $element->height;
            $flv_type = $element->type;
            $element->outertext = "";
            $flv_code = "";
            /* $flv_code .="<object type=\"".$flv_type."\" data=\"".$topdir.$v_Nom_Rep_Admin."/include/editeurs/ressources/player_flv_multi.swf\" width=\"".$flv_width."\" height=\"".$flv_height."\">
                   <param name=\"movie\" value=\"".$topdir.$v_Nom_Rep_Admin."/include/editeurs/ressources/player_flv_multi.swf\" />
                   <param name=\"allowFullScreen\" value=\"true\" />
                   <param name=\"FlashVars\" value=\"flv=".$flv_file."&amp;showstop=0&amp;showvolume=1&amp;showtime=0&amp;showopen=0&amp;margin=0&amp;autoplay=0&amp;showiconplay=1&amp;loop=0&amp;volume=150&amp;showfullscreen=1&amp;buffer=10&amp;ondoubleclick=fullscreen&amp;buffermessage=&amp;allowfullscreen=true\" />
               </object>";*/
            $flv_code .= '<object id="player" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" name="player" width="100%" height="385">
						<param name="movie" value="media/jwplayer/player.swf" />
						<param name="allowfullscreen" value="true" />
						<param name="allowscriptaccess" value="always" />
						<param name="flashvars" value="file=' . $flv_file . '&image=" />
						<embed
							type="application/x-shockwave-flash"
							id="player2"
							name="player2"
							src="media/jwplayer/player.swf"
							width="100%" 
							height="385"
							allowscriptaccess="always" 
							allowfullscreen="true"
							flashvars="file=' . $flv_file . '&image=" 
						/>
					</object>';
            $element->outertext = $element->outertext . $flv_code;
        }
    }
    if ($flv_found > 0) {
        $actu_texte_format = $html->save();
    } else {
        $actu_texte_format = $texte_a_formater;
    }
    return $actu_texte_format;
    $html->clear();
    unset($html);
}
开发者ID:unisexx,项目名称:thaigcd2015,代码行数:49,代码来源:dom_helper.php

示例7: trim

$html_dom->load($buf);
$toc = '';
$last_level = 0;
foreach ($html_dom->find('h1,h2,h3,h4,h5,h6') as $h) {
    $inner_text = trim($h->innertext);
    $id = str_replace(' ', '_', $inner_text);
    $id = preg_replace('%[^a-zA-Z0-9_-]%', '', $id);
    $h->id = $id;
    // add id attribute so we can jump to this element
    $level = intval($h->tag[1]);
    if ($level > $last_level) {
        $toc .= "<ul>";
    } else {
        $toc .= str_repeat('</li></ul>', $last_level - $level);
        $toc .= '</li>';
    }
    $toc .= "<li><a href='#{$id}'>{$inner_text}</a>";
    $last_level = $level;
}
$toc .= str_repeat('</li></ul>', $last_level);
// Replace placeholder with this:
$html_dom->find('div[id=word-table-of-contents]', 0)->innertext = $toc;
$html_with_toc = $html_dom->save();
$html_dom->clear();
unset($html_dom);
print $html_with_toc;
?>
    
  </div>
</body>
</html>
开发者ID:samogot,项目名称:rura-convertors,代码行数:31,代码来源:index.php

示例8: BB_HTMLPurifyForWYMEditor

function BB_HTMLPurifyForWYMEditor($data, $options)
{
    if (isset($options["shortcodes"]) && (!$options["shortcodes"] || !isset($options["shortcode_placeholder"]) || !isset($options["shortcode_ids"]))) {
        unset($options["shortcodes"]);
    }
    if (isset($options["validate_img"]) && !$options["validate_img"]) {
        unset($options["validate_img"]);
    }
    // Let HTML Purifier do the heavy-lifting (removes XSS, etc).
    // If the 'p' tag ever accepts more than 'class', the 'class' extraction code while generating pretty HTML will need rewriting.
    $config = array("Attr.EnableID" => isset($options["shortcodes"]), "HTML.Allowed" => "p[class],strong,em,sup,sub,a[title|href],ul[class],ol[class],li[class],h1[class],h2[class],h3[class],h4[class],h5[class],h6[class],pre[class],blockquote[class],img[" . (isset($options["shortcodes"]) ? "id|class|" : "") . "src|alt]");
    if (isset($options["allowed_classes"]) && is_array($options["allowed_classes"])) {
        $config["Attr.AllowedClasses"] = $options["allowed_classes"];
    }
    $data = BB_HTMLPurify($data, $config);
    // Replace newlines outside of 'pre' tags with spaces.
    $data2 = "";
    $lastpos = 0;
    $pos = strpos($data, "<pre");
    $pos2 = strpos($data, "</pre>");
    $pos3 = strpos($data, ">", $pos);
    while ($pos !== false && $pos2 !== false && $pos3 !== false && $pos3 < $pos2) {
        $data2 .= Str::ReplaceNewlines(" ", substr($data, $lastpos, $pos3 + 1 - $lastpos));
        $data2 .= Str::ReplaceNewlines("\n", substr($data, $pos3 + 1, $pos2 - $pos3 - 1));
        $data2 .= "</pre>";
        $lastpos = $pos2 + 6;
        $pos = strpos($data, "<pre", $lastpos);
        $pos2 = strpos($data, "</pre>", $lastpos);
        $pos3 = strpos($data, ">", $pos);
    }
    $data = $data2 . Str::ReplaceNewlines(" ", substr($data, $lastpos));
    // Process the DOM to create consistent input and output.
    require_once ROOT_PATH . "/" . SUPPORT_PATH . "/simple_html_dom.php";
    $html = new simple_html_dom();
    $html2 = new simple_html_dom();
    // Make sure all elements and text are inside a top-level tag.
    $html->load("<body>" . $data . "</body>");
    $bodytags = array("p" => true, "ul" => true, "ol" => true, "h1" => true, "h2" => true, "h3" => true, "h4" => true, "h5" => true, "h6" => true, "pre" => true, "blockquote" => true);
    $rows = $html->find("body text");
    foreach ($rows as $row) {
        $row2 = $row;
        while ($row2->parent()->tag != "body") {
            $row2 = $row2->parent();
        }
        if (!isset($bodytags[$row2->tag])) {
            $row2->outertext = "<p>" . $row2->outertext . "</p>";
        }
    }
    $html->load($html->save());
    $body = $html->find("body", 0);
    $rows = $body->children();
    foreach ($rows as $row) {
        if (!isset($bodytags[$row->tag])) {
            $row->outertext = "<p>" . $row->outertext . "</p>";
        }
    }
    $html->load($html->save());
    $rows = $html->find("blockquote text");
    foreach ($rows as $row) {
        $row2 = $row;
        while ($row2->parent()->tag != "blockquote") {
            $row2 = $row2->parent();
        }
        if (!isset($bodytags[$row2->tag])) {
            $row2->outertext = "<p>" . $row2->outertext . "</p>";
        }
    }
    $html->load($html->save());
    // Clean up 'li' elements.  WYMEditor only allows a limited number of tags (a good thing).
    $rows = $html->find("li");
    foreach ($rows as $row) {
        $row->innertext = strip_tags($row->innertext, "<strong><em><sup><sub><a><img><ul><ol><li>");
    }
    // Replace &nbsp; with spaces.
    $data = $html->save();
    $data = str_replace(array("&nbsp;", "&#160;", " "), array(" ", " ", " "), $data);
    $html->load($data);
    // Process shortcodes or images.
    if (isset($options["shortcodes"])) {
        // Remove invalid 'img' tags.
        $rows = $html->find("img");
        foreach ($rows as $row) {
            if (!isset($row->class) || $row->class != $options["shortcode_placeholder"] || !isset($row->id) || !isset($options["shortcode_ids"][$row->id])) {
                $row->outertext = "";
            } else {
                $row->src = $options["shortcode_ids"][$row->id];
            }
        }
        $html->load($html->save());
        // Move text inside the special 'p.wrap-shortcode' class to separate 'p' tags.
        $rows = $html->find("p.wrap-shortcode img");
        foreach ($rows as $row) {
            $str = $row->parent()->innertext;
            $pos = strpos($str, "<img ");
            $pos2 = strpos($str, "/>", $pos);
            $str2 = substr($str, 0, $pos);
            $str3 = substr($str, $pos2 + 2);
            $str = substr($str, $pos, $pos2 + 2 - $pos);
            if ($str2 != "" || $str3 != "") {
                $row->parent()->outertext = ($str2 == "" ? "" : "<p>" . $str2 . "</p>") . "<p class=\"" . $row->parent()->class . "\">" . $str . "</p>" . ($str3 == "" ? "" : "<p>" . $str3 . "</p>");
//.........这里部分代码省略.........
开发者ID:harrylongworth,项目名称:tv-bb,代码行数:101,代码来源:bb_functions.php

示例9: array

 function cc2_bootstrap_comment_form_fields($arrFields = array())
 {
     $return = $arrFields;
     $is_horizontal = get_theme_mod('cc2_comment_form_orientation', 'horizontal') == 'horizontal' ? true : false;
     //new __debug( $arrFields, 'arrFields' );
     // mostly for reference
     $aria_req = ' aria-required="true" ';
     $commenter = array('comment_author' => '', 'comment_author_email' => '', 'comment_author_url' => '');
     // mostly for reference
     $arrDefaultFields = array('author' => '<p class="comment-form-author">' . '<label for="author">' . __('Name', 'domainreference') . '</label> ' . (!empty($req) ? '<span class="required">*</span>' : '') . '<input id="author" name="author" type="text" value="' . esc_attr($commenter['comment_author']) . '" size="30"' . $aria_req . ' /></p>', 'email' => '<p class="comment-form-email"><label for="email">' . __('Email', 'domainreference') . '</label> ' . (!empty($req) ? '<span class="required">*</span>' : '') . '<input id="email" name="email" type="text" value="' . esc_attr($commenter['comment_author_email']) . '" size="30"' . $aria_req . ' /></p>', 'url' => '<p class="comment-form-url"><label for="url">' . __('Website', 'domainreference') . '</label>' . '<input id="url" name="url" type="text" value="' . esc_attr($commenter['comment_author_url']) . '" size="30" /></p>');
     if (class_exists('simple_html_dom')) {
         // avoid nasty errors if out of some unknown reason the simple_html_dom class failed to be included
         $dom = new simple_html_dom();
         foreach ($arrDefaultFields as $strFieldName => $strHTML) {
             // use the default fields ONLY as reference, NOT for actual parsing!
             if (isset($return[$strFieldName]) != false) {
                 // reset variables
                 $strEditedHTML = '';
                 // load snippets
                 $dom->load($return[$strFieldName]);
                 // find input tag
                 $elem = $dom->find('input#' . $strFieldName, 0);
                 // add class if not already set
                 $elem->class = cc2_htmlClass::addClass($elem->class, 'form-control');
                 /**
                  * Wrap element if horizontal form is enabled
                  * Also see @http://simplehtmldom.sourceforge.net/manual.htm > How to access the HTML element's attributes? > Tips
                  */
                 if ($is_horizontal != false) {
                     // find label ...
                     $label_elem = $dom->find('label', 0);
                     // .. and add class
                     $label_elem->class = cc2_htmlClass::addClass($label_elem->class, array('col-md-2', 'col-lg-2', 'control-label'));
                     // wrap parent element
                     $elem->parent()->outertext = '<div class="col-md-10 col-lg-10">' . $elem->parent()->outertext . '</div>';
                 }
                 // return edited data
                 $strEditedHTML = $dom->save();
                 // Optionally group field
                 if ($is_horizontal != false) {
                     $strEditedHTML = sprintf('<div class="form-group">%s</div>', $strEditedHTML);
                 }
                 if (!empty($strEditedHTML)) {
                     $return[$strFieldName] = $strEditedHTML;
                 }
                 // uncomment the following line for testing purposes (ie. to see whether this was ACTUALLY passed throught the filter or not)
                 //$return[ $strFieldName ] .= '<!-- parsed field: ' . $strFieldName . ' -->';
             }
         }
     }
     return $return;
 }
开发者ID:igniterealtime,项目名称:community-plugins,代码行数:52,代码来源:template-tags.php

示例10: process_content


//.........这里部分代码省略.........
      
      #article-{$md5} > h1 {
        font: bold 18px/18px helvetica neue, helvetica, sans-serif;
        margin-top: 0;
      }
      
      #article-{$md5} > .meta {
        font-size: 9px;
        text-transform: none;
      }
      
      #article-{$md5} > .meta .short-url {
        display: none;
      }
      
      #article-{$md5} > .meta .full-url {
        display: block;
      }
      
      #article-{$md5} > h1,
      #article-{$md5} > .meta,
      #article-{$md5} p {
        padding-left: 0;
        padding-right: 0;
      }
      
    }
    
    </style>
  </head>
  <body>
    <!-- occupy.here meta start -->
    <script id="meta">
    var meta = {$json};
    </script>
    <!-- occupy.here meta end -->
    <div id="article-{$md5}">
      <!-- occupy.here article start -->
      <h1>{$article->title}</h1>
      <div class="meta">
        {$meta}
      </div>
      <div class="content">
        {$content}
      </div>
      <!-- occupy.here article end -->
    </div>
    <ol id="article-{$md5}-links" class="article-links">
    </ol>
  </body>
</html>
END;
        $html = new simple_html_dom();
        $html->load($content, true, false);
        $images = array();
        foreach ($html->find('img') as $img) {
            $images[] = urldecode($img->src);
        }
        $image_data = array();
        foreach ($images as $url) {
            if (!preg_match('/\\.(\\w+)$/', $url, $matches)) {
                continue;
            }
            list(, $ext) = $matches;
            $ext = strtolower($ext);
            if (empty($image_types[$ext])) {
                continue;
            }
            $type = $image_types[$ext];
            $data = download_file($url);
            $tmp = tempnam(GRID_DIR . "/public/uploads/tmp", basename($url));
            file_put_contents($tmp, $data);
            list($width, $height) = getimagesize($tmp);
            unlink($tmp);
            $base64 = base64_encode($data);
            $data_url = "data:{$type};base64,{$base64}";
            if (!empty($data)) {
                $img_list = $html->find("img[src={$url}]");
                foreach ($img_list as $img) {
                    $img->src = $data_url;
                    $img->width = $width;
                    $img->height = $height;
                }
            }
        }
        $links = array();
        foreach ($html->find("#article-{$md5} .content a[href]") as $link) {
            $links[] = urldecode($link->href);
        }
        if (!empty($links)) {
            $links = '<li>' . implode("</li>\n<li>", $links) . "</li>\n";
            list($ol) = $html->find("#article-{$md5}-links");
            $ol->innertext = $links;
        } else {
            list($ol) = $html->find("#article-{$md5}-links");
            $ol->outertext = '';
        }
        return $html->save();
    }
}
开发者ID:our,项目名称:net,代码行数:101,代码来源:import_library.php

示例11: _Process_Recieved_Content

 public static function _Process_Recieved_Content($_HTML_CONTENT, $_Cung1, $_Cung2, $_Summary, $_SourceUri, $_LinkId, $_ImageLink)
 {
     if ($_HTML_CONTENT != '') {
         // Create a DOM object
         require_once Kohana::find_file('classes', 'vendor/simple_html_dom');
         $html = new simple_html_dom();
         // Load HTML from a string
         $html->load($_HTML_CONTENT);
         unset($_HTML_CONTENT);
         if ($html) {
             $story = new Model_Horoscope_XungHop();
             $ktra = true;
             if ($_Cung1 == '-' || $_Cung2 == '-') {
                 $ktra = FALSE;
             }
             $story->cung_1 = $_Cung1;
             $story->cung_2 = $_Cung2;
             $story->alias = $_Cung1 . '_' . $_Cung2;
             if (self::CheckRecordByAlias($story->alias)) {
                 $story->alias = $_Cung1 . '__' . $_Cung2;
             }
             $story->tom_tat = $_Summary;
             $story->ngay_tao = date("Y-m-d");
             $story->url_nguon = $_SourceUri;
             $story->auto_get = true;
             //begin find elements
             #find date post
             $date = $html->find('div[class="datetime"]', 0);
             if ($date) {
                 $d = explode(',', $date->plaintext);
                 if (isset($d[1])) {
                     //var_dump($d);
                     //exit;
                     $d1 = explode(' ', trim($d[1]));
                     list($ngay, $thang, $nam) = explode('/', $d1[0]);
                     $story->source_date = date("Y-m-d h:i:s", strtotime($nam . '-' . $thang . '-' . $ngay . ' ' . $d1[1] . ':00'));
                 } else {
                     $story->source_date = date("Y-m-d h:i:s");
                 }
             } else {
                 $story->source_date = date("Y-m-d h:i:s");
             }
             //find content
             $content = $html->find('div[id="content_document"]', 0);
             if ($content) {
                 $string = $content->innertext;
                 # remove white space
                 $string = str_replace(array("\r\n", "\r", "\n", "\t"), '', $string);
                 $string = preg_replace('/(<!--.+?-->)/s', '', $string);
                 $string = preg_replace('@<a[^>]*>(.*)</a>@ismUx', '$1', $string);
                 $string = preg_replace('/<p[ ]class="pAuthor">.*<\\/p>/ismxU', '', $string);
                 $string = preg_replace('/<p[ ]class="pSource">.*<\\/p>/ismxU', '', $string);
                 $story->noi_dung = $string;
                 $story->kiem_tra = $ktra;
                 $story->save();
                 if ($story->identifier()) {
                     if ($ktra) {
                         //get image thumb => save to disk => update record in db
                         $path = 'assets/horoscope/xung-hop/' . $story->alias . '/';
                         $img = Vendor_Crawler::get_file_from_url_by_curl($_ImageLink, $save_to_path = $path, $file_name_to_set = $story->alias . '-thumb');
                         if ($img) {
                             //check file size, if = 0 -> mean file can't get
                             if (filesize($img) == 0) {
                                 @copy('assets/horoscope/thumb_140.jpg', $img);
                             }
                             $story->hinh_anh = '/' . $img;
                         } else {
                             $story->hinh_anh = $_ImageLink;
                         }
                     } else {
                         $story->hinh_anh = $_ImageLink;
                     }
                     if ($ktra != FALSE) {
                         //print_r($img);
                         $html2 = new simple_html_dom();
                         $html2->load($story->noi_dung);
                         $images = $html2->find('img');
                         if (count($images) > 0) {
                             for ($i = 0; $i < count($images); $i++) {
                                 unset($images[$i]->onclick);
                                 $file_name = 'anh_' . $i + 1;
                                 $get_file = Vendor_Crawler::get_file_from_url_by_curl($images[$i]->src, $save_to_path = $path, $file_name_to_set = $file_name);
                                 if (filesize(ltrim($get_file, '/')) == 0) {
                                     unset($images[$i]);
                                 } else {
                                     $images[$i]->src = '/' . $get_file;
                                 }
                             }
                         }
                         $story->noi_dung = $html2->save();
                         $html2->clear();
                         unset($html2);
                     } else {
                         $story->hinh_anh = $_ImageLink;
                     }
                     $story->save();
                     //insert done => update from tmp table
                     Model_Horoscope_XungHopLinkBLL::UpdateRecordStatus($_LinkId);
                     self::_print_to_console('Done: ' . $_SourceUri);
                 } else {
//.........这里部分代码省略.........
开发者ID:abdul-baten,项目名称:hbcms,代码行数:101,代码来源:xunghopbll.php

示例12: convert

 /**
  * Convert Embedded CSS to Inline
  * @param string $document
  * @param bool $strip_class strip attribute class
  */
 function convert($document, $strip_class = false)
 {
     // Debug mode
     // Debug mode will output selectors and styles that are detected in the embedded CSS
     $debug = false;
     // Extract the CSS
     preg_match('/<style[^>]+>(?<css>[^<]+)<\\/style>/s', $document, $matches);
     // If no CSS style
     if (empty($matches)) {
         return $document;
     }
     // Strip out extra newlines and tabs from CSS
     $css = preg_replace("/[\n\r\t]+/s", "", $matches['css']);
     // Extract each CSS declaration
     preg_match_all('/([-a-zA-Z0-9_ ,#\\.]+){([^}]+)}/s', $css, $rules, PREG_SET_ORDER);
     // For each CSS declaration, make the selector and style declaration into an array
     // Array index 1 is the CSS selector
     // Array index 2 is the CSS rule(s)
     foreach ($rules as $rule) {
         // If the CSS selector is multiple, we should split them up
         if (strstr($rule['1'], ',')) {
             // Strip out spaces after a comma for consistency
             $rule['1'] = str_replace(', ', ',', $rule['1']);
             // Unset any previous combos
             unset($selectors);
             // Make each selector declaration its own
             // Create a separate array element in styles array for each declaration
             $selectors = explode(',', $rule['1']);
             foreach ($selectors as $selector) {
                 $selector = trim($selector);
                 if (!isset($styles[$selector])) {
                     $styles[$selector] = '';
                 }
                 $styles[$selector] .= trim($rule['2']);
                 if ($debug) {
                     echo $selector . ' { ' . trim($rule['2']) . ' }<br/>';
                 }
             }
         } else {
             $selector = trim($rule['1']);
             if (!isset($styles[$selector])) {
                 $styles[$selector] = '';
             }
             $styles[$selector] .= trim($rule['2']);
             if ($debug) {
                 echo $selector . ' { ' . trim($rule['2']) . ' }<br/>';
             }
         }
     }
     // DEBUG: Show selector and declaration
     if ($debug) {
         echo '<pre>';
         foreach ($styles as $selector => $styling) {
             echo $selector . ':<br>';
             echo $styling . '<br/><br/>';
         }
         echo '</pre><hr/>';
     }
     // For each style declaration, find the selector in the HTML and add the inline CSS
     if (!empty($styles)) {
         // Load Simple HTML DOM helper
         require_once 'simple_html_dom.php';
         $html_dom = new simple_html_dom();
         // Load in the HTML without the head and style definitions
         $html_dom->load(preg_replace('/\\<head\\>(.+?)\\<\\/head>/s', '', $document));
         foreach ($styles as $selector => $styling) {
             foreach ($html_dom->find($selector) as $element) {
                 // Check to make sure the style doesn't already exist
                 if (!stristr($element->style, $styling)) {
                     if (strlen($element->style) > 0 && substr(rtrim($element->style), -1) !== ';') {
                         $element->style .= ';';
                     }
                     // If there is any existing style, this will append to it
                     $element->style .= $styling;
                 }
             }
         }
         $inline_css_message = $html_dom->save();
         // Strip class attribute
         if ($strip_class === true) {
             $inline_css_message = preg_replace('~(<[a-z0-0][^>]*)(\\s(?:class|id)\\s*=\\s*(([\'"]).*?\\4|[^\\s]*))~usi', '\\1', $inline_css_message);
         }
         $html_dom->__destruct();
         return $inline_css_message;
     }
     return false;
 }
开发者ID:NYC2015,项目名称:team-12,代码行数:92,代码来源:instyle.php

示例13: strip_html

 public static function strip_html($html, $scripts = true, $styles = true)
 {
     $obj = new simple_html_dom();
     $obj->load($html);
     if ($styles) {
         $elems = $obj->find("style");
         foreach ($elems as $elem) {
             $elem->outertext = "";
         }
         $elems = $obj->find("link");
         foreach ($elems as $elem) {
             $elem->outertext = "";
         }
     }
     if ($scripts) {
         $elems = $obj->find("script");
         foreach ($elems as $elem) {
             $elem->outertext = "";
         }
     }
     return $obj->save();
 }
开发者ID:JerzyM,项目名称:concerto-platform,代码行数:22,代码来源:Template.php

示例14: MYPDF


//.........这里部分代码省略.........
     $html .= '<h1>' . html_entity_decode($post->post_title, ENT_QUOTES) . '</h1>';
     // Display author name is set in config
     if (isset($this->options['authorDetail']) and !$this->options['authorDetail'] == '') {
         $author = get_the_author_meta($this->options['authorDetail'], $post->post_author);
         $html .= '<p><strong>Author : </strong>' . $author . '</p>';
     }
     // Display category list is set in config
     if (isset($this->options['postCategories'])) {
         $categories = get_the_category_list(', ', '', $post);
         if ($categories) {
             $html .= '<p><strong>Categories : </strong>' . $categories . '</p>';
         }
     }
     // Display tag list is set in config
     if (isset($this->options['postTags'])) {
         $tags = get_the_tags($post->the_tags);
         if ($tags) {
             $html .= '<p><strong>Tagged as : </strong>';
             foreach ($tags as $tag) {
                 $tag_link = get_tag_link($tag->term_id);
                 $html .= '<a href="' . $tag_link . '">' . $tag->name . '</a>';
                 if (next($tags)) {
                     $html .= ', ';
                 }
             }
             $html .= '</p>';
         }
     }
     // Display date if set in config
     if (isset($this->options['postDate'])) {
         $date = get_the_date($post->the_date);
         $html .= '<p><strong>Date : </strong>' . $date . '</p>';
     }
     // Display featured image if set in config and post/page
     if (isset($this->options['featuredImage'])) {
         if (has_post_thumbnail($post->ID)) {
             $html .= get_the_post_thumbnail($post->ID);
         }
     }
     $html .= htmlspecialchars_decode(htmlentities($post->post_content, ENT_NOQUOTES, 'UTF-8', false), ENT_NOQUOTES);
     $dom = new simple_html_dom();
     $dom->load($html);
     foreach ($dom->find('img') as $e) {
         // Try to respect alignment of images
         // This code is under heavy development, so well-commented
         // First, try to determine the desired alignment from the class attribute inserted by WP.
         // Note that as we're still working with HTML vs CSS, and HTML uses "middle" for center, we
         // have two variables to fill for that possibility.
         if (preg_match('/alignleft/i', $e->class)) {
             $imgalign = 'left';
         } elseif (preg_match('/alignright/i', $e->class)) {
             $imgalign = 'right';
         } elseif (preg_match('/aligncenter/i', $e->class)) {
             $imgalign = 'center';
             $htmlimgalign = 'middle';
         } else {
             $imgalign = 'none';
         }
         // These options apply to all images. Remove any embedded class, which is ignored by TCPDF, anyway;
         // then set an align attribute inside the img tag (for HTML), and finally, a style tag (for CSS).
         $e->class = null;
         $e->align = $imgalign;
         if (isset($htmlimgalign)) {
             $e->style = 'float:' . $htmlimgalign;
         } else {
             $e->style = 'float:' . $imgalign;
         }
         // Try to identify SVG images vs JPG or PNG, so that we treat them correctly. Currently, we don't
         // handle these well, so we'll just swap them with placeholder links.
         // Note that we're still using div tags to (harshly) force images into some semblance of horizontal
         // position. This precludes text wrap, and ultimately (if we can get the above working) should be
         // replaced (unless we need the text link) with the CSS in the img tag (if TCPDF will respect it).
         if (strtolower(substr($e->src, -4)) == '.svg') {
             $e->src = null;
             $e->outertext = '<div style="text-align:' . $imgalign . '">[ SVG: ' . $e->alt . ' ]</div><br/>';
         } else {
             $e->outertext = '<div style="text-align:' . $imgalign . '">' . $e->outertext . '</div>';
         }
     }
     $html = $dom->save();
     $dom->clear();
     // Test TCPDF functions to include here.
     // Presently, we're working with trying to get PDF forms working. These options should go into the admin UI.
     // set default form properties
     $pdf->setFormDefaultProp(array('lineWidth' => 1, 'borderStyle' => 'solid', 'fillColor' => array(255, 255, 200), 'strokeColor' => array(255, 128, 128)));
     // Print text using writeHTML
     $pdf->writeHTML($html, true, 0, true, 0);
     // ---------------------------------------------------------
     // Close and output PDF document
     // This method has several options, check the source code documentation for more information.
     // Create directory if not exist
     if (!is_dir(WPPTOPDFENH_CACHE_DIR)) {
         mkdir(WPPTOPDFENH_CACHE_DIR, 0777, true);
     }
     if ($forceDownload) {
         $pdf->Output($filePath, 'FI');
     } else {
         $pdf->Output($filePath, 'F');
     }
 }
开发者ID:tinggao,项目名称:woofWarrior,代码行数:101,代码来源:wp-post-to-pdf-enhanced.php

示例15: filter_the_content

 public function filter_the_content($content = null)
 {
     $return = $content;
     // sanity check: do not parse content if it doesnt contain html tags, or class-attributes (maybe .. )
     if (!empty($return) && strpos($return, '<') !== false && strpos($return, '>') !== false) {
         $dom = new simple_html_dom();
         $dom->load($return);
         /**
         * Comment buttons
         * @see http://codex.wordpress.org/Function_Reference/comment_form#Default_.24args_array
         * 
         * Original code: 
         // here for each comment reply link of wordpress
         			jQuery( '.comment-reply-link' ).addClass( 'btn btn-primary' );
         
         			// here for the submit button of the comment reply form
         			jQuery( '#commentsubmit' ).addClass( 'btn btn-primary' );	
         */
         foreach ($dom->find('.comment-reply-link, #commentsubmit') as $elem) {
             if (!isset($elem->class)) {
                 $elem->class = 'btn btn-primary';
             } elseif (!empty($elem->class) != false && stripos($elem->class, 'btn btn-primary') === false) {
                 $elem->class = trim($elem->class . ' btn btn-primary');
                 // better than .=, cause you never know ... might be an empty class="" construct ^_^
             }
         }
         /**
          * there can only be ONE id .. ^_^(ID = _unique_ IDentifier)
          * NOTE: Redundant / obsolete.
          */
         /*
         if( stripos($dom->find('#commentsubmit',0)->class, 'btn btn-primary' ) === false ) {
         	$dom->find('#commentsubmit',0)->class = trim( $dom->find('#commentsubmit', 0)->class . ' btn btn-primary');
         }
         */
         $return = $dom->save();
     }
     return $return;
 }
开发者ID:igniterealtime,项目名称:community-plugins,代码行数:39,代码来源:bootstrap-supplements.php


注:本文中的simple_html_dom::save方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。