と以下のプログラムだとエラーになります。
<?PHP
include_once('simple_html_dom.php');
$fp = file_get_contents('http://ja.wikipedia.org/wiki/大久保佳代子');
$mystring1 = '来歴';
$pos1 = strpos($fp, $mystring1, strpos($fp, $mystring1)+1);
$mystring2 = '脚注';
$pos2 = strpos($fp, $mystring2,strpos($fp, $mystring2)+1);
$pos3 = $pos2-$pos1;
$fp1 = substr($fp, $pos1, $pos3);
//var_dump($fp1);
$fp1->find('a');
?>
最後から2行をコメントアウトを以下のように逆にすると、
var_dump($fp1);
//$fp1->find('a');
エラーは出ません。
これは、エラーのように non-object ではないと思えてなりません。
記述エラーの対処法を教えていただけると大変助かります。
プログラムの目的がよく分からないのですが、下のプログラムを試してみてください。
来歴~脚注の間のコンテンツを抜き出す部分は、質問のコードそのままです。
findメソッドを使うには、対応するDOMオブジェクト $html を file_get_htmlで取り出してください。
ただし、Aタグの量が膨大なので、ブラウザによってはvar_dumpをすることで落ちるかもしれません。
<?php include_once('simple_html_dom.php'); $str = file_get_contents('http://ja.wikipedia.org/wiki/大久保佳代子'); $mystring1 = '来歴'; $pos1 = strpos($str, $mystring1, strpos($str, $mystring1)+1); $mystring2 = '脚注'; $pos2 = strpos($str, $mystring2,strpos($str, $mystring2)+1); $pos3 = $pos2 - $pos1; $ss = substr($str, $pos1, $pos3); echo $ss; $html = file_get_html('http://ja.wikipedia.org/wiki/大久保佳代子'); $ret = $html->find('a'); var_dump($ret); ?>
file_get_contents で得るものは文字列よ。だからstrposやsubstrが使えるの。
原因はsimple_html_dom.phpのstr_get_htmlファンクションが抜けてるからよ。
$fp2 = str_get_html($fp1); echo $fp2->find('a', 0);
プログラムの目的がよく分からないのですが、下のプログラムを試してみてください。
来歴~脚注の間のコンテンツを抜き出す部分は、質問のコードそのままです。
findメソッドを使うには、対応するDOMオブジェクト $html を file_get_htmlで取り出してください。
ただし、Aタグの量が膨大なので、ブラウザによってはvar_dumpをすることで落ちるかもしれません。
<?php include_once('simple_html_dom.php'); $str = file_get_contents('http://ja.wikipedia.org/wiki/大久保佳代子'); $mystring1 = '来歴'; $pos1 = strpos($str, $mystring1, strpos($str, $mystring1)+1); $mystring2 = '脚注'; $pos2 = strpos($str, $mystring2,strpos($str, $mystring2)+1); $pos3 = $pos2 - $pos1; $ss = substr($str, $pos1, $pos3); echo $ss; $html = file_get_html('http://ja.wikipedia.org/wiki/大久保佳代子'); $ret = $html->find('a'); var_dump($ret); ?>
コメント(0件)