|
|
|
| Подскажите, пожалуйста, ни как не соображу...
есть файл, беру содержимое файла в массив
и мне нада сравнить его содержимое с переменной из $_POST... (поле text)
<?php
$file = file("file.txt");
foreach($file as $value)
{
if($_POST['var'] == $value)
{
//...какие то действия
exit();
}
}
?>
|
но проверки не происходит... в чем беда ?
подозреваю присутствие символа перевода строки в запросе, хотя и в массиве из файла они тоже вроде есть... ?
подскажите...
Спасибо ! | |
|
|
|
|
|
|
|
для: mehelson
(08.02.2007 в 08:20)
| | Вы сравниваете не содержимое файла, а содержимое каждой из строк файла. Есть разница? | |
|
|
|
|
|
|
|
для: mehelson
(08.02.2007 в 08:20)
| | 1) если речь идет о проверке каждой строки файла, то стоит в первую очередь определиться - регистры символов важны или нет, далее полезно удалять незначимые символы в каждой строке перед проверкой...
<?php
$file = file("file.txt");
foreach($file as $value)
{
$value = trim($value);
if($_POST['var'] == $value)
{
//...какие то действия
exit();
}
}
?>
|
2) если речь идет о сравнении ФАЙЛА целиком (как уже предполагалось выше), то цикл вообще не нужен...
<?php
$file = preg_replace("/(\r*)(\n*)/", " ", implode("", file("file.txt"))); // замена на " " символов "\r" и "\n"
if($_POST['var'] == $value)
{
//...какие то действия
}
?> | |
|
|
|
|
|
|
|
для: ZuArt
(08.02.2007 в 09:39)
| | Писать implode("", file("file.txt"))); вместо file_get_contents("file.txt"); это изврат. | |
|
|
|
|
|
|
|
для: Trianon
(08.02.2007 в 10:35)
| | кто чем чаще пользуется =))
врать с синтаксисом функций или направлять к поиску чего-то там я не склонен - а в помощи к функции file есть и ссылка на указанную вами функцию...
и кстати, не стоит так отзываться о методах других, т.к. ваши методы тоже могут вызывать схожие эмоции у других, однако не все позволяют себе такие резкие СУБЬЕКТИВНЫЕ высказывания...
использовать одну какие-то две функции вместо какой-одной - это не изврат, а альтернатива - и зная много альтернатив можно сделать гораздо больше, чем зная мало функций.
PS. И кстати, прежде чем кого-то судить в теме, сначала свое решение предложите, а не воду аля "сравниваете то а не это, есть разница?" лейте. | |
|
|
|
|
|
|
|
для: ZuArt
(08.02.2007 в 10:40)
| | >кто чем чаще пользуется =))
>врать с синтаксисом функций или направлять к поиску чего-то там я не склонен - а в помощи к функции file есть и ссылка на указанную вами функцию...
Вот если Вы заглянете по этой ссылке, то прочтете там следующее:
Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком
Единственным оправданием применения Вашей связки может быть её работоспособность в старых версиях php 4 и в php 3.
>использовать одну какие-то две функции вместо какой-одной - это не изврат, а альтернатива - и зная много альтернатив можно сделать гораздо больше, чем зная мало функций.
Так вы знаете мало функций или много альтернатив? :)
>
>PS. И кстати, прежде чем кого-то судить в теме, сначала свое решение предложите, а не воду аля "сравниваете то а не это, есть разница?" лейте.
Никто не судил и Вас, ни даже Ваше решение. Я дал оценку методу, который Вы в этом решении применили.
Что касается воды, то я в состоянии обойтись без сторонних указаний, как именно мне вести диалог. | |
|
|
|
|
|
|
|
для: ZuArt
(08.02.2007 в 10:40)
| | (1) регистр не важен
(2) сравниваю построчно
удалять незначемые символы лучше чем ? trim подойдет ? | |
|
|
|
|
|
|
|
для: mehelson
(08.02.2007 в 11:58)
| | 1) тогда имеет смысл применить что-то вроде strcasecmp()
2)
если пробельные символы в начале/конце строки являются незначащими - пойдет. | |
|
|
|
|
|
|
|
для: Trianon
(08.02.2007 в 10:35)
| | file_get_contents работает только начиная с пятой версии. | |
|
|
|
|
|
|
|
для: Loki
(08.02.2007 в 11:41)
| | >file_get_contents работает только начиная с пятой версии.
Это откровение для меня. :)) | |
|
|
|
|
|
|
|
для: Trianon
(08.02.2007 в 11:44)
| | точнее, file - с 4 версии, file_get_contents - с 4.3... помню что в далеком прошлом конструкция implide(file()) была альтернативой file_get_contents, а вот в насколько далеком - уже забыл:) | |
|
|
|
|
|
|
|
для: Loki
(08.02.2007 в 11:48)
| | file_put_contents() с пятой версии появилась. | |
|
|
|
|
|
|
|
для: Loki
(08.02.2007 в 11:41)
| | Ну это совем неправда =)))
функция для меня не новая (просто память подвела) - полопатил свои скрипты, которые писал раньше - использую... а т.к. локально стоит версии 4.3.4, то и функция пашет начиная с 4.3.4 ТОЧНО ... | |
|
|
|
|
|
|
|
для: ZuArt
(08.02.2007 в 11:48)
| | Всем спасибо ! разобрался !
использовал file_get_contents и функцию поиска в строке strstr
ищет прекрасно | |
|
|
|
|
|
|
|
для: mehelson
(08.02.2007 в 12:32)
| | Нзчт... Только вот если бы сразу была ясна задача - требуется производить поиск заданного текста в файле построчно - то ответ был-бы всего одним-двумя постами ;) | |
|
|
|