PHP Ограничить количество символов в строке для поиска

M
На сайте с 15.01.2011
Offline
66
2007

Добрый день. Суть работы скрипта такова:

Задаем переменную с помощью формы, после чего выводим из файла все строки в которых есть значения переменной.

В данном случае, для простоты я сразу записал переменную


<?php
$filter_mask = '905';

if (isset($filter_mask)) { //если же переменная $filter_mask существует, то выводим результаты поиска:
foreach (file('temp.txt') as $s) if
( strpos ($s, $filter_mask) !== FALSE )

echo $s;}
?>

В файле хранится информация следующего вида:

<div id="id_5">9055516726 цена: <b>0</b><a href="?num=5">Купить</a></div>

<div id="id_6">9055538552 цена: <b>0</b><a href="?num=6">Купить</a></div>

...

<div id="id_6">9255538553 цена: <b>0</b><a href="?num=905">Купить</a></div>

Подскажите, как ограничить область поиска, первыми 30 символами? Чтобы выводилась только те строки, в которых совпадения присутствует только в первых символах?

Заранее спасибо.

Если я что-то сформулировал не правильно - прошу прощения, это моя первая работа по php. Однако на изучение этой проблемы я "убил" уже 2-е суток.

дани мапов
На сайте с 06.09.2012
Offline
204
#1


<?php
$filter_mask = '905';

if (isset($filter_mask)) { //если же переменная $filter_mask существует, то выводим результаты поиска:
foreach (file('temp.txt') as $s) {
$pos = strpos ($s, $filter_mask);
if ( $pos !== FALSE and $pos < 30)
echo $s;
}
}
?>
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
M
На сайте с 15.01.2011
Offline
66
#2

Спасибо, решил этот вопрос так:


<?php
$filter_mask = '1000';

if (isset($filter_mask)) { //если же переменная $filter_mask существует, то выводим результаты поиска:
foreach (file('temp.txt') as $s) if
( strpos ($s, $filter_mask) !== FALSE)
if ( strpos ($s, $filter_mask) <= 30)
if ( strpos ($s, $filter_mask) >= 17) // нужно ограничить с двух сторон
echo $s;
}
?>

Но ваше решение мне больше нравится. Ещё раз спасибо

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий