[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск в тексте
PHP_forever
Подскажите пожалуйста как в тексте по СЛОВУ найти первый символ в строке В КОТОРОМ ЭТО СЛОВО, например:

1 словоА блалала блалалаблалала блалала
2 словоБ блалала блалалаблалала блалалаблалала
3 словоВ блалала блалала
4 словоГ блалала блалала
5 словоД блалала блалалаблалала блалала


Например мне нужно узнать первый символ в строке в которой слово "словоВ" и вывести (echo).

Как это можно сделать? В дельфи все просто.. а в php что то совсем понять не могу. ohmy.gif



Спустя 19 минут, 30 секунд (2.10.2010 - 10:01) ABC написал(а):
Я бы сначала прочитал 1 символ строки $str (незнаю как там у вас они задаются массивом или по другому):

 $simvol_1=substr(0,1,$str);

потом проверил бы встречается это слово или нет:
if  (ereg("словоВ", $str))
{
print "Встречается и первый символ=".$simvol_1;
}
else
{
print "Не встречается";
}

Спустя 43 минуты, 41 секунда (2.10.2010 - 10:45) SlavaFr написал(а):
strpos

Спустя 1 час, 22 минуты, 44 секунды (2.10.2010 - 12:07) PHP_forever написал(а):
Не хочет почему-то...
Может что-то не так?

<?php
$str=file("1.txt");
$simvol_1=substr(0,1,$str);
if (ereg("словоВ", $str))
{
print "Встречается и первый символ=".$simvol_1;
}
else
{
print "Не встречается";
}
?>


В 1.txt:
1 словоА блалала блалалаблалала блалала
2 словоБ блалала блалалаблалала блалалаблалала
3 словоВ блалала блалала
4 словоГ блалала блалала
5 словоД блалала блалалаблалала блалала

Спустя 1 час, 50 минут, 49 секунд (2.10.2010 - 13:58) linker написал(а):
$str=file("1.txt");
В данном случае $str будет массивом. Надо
$str=file_get_contents("1.txt");

Спустя 3 минуты, 45 секунд (2.10.2010 - 14:02) ABC написал(а):
linker, абсолютно прав, впрочем как обычно. smile.gif

Спустя 9 минут, 25 секунд (2.10.2010 - 14:11) ABC написал(а):
Однако, если у вас файл:
1.txt:
1 словоА блалала блалалаблалала блалала
2 словоБ блалала блалалаблалала блалалаблалала
3 словоВ блалала блалала
4 словоГ блалала блалала
5 словоД блалала блалалаблалала блалала
, то это сработает неправильно.

$str=file_get_contents("1.txt");

$str - строка, чтобы сработал ваш скрипт поиска, надо например установить разделитель, чтобы скрипт понял где заканчиваются строки - т.е. перенос на следующую. Например запятой, или ; (что угодно) тогда(если разделитель запятая):


<?php
$str=file_get_contents("1.txt");
$str2=explode(",",$str);//Образовали массив из строчек
foreach ($str2 as $i=>$val)
{
$simvol_1=substr(0,1,$val);
if (ereg("словоВ", $val))
{
print "Встречается и первый символ=".$simvol_1;
}
else
{
print "Не встречается";
}
}

?>


Это должно работать.

Спустя 1 минута, 30 секунд (2.10.2010 - 14:13) ABC написал(а):
А файл 1.txt должен стать таким (в конце каждой строчки запятая):

1 словоА блалала блалалаблалала блалала,
2 словоБ блалала блалалаблалала блалалаблалала,
3 словоВ блалала блалала,
4 словоГ блалала блалала,
5 словоД блалала блалалаблалала блалала

Спустя 1 час, 39 секунд (2.10.2010 - 15:14) PHP_forever написал(а):
Спасибо всем! smile.gif

Спустя 1 час, 26 минут, 9 секунд (2.10.2010 - 16:40) PHP_forever написал(а):
Блин sad.gif опять не получилось, но теперь попробовал так:

<?php
// ищем строку со словом
$slovo="словоВ";
$fopen=@file("1.txt");
foreach($fopen as $key=>$value)
{
// $key узнает номер строки
if(substr_count($value,$slovo))
{
$stroka=$key+1; // узнаём номер строки
$text=file_get_contents("1.txt"); // грузим текст опять, чтобы взять символ.
$nomer=substr(0,$stroka,$text);
print $nomer;
}
}

?>


Номер строки получил, вроде все верно но почему-то ничего не выводит (Не выводит $nomer, первый символ).
Мне кажется дело в $nomer=substr(0,$stroka,$text);, я так понял 0 - это первый символ в строке?

Спустя 10 минут, 28 секунд (2.10.2010 - 16:50) Michael написал(а):
<?php
// ищем строку со словом
$slovo="словоВ";
$fopen=@file("1.txt");
foreach($fopen as $key=>$value)
{
// $key узнает номер строки
if(str_pos($value,$slovo) !== false)
{
print substr($value,0,1);
}
}

?>

если кодировка utf то надо использовать функции из набора mb.

Спустя 7 минут, 43 секунды (2.10.2010 - 16:58) PHP_forever написал(а):
Во теперь точно работает, спс!

З,Ы Жаль карму + еще не могу biggrin.gif
Быстрый ответ:

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