Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
3 / 3 / 1
Регистрация: 08.05.2014
Сообщений: 82
1

In_array не находит значение

30.08.2014, 15:28. Показов 1524. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
8
9
$plist = explode("\r\n",$_POST['textt']); //здесь, например, список страниц, переданных постом
$site = $_POST['site'] . '/sitemap.xml'; //здесь, например, карта сайта
foreach ($plist as $arraylist) {
    $a = getpage($site); //получаем содержимое через curl
    if (in_array($arraylist, $a)){
    echo "yes";
    }  
    else echo "no";
        }
Но всегда получаю "no", даже если есть вхождение. По идее, надо проверить если ли значение $arraylist в $a.
Подскажите, что делаю не так?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2014, 15:28
Ответы с готовыми решениями:

Написать программу, которая находит максимальное значение и умножает его на минимальное значение
Дан двумерный массив, размером n*m. Написать программу, которая находит максимальное значение и...

вопрос о функцие in_array()
приветствую естъ такои скрипт: $m = array("a"=>"aa", "b"=>"bb", "d"=>"dd", "k"=>"kk"); ...

Работа функции in_array()
Всем привет, пытаюсь разобраться с функцией in_array(), не могу понять почему она работает не так...

Есть ли в c# аналог in_array() из php?
всем привет, только начал разбираться в c#, решил написать простенькое консольное приложение, на...

8
74 / 70 / 40
Регистрация: 31.03.2014
Сообщений: 298
30.08.2014, 15:34 2
Lustmord, поверь корректно ли ты разделил plist
PHP
1
2
$plist = explode("\r\n",$_POST['textt']);
var_dump($plist);
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
30.08.2014, 15:53 3
Цитата Сообщение от Lustmord Посмотреть сообщение
Но всегда получаю "no", даже если есть вхождение.
Ну вариант один - вхождений нет. php не ошибается) Смотрите чему равны переменные $a и $arrayList перед проверкой на вхождение.
0
74 / 70 / 40
Регистрация: 31.03.2014
Сообщений: 298
30.08.2014, 16:02 4
Lustmord, мне кажется ты ошибся в этой строке
PHP
1
$plist = explode("\r\n",$_POST['textt']);
вместо $_POST['textt'] скорее всего у тебя $_POST['text']

хотя тогда бы у тебя выдавало ошибку
0
3 / 3 / 1
Регистрация: 08.05.2014
Сообщений: 82
30.08.2014, 16:16  [ТС] 5
Sombrero, pav1uxa,
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$plist = explode("\r\n",$_POST['textt']);
var_dump($plist);
$site = $_POST['site'] . '/sitemap.xml';
foreach ($plist as $arraylist) {
    $a = getpage($site);
    var_dump($a);
    var_dump($arraylist);
    if (in_array($arraylist, $a)){
        echo "yes";
    }  
    else echo "no";
    }
входные данные:
http://www.multifin.ru - $_POST['site']
http://www.multifin.ru - $_POST['textt']

Кликните здесь для просмотра всего текста
array(1) { [0]=> string(22) "http://www.multifin.ru" } string(4305) " http://www.multifin.ru/ 2014-08-29T11:00:28+04:00 daily 1 http://www.multifin.ru/price.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/contact.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/notebooks.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/telefon_pod_zalog.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/photocamera.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/conditioner.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/mehlombard.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/phones.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/audio_video.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/orgtehnika.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/bytovay... _zalog.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/shubylombard.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/uslugi.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/news.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/deyatelnost_lombardov.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/comments.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/faq.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/site_map.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/kredit_... hniki.html 2014-08-29T11:00:28+04:00 daily 0.64 http://www.multifin.ru/lombard... hniki.html 2014-08-29T11:00:28+04:00 daily 0.64 http://www.multifin.ru/procent.htm 2014-08-29T11:00:28+04:00 daily 0.64 http://www.multifin.ru/bilet.htm 2014-08-29T11:00:28+04:00 daily 0.64 " string(22) "http://www.multifin.ru" no


в конце - no

c textt - всё правильно, так и задумано))

Добавлено через 8 минут
Кстати, должно проверяться точное вхождение? Если нет, то как заставить проверять точное?
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
30.08.2014, 17:15 6
Цитата Сообщение от Lustmord Посмотреть сообщение
в конце - no
Так у Вас и $a и $arrayList это строки? Почему тогда Вы вообще пользуетесь функцией in_array()? Эта функция проверяет присутствует ли значение в массиве.

Вам, наверное, в данном случае подойдет strpos().
0
3 / 3 / 1
Регистрация: 08.05.2014
Сообщений: 82
30.08.2014, 17:24  [ТС] 7
pav1uxa, ну если меняю на так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
$plist = explode("\r\n",$_POST['textt']);
$site = $_POST['site'] . '/sitemap.xml';
 
foreach ($plist as $arraylist) {
    $a = getpage($site);
    $pos = strpos($arraylist, $a);
    if ($pos === false) {
        echo "Строка '$arraylist' не найдена в строке";
    } else {
        echo "Строка '$arraylist' найдена";
        echo " в позиции $pos";
    }
}
то всё равно "не найдено"
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
30.08.2014, 17:32 8
Лучший ответ Сообщение было отмечено Lustmord как решение

Решение

Цитата Сообщение от Lustmord Посмотреть сообщение
то всё равно "не найдено"
Вы ищете подстроку
Код
" http://www.multifin.ru/ 2014-08-29T11:00:28+04:00 daily 1 http://www.multifin.ru/price.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/contact.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/notebooks.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/telefon_pod_zalog.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/photocamera.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/conditioner.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/mehlombard.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/phones.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/audio_video.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/orgtehnika.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/bytovaya_technika_pod_zalog.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/shubylombard.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/uslugi.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/news.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/deyatelnost_lombardov.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/comments.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/faq.html 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/site_map.htm 2014-08-29T11:00:28+04:00 daily 0.80 http://www.multifin.ru/kredit_pod_zalog_tehniki.html 2014-08-29T11:00:28+04:00 daily 0.64 http://www.multifin.ru/lombard_bytovoy_tehniki.html 2014-08-29T11:00:28+04:00 daily 0.64 http://www.multifin.ru/procent.htm 2014-08-29T11:00:28+04:00 daily 0.64 http://www.multifin.ru/bilet.htm 2014-08-29T11:00:28+04:00 daily 0.64 "
в строке
Код
"http://www.multifin.ru"
Лично я тоже найти не могу.
1
3 / 3 / 1
Регистрация: 08.05.2014
Сообщений: 82
31.08.2014, 12:00  [ТС] 9
pav1uxa, бррр.... не совсем понимаю... Что же я не так делаю. У вас, случайно, нет варианта как реализовать поиск точного вхождения (мб с учетом URL-encode) и сравнение по .xml файлу? Я что-то заблудился(((

Добавлено через 10 часов 41 минуту
Всё, спасибо))) Реально затупил что-то)))
0
31.08.2014, 12:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2014, 12:00
Помогаю со студенческими работами здесь

in_array без учета регистра
$array = array(Январь, Февраль, Март...); if (in_array('март',$array)) {} Как заставить эту...

Выполнение кода не доходит до метода in_array()
массив заполняется данными, которые должны быть распечатаны в Excel, все нормально, кроме 3х...

Как правильно искать в массиве? Array_search(), in_array()
Допустим есть массив с некоторыми однотипными данными, и нужно получить их индекс. Но проблема...

Определить наличие значения в массиве (скорее всего in_array)
Доброго времени суток подскажите как просканировать столбец массива на наличие значения? я пробовал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru