0

Simple HTML DOM Parserを使用して、ページからHTMLを抽出し、現在のページにhtmlコードを挿入しようとしています。(私はPHP初心者です)

この例では、人はc.htmlのようにのみページ名を入力します。現在のページを調べるためにphpが必要です:div navbar a hrefで終了し、$ pgで終了します。完全なhrefを取得する必要があることがわかった場合は、パスがあり、そのページに移動してプルするために使用できます。いくつかの指定されたdiv。

私はこれまでにこれを持っていますが、パスはエコーアウトしていません:

<?php
include_once '%resource(simple_html_dom.php)%';
$pg = 'c.html';
echo 'Page: ' . $pg . '<br />';  // Works
$html = file_get_html();  // needs to look in current pg
foreach($html->find('#navbar a[href$=$pg]') as $path) // Doesn't work
  echo 'Path: ' . $path;
$html = file_get_html($path);
foreach($html->find('#testdiv2') as $ret)
  echo $ret;
?>

助けてくれてありがとう。

更新されたコード:

<?php
include_once 'path/to/resource/simple_html_dom.php';
$pg = 'c.html';
echo 'Page: ' . $pg . '<br />';
function 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)
foreach($html->find(sprintf('#navbar a[href=%s]',$pg)) as $path)
  echo 'Path: ' . $path;
$html = file_get_html($path);
foreach($html->find('#testdiv2') as $ret)
  echo $ret;
?>
  • include once行は特別なプラグイン形式でした-ファイルへのパスの例を表示するように変更しました-これはphpで読み取れるはずですよね?

  • 関数file_get_htmlを定義する場合(Simple HTML DOMパーサーを使用していることを思い出してください):現在のページの$ urlを定義するにはどうすればよいですか?(これを自動的に定義する必要があります)%sは'で終わる'を意味しますか?(私が見たドキュメントではそれはわかりませんでした)

  • 1番目のforeachで関数を呼び出す必要がありますか、それとも関数に$ htmlを割り当てる必要がありますか?(角かっこまたは末尾が必要ですか;?)

  • 2番目のforeachの場合、$ htmlが再定義されると、正常に実行されますか?

これは私にとってまったく新しいので、@Babaにこれらを説明してもらえますか:)

4

1 に答える 1

1

以下は、ファイルを含めるための有効な方法ではありません

include_once '%resource(simple_html_dom.php)%';

それは次のようなものでなければなりません

include_once __DIR__.'/simple_html_dom.php';

file_get_html少なくとも1つのパラメータが必要です$url

function 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)

私はまたあなたの発見がこのようなものに見えるべきだと信じたい

foreach($html->find(sprintf('#navbar a[href=%s]',$pg)) as $path)
于 2012-10-13T18:01:10.797 に答える