PHP SimpleHTMLDom проблема соскоба - PullRequest
0 голосов
/ 11 августа 2011

Я пытаюсь разобраться с SimpleHTMLDom и, похоже, столкнулся с проблемой.

Мой код выглядит следующим образом:

$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);

Что приводит к следующей ошибке:

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

Что я делаю не так?

Ответы [ 3 ]

1 голос
/ 11 августа 2011

Из документов , вы должны проходить в иглу вторым, а не первым.Попробуйте это:

function array_find($needle, array $haystack)
{
    foreach ($haystack as $key => $value) {
        if (false !== stripos($value, $needle)) {
            return $key;
        }
    }
    return false;
    }
1 голос
/ 11 августа 2011

У вас есть порядок фактических параметров, обратный в вашем вызове на стрипос.См. http://us3.php.net/manual/en/function.stripos.php. Просто измените порядок аргументов, и эта ошибка должна быть исправлена.

Измените:

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

на

if (false !== stripos($value, $needle)) {
0 голосов
/ 11 августа 2011

Сообщение относится к аргументу функции stripos, а не к вашей переменной с именем $needle.

int stripos ( string $haystack , string $needle [, int $offset = 0 ] )

На самом деле он жалуется на игла $value

...