PHP Simple HTML DOM Parserを使用している場合、改行コード
は削除されているのが普通ですか?改行を保持する - 単純なHTML DOMパーサー
答えて
私はHTMLを処理後に簡単に編集できるようにしなければならないので、これも苦労しました。
SimpleHTMLDOM
スクリプト$stripRN
には真偽値がありますが、デフォルトではtrue
に設定されています。 HTML内の\r
,\n
または\r\n
タグを削除します。
はfalse
(スクリプト内のいくつかの出現箇所。)にVARを設定し、あなたの問題が解決されます。あなたはfalseにすべて$stripRN
を変更する必要はありません
、この動作に影響を与え一方のみがライン816 ``である:マルチバイト関数は、多くの場合ではないので
// load html from string
function load($str, $lowercase=true, $stripRN=false, $defaultBRText=DEFAULT_BR_TEXT) {
はまた、ライン988を変更することを検討しますnon-wester-european言語を扱わないマシンにインストールされます。 V1.5でのオリジナルラインはすぐにスクリプトを壊す:
if (function_exists('mb_detect_encoding')) { $charset = mb_detect_encoding($this->root->plaintext . "ascii", $encoding_list = array("UTF-8", "CP1252")); } else $charset === false;
私はこれが古いですけど、私もこれを探していた、と改行の除去をオフにするオプションに内蔵され、実際にあった実現しました。ソースを編集する必要はありません。
PHPシンプルなHTML DOMパーサのload
機能は、複数の有益なパラメータをサポートしています。
load($str, $lowercase=true, $stripRN=false, $defaultBRText=DEFAULT_BR_TEXT)
load
関数を呼び出し、単に第三パラメータとしてfalse
を渡します。
$html = new simple_html_dom();
$html->load("<html><head></head><body>stuff</body></html>", true, false);
file_get_html
を使用している場合、これは9番目のパラメータです。
file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT)
編集:1のような他の段落として書式設定&見出しを保持したいはずですstr_get_html
については、それは別のオプション5番目のパラメータ(ありがとうyitwail)
str_get_html($str, $lowercase=true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
ありがとう..とても役に立ちました。私の人生の間、私はこれを遭遇するまでこれを行う方法について正式な言葉を見つけることができなかったので、それは私だけか、これらのパラメータは書かれていませんか? – userabuser
うれしい私は助けることができます。私はそれについて書類も見つけられませんでした。私は実際にこれを見つけたときに、この機能を自分自身に追加するためにライブラリをmodにしようとしていました。 – Hiteklife
@userabuser完全に文書化されていない; -/ –
だというplaintext
よりもinnertext
を使用することです結果を使用して独自の文字列クリーニングを実行します。
パフォーマンスが低下していることがわかりましたが、より細かい制御が可能です。
-1それは非常に専門的です。私はただあなたを叱るためにカルマを犠牲にしました。 –
DomDocumentで同じことをすることができるかどうか疑問に思っている人は、ここをクリックしてください。 - しかし、それは私がきちんとしたかったのコードスニペットを持っていたが、正確なラインは、それが(\ n)を含んでい壊す保持ダーティビット:(
だ これは私がやったことです....
// NOTE: If you're HTML isn't a full HTML document then expect DomDocument to
// start creating its own DOCTYPE, head and body tags.
// Convert \n into a pretend tag
$myContent = preg_replace("/[\n]/","<img src=\"slashN\" />",$myContent);
// Do your DOM stuff...
$dom = new DOMDocument;
$dom->loadHTML($myContent);
$dom->formatOutput = true;
$myContent = $dom->saveHTML();
// Remove the \n's that DOMDocument put in itself
$myContent = preg_replace("/[\n]/","",$myContent);
// Put my own \n's back
$myContent = preg_replace("/<img src=\"slashN\" \/>/i","\n",$myContent);
。
私の入力には\ nのみが含まれていることは間違いありませんが、\ r \ nや\ tを考慮する必要がある場合は、 。RNなど
- 1. php単純なhtml domパーサーが常にfalseを返す
- 2. 単純なHTML DOMパーサーが更新されない
- 3. PHP単純なHTML DOMパーサー表示なし
- 4. PHPを使用した廃棄単純なHTML DOMパーサー
- 5. 値を分割したPHPの単純なHTML DOMパーサー
- 6. PHP単純なHTML DOMパーサー - ブロック反復の操作方法
- 7. 単純なHTML DOMとテキスト
- 8. PHPで文書を保存する単純なHTML DOM
- 9. 単純なHTML DOMパーサー:選択したオプションの値を読み取る方法
- 10. PHPの単純なHTMLのDOMパーサー、どのようにJavascriptを解析?
- 11. PHPの単純なHTML DOMパーサーを使用したCant't Parse Webページ
- 12. PHP単純なHTML DOMパーサー - 要素のハイフネーションされた属性値を取得
- 13. 単純なhtml dom h1ヘッダーを
- 14. 単純なDOMパーサーが動作しない場合
- 15. ページング付きの単純なHTML DOM
- 16. .NET HTML DOMパーサー?
- 17. 単純なHTML DOMが正しく
- 18. PHPシンプルなHTML DOMパーサー - 単語を検索
- 19. MVCキャリッジリターンを保持 - HTMLでの改行
- 20. コメントのある領域内の要素を取得する方法PHPの単純なHTML DOMパーサー
- 21. テーブルから最初と最後の<tr>タグを削除するには - 単純なHTML DOMパーサー
- 22. PHP html単純なDOMパーサがnullを返す
- 23. 単純なMSBuild条件パーサーの作成
- 24. PHP単純なHTML DOMパーサーは、数字1の代わりに項目番号2で始まります。
- 25. データをCSVファイルにエクスポートし、PHPと単純なhtml dom
- 26. 単純なHTMLのDOMのfindは非オブジェクト
- 27. 単純なHTML DOM解析が動作しません
- 28. PHPの単純なHTML DOMパーサー奇妙な文字を返す - 掻爬から保護されていますか?
- 29. PHPを使用して外部URLを掻く方法簡単なhtml DOMパーサー
- 30. PHPでテキストを取得するシンプルなHTML DOMパーサー
シンプルなHTML DOMではなく、組み込みのDOMパーサーを使用します。組み込みのパーサは、一桁高速です。 http://whitlock.ath.cx/FastCrawl/benchmark.php –
すみません、@ByronWhitlockですが、単純なHTML DOM Parserを使用していません。DOMDocumentではできないたくさんのことを行うために使用しています。それはずっと簡単です!しかし、OH <シンプルなHTML DOM ParserのPHPエクステンション版ではどうしたらいいですか? –