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


PHP DOMNode::loadHTML方法代码示例

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


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

示例1: trimFromHTMLString

 /**
  * Dans le code $fullHtml, remplace la chaîne $needle par l'élément $replace. Cette fonctionnalité sert par exemple à insérer un
  * bouton 'lire la suite' à la place du marqueur {{LIRE_LA_SUITE}} dans un bloc de texte qu'on ne veut pas afficher entièrement.
  * @param string $fullHtml Le code HTML à traiter
  * @param string $needle   Le marqueur
  * @param string $replace  Le code de remplacement
  * @return string|bool Le code HTML modifié, false en cas d'erreur
  * @throws \Exception
  */
 public function trimFromHTMLString($fullHtml, $needle, $replace = "")
 {
     $text = trim(html_entity_decode($fullHtml));
     if (!Inflector::seemsUtf8($text)) {
         // @internal Conserver ce bloc car le serveur de production pose des problèmes d'encodage...
         require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'ForceUTF8' . DIRECTORY_SEPARATOR . 'Encoding.php';
         $text = ForceUTF8\Encoding::toUTF8($text);
     }
     // On charge le texte dans un DOMDocument pour le manipuler proprement
     $this->dom = new DOMDocument();
     $htmlHead = '<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><title>***</title></head><body>';
     $htmlFoot = '</body></html>';
     if (!$this->dom->loadHTML($htmlHead . $text . $htmlFoot)) {
         Yii::log(h::_("Erreur sur loadXML()\n{$text}", __FILE__, __LINE__, __METHOD__), CLogger::LEVEL_ERROR);
         return false;
     }
     // On récupère le noeud texte contenant $needle.
     // Si aucun noeud n'a été trouvé, on renvoie le texte complet tel qu'on l'a reçu.
     $zeunode = $this->findStringNode($needle, $this->dom);
     if (!$zeunode) {
         Yii::log(h::_("!!!! Pas de noeud contenant -> {$needle} <-", __FILE__, __LINE__, __METHOD__), 'debug');
         Yii::log(h::_(h::xmlTreeDump($this->dom), __FILE__, __LINE__, __METHOD__), 'debug');
         return $fullHtml;
     }
     // On supprime tout le texte après $needle et tous les noeuds suivant $zeunode
     $zeunode->data = preg_replace("/({$needle}).*/ms", "\$1", $zeunode->data);
     $this->removeNextNodes($zeunode);
     $out = $this->dom->saveHTML();
     // On retire le code HTML ajouté de part et d'autre de $text
     // On remplace le marqueur $needle par le code HTML $replace
     if (($pos = strpos($out, $htmlHead)) === false) {
         Yii::log(h::_("Erreur sur : strpos({$htmlHead}, {$out})", __FILE__, __LINE__, __METHOD__), CLogger::LEVEL_ERROR);
     } else {
         $out = substr($out, $pos + strlen($htmlHead));
     }
     $out = str_replace($htmlFoot, '', $out);
     $out = trim(preg_replace("/{$needle}/", $replace, $out));
     return $out;
 }
开发者ID:ChristopheBrun,项目名称:hLib,代码行数:48,代码来源:DOMHelper.php


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