2011-08-10 13 views
0

SimpleHTMLDomでスクラップしようとしていて、問題が発生しているようです。次のようにPHP SimpleHTMLDomが問題をこすっています

私のコードは次のとおりです。

Warning: stripos() [function.stripos]: needle is not a string or an integer in C:\xampp\htdocs\main.php on line 85 

は私が間違って何をやっている:次のエラーが生成さ

$table = $html->find('table',0); 
$theData = array(); 
foreach(($table->find('tr')) as $row) { 

    $rowData = array(); 
    foreach($row->find('td') as $cell) { 

     $rowData[] = $cell->innertext; 
    } 

    $theData[] = $rowData; 
} 

function array_find($needle, array $haystack) 
{ 
    foreach ($haystack as $key => $value) { 
     if (false !== stripos($needle, $value)) { 
      return $key; 
     } 
    } 
    return false; 
    } 

$searchString = "hospitalist"; 
$position = array_find($searchString, $theData); 
echo ($position); 

+1

文句を言っています – Ibu

答えて

1

あなたはstriposの呼び出しで実際のパラメータの順序を逆にしています。 http://us3.php.net/manual/en/function.stripos.phpを参照してください。引数の順序を逆にして、エラーを修正する必要があります。

変更:

if (false !== stripos($needle, $value)) { 

if (false !== stripos($value, $needle)) { 
1

からthe docsから、あなたはありません最初、針秒に渡すべきです。メッセージはstriposなく$needleという名前の変数の関数の引数を参照している

function array_find($needle, array $haystack) 
{ 
    foreach ($haystack as $key => $value) { 
     if (false !== stripos($value, $needle)) { 
      return $key; 
     } 
    } 
    return false; 
    }