|
|
|
| Сделал по примеру из этого форума
<?
$text = file ( 'text.txt' );
$keyword = 'test';
foreach($text as $key => $string)
{
if( $keyword == trim ( array_shift ( $text )))
echo "$keyword найден в строке $key";
}
?>
| Все ок, за что спасибо автору. Но .. при
<?
$text = file ( 'text.txt' );
$keyword = 'test';
foreach($text as $key => $string)
{
if( $keyword == trim ( array_shift ( $text )))
{
echo "$keyword найден в строке $key";
}
else
{
echo "$keyword не найден";
} }
?>
| получил этот else = количеству строк в файле, если сто строк то и сто раз пишет "не найден, не найден, не найден, ...". Как получить в этом цикле этот else в единичном виде. Сори за мрак в голове.. Учу методом научного тыка и самый лучший учебник для меня "эксперимент". | |
|
|
|
|
|
|
|
для: Giga
(23.08.2006 в 20:24)
| | можно, если найден, какой-нибудь переменной присвоить true, затем вне цикла проверить ее значение: true - найден, false - нет | |
|
|
|
|
|
|
|
для: Giga
(23.08.2006 в 20:24)
| |
<?php
$text = file('text.txt');
$keyword = 'test';
foreach($text as $key => $string)
{
if($keyword == trim(array_shift($text)))
{
echo "$keyword найден в строке $key";
}
else
{
echo "$keyword не найден";
exit;
}
}
?>
|
В общем просто добавь EXIT; после echo "$keyword не найден"; и всё будет ОК ))) | |
|
|
|
|
|
|
|
для: DEM
(23.08.2006 в 20:52)
| | если у скрипта есть продолжение, помимо этого цикла, то лучше вместо exit использовать break | |
|
|
|
|
|
|
|
для: namo
(23.08.2006 в 21:58)
| | Ну расчитывалось что этот сркипт находится в конце скрипта... | |
|
|
|
|
|
|
|
для: DEM
(23.08.2006 в 22:22)
| | Получилось еще лучше. Как exit; так и break; действительно вызывают else один раз "тест не найден", но при этом в моем файле text.txt есть слово "тест", и как результат if игнорируется а выполняет else с функциями exit; break; | |
|
|
|
|
|
|
|
для: Giga
(23.08.2006 в 22:38)
| | Конечно, потому что первое слово, скорее всего, в вашем файле не "тест" ... по-этому я и предлагал поступить именно так.
или же
if($keyword == trim(array_shift($text)))
{
echo "$keyword найден в строке $key";
break;
}
|
// сркипт находится в конце скрипта
:)) | |
|
|
|
|
|
|
|
для: Giga
(23.08.2006 в 22:38)
| | - | |
|
|
|
|
|
|
|
для: Giga
(23.08.2006 в 20:24)
| | В этом случае прибегают к дополнительной переменной-флагу
<?
$text = file ( 'text.txt' );
$keyword = 'test';
$result = false;
foreach($text as $key => $string)
{
if( $keyword == trim ( array_shift ( $text )))
{
echo "$keyword найден в строке $key";
$result = true;
}
}
if(!$result) echo "$keyword не найден";
?>
|
| |
|
|
|
|
|
|
|
для: Giga
(23.08.2006 в 20:24)
| | Спасибо всем за помощь. Теперь действительно все ок, true, falce помогли! | |
|
|
|