[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Почему не работает strpos()?
VolodinAS
$sss = strpos("itmsitmsitms","itms");
if ($sss === true){
echo "1";
} else {
echo "0";
}


Результат выполнения - выводит 0. Что не так?
kaww
Возвращает позицию первого вхождения подстроки
VolodinAS
Тогда сложнее. Есть файл txt с идущими данными в каждой новой строке:
Цитата
название
ссылка
название
ссылка

Мне нужно посчитать количество ссылок. Ссылка может начинаться с itmss:// или с https://
Вот код проверки:

for ($j=0; $j<$prerecs; $j++){

$str = $dat_arr[$j];
//echo "str = $str<hr/>";

$search_http = strpos($str,"http");
$search_itms = strpos($str,"itms");

//echo "search_http = $search_http<hr/>";
//echo "search_itms = $search_itms<hr/>";


if (($search_http == 0)||($search_itms == 0)){
$recs++;
}
}


Строк в файле 114. То есть, по идее он должен вернуть значение 57, но возвращает в recs число 114. Где ошибка?
kaww
зачем так извращаться? Формат файла определен. echo count((array)file('filename'))/2;
VolodinAS
Не понял строки.... Что Вы именно сделали?
VolodinAS
прото вдруг там будет:
Цитата
название
ссылка
название
ссылка
ссылка
название ссылка
kaww
Цитата
Не понял строки.... Что Вы именно сделали?

известно, что кол-во ссылок равно кол-во строк / 2. значит для решения нужно определить кол-во строк в файле, что можно сделать так count(file('filename'))
kaww
Цитата
прото вдруг там будет:
ну вот... оказывается формат нет никакого формата))
Xes
Плохо читаем.

Возвращаемые значения

Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack (независимо от смещения (offset). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.

Echo $sss сделай что будет ? 0
kaww
$cl = 0;
foreach (file('filename') as $v) {

if (strpos($v, 'http') === 0 || strpos($v, 'itms') === 0) {

$cl++;
}
}
Xes
Используй num_count - помоему так пишется количество вхождений.
S.Chushkin
Цитата (VolodinAS @ 27.12.2012 - 21:29)
...Где ошибка?

В голове wink.gif
false == 0; 0 == 0
т.е. если
$search_http === false -> вхождение не найдено
$search_http == 0 -> вхождение не найдено или вхождение в первой позиции (т.е. = 0)

_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
VolodinAS
Цитата (kaww @ 27.12.2012 - 20:38)
$cl = 0;
foreach (file('filename') as $v) {

if (strpos($v, 'http') === 0 || strpos($v, 'itms') === 0) {

$cl++;
}
}

Огромное спасибо, код помог. Как только будет 10 ссобщений - плюсану вам карму
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.