2

URL から html ファイルを処理するスクリプトを作成しましたが、安価なホスト プロバイダーでの 30 年代のスクリプト ランタイム制限により、html を txt ファイルとして保存し、ローカルの WAMP サーバーから実行するようにスクリプトを変更する必要がありました。 .

各ファイルをロードし、必要なものを抽出してから、次のファイルに移動しようとしています。

ソースとしての URLfile_get_htmlは完全に仕事をしていました (必要な要素を見つけることができました) ソースとしての Txt ファイルfile_get_htmlが空のオブジェクトを返しています。

以下の投稿のアドバイスに基づいて、テキスト ファイルの内容を含む単一の大きな文字列を含む配列を作成するように変更file_get_htmlしました。file_get_contents

まず、file_get_contentsがデータを取得できることを確認します。可能であれば、データをDomfile_get_htmにロードできますsimplehtml

文字列を返す場合file_get_contents、どのように「データを simplehtml Dom にロードしますか?」

file_get_html を使用してファイルが読み取られない

次に、文字列をオブジェクトに変換しようとしましたstr_get_htmlが、これも機能しませんでした。

include('simple_html_dom.php');
$html = file_get_html('file.txt');
var_dump($html);

戻り値:object(simple_html_dom)[1] ただし、他のコンテンツや配列はありません。

include('simple_html_dom.php');
$html = file_get_contents('file.txt');
var_dump($html);

戻り値:string < ! DOCTYPE html PUBLIC.....

質問:

誰でもアドバイスをもらえますか?そのコンテンツで find メソッドを利用できるように、html マークアップを含むテキスト ファイルをオブジェクトにロードする最良の方法は何ですか。ファイルを文字列の配列にロードしたり、正規表現を使用してコンテンツを処理したりしたくありません。

ローカル WAMP サーバーを使用する場合、考慮すべき事項はありますか?

4

1 に答える 1

1

(質問でOPが回答。コミュニティwikiの回答に変換。回答がない質問を参照してください。ただし、コメントで問題が解決しました(またはチャットで拡張されました)

OP は次のように書いています。

私はこれを自分で解決することができました。私はすでに文字列からhtmlを抽出しようとしたと確信しています。

include('simple_html_dom.php');
$html = file_get_contents('file.txt');    
$html = str_get_html($html);
var_dump($html)

object(simple_html_dom)[1]予想されるすべての配列などを含む戻り値

を使用してソース ファイルから直接 html オブジェクトを作成しようとする代わりにfile_get_html、ファイルの内容を抽出し、file_get_contentsstr を html に変換しstr_get_htmlました。これにより、単純な html dom メソッドを使用できるようになりました。

$html->find('a');
于 2015-01-29T21:24:32.110 に答える