VolodinAS
27.12.2012 - 21:15
$sss = strpos("itmsitmsitms","itms");
if ($sss === true){
echo "1";
} else {
echo "0";
}
Результат выполнения - выводит 0. Что не так?
Возвращает позицию первого вхождения подстроки
VolodinAS
27.12.2012 - 21:29
Тогда сложнее. Есть файл txt с идущими данными в каждой новой строке:
Цитата |
название ссылка название ссылка |
Мне нужно посчитать количество ссылок. Ссылка может начинаться с itmss:// или с https://
Вот код проверки:
for ($j=0; $j<$prerecs; $j++){
$str = $dat_arr[$j];
$search_http = strpos($str,"http");
$search_itms = strpos($str,"itms");
if (($search_http == 0)||($search_itms == 0)){
$recs++;
}
}
Строк в файле 114. То есть, по идее он должен вернуть значение 57, но возвращает в recs число 114. Где ошибка?
зачем так извращаться? Формат файла определен. echo count((array)file('filename'))/2;
VolodinAS
27.12.2012 - 21:32
Не понял строки.... Что Вы именно сделали?
VolodinAS
27.12.2012 - 21:33
прото вдруг там будет:
Цитата |
название ссылка название ссылка ссылка название ссылка |
Цитата |
Не понял строки.... Что Вы именно сделали? |
известно, что кол-во ссылок равно кол-во строк / 2. значит для решения нужно определить кол-во строк в файле, что можно сделать так count(file('filename'))
Цитата |
прото вдруг там будет: |
ну вот... оказывается формат нет никакого формата))
Плохо читаем.
Возвращаемые значения
Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack (независимо от смещения (offset). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.
Echo $sss сделай что будет ? 0
$cl = 0;
foreach (file('filename') as $v) {
if (strpos($v, 'http') === 0 || strpos($v, 'itms') === 0) {
$cl++;
}
}
Используй num_count - помоему так пишется количество вхождений.
S.Chushkin
27.12.2012 - 21:43
Цитата (VolodinAS @ 27.12.2012 - 21:29) |
...Где ошибка? |
В голове
![wink.gif](http://phpforum.su/html/emoticons/wink.gif)
false == 0; 0 == 0
т.е. если
$search_http === false -> вхождение не найдено
$search_http == 0 -> вхождение не найдено или вхождение в первой позиции (т.е. = 0)
_____________
Рекламка / ad.pesow.com Хрень / mr-1.ru
VolodinAS
27.12.2012 - 22:06
Цитата (kaww @ 27.12.2012 - 20:38) |
$cl = 0; foreach (file('filename') as $v) { if (strpos($v, 'http') === 0 || strpos($v, 'itms') === 0) {
$cl++; } } |
Огромное спасибо, код помог. Как только будет 10 ссобщений - плюсану вам карму
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.