Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск в файле
 
 автор: EnemY   (12.05.2006 в 17:13)   письмо автору
 
 

Ну, вот сегодня взбрело мне создать маленькую БД md5 хешей
И возник вопрос по поиску в файле
Есть файл с хешами
EnemY::21e5c6166b20241d0ce8eb9fe12c7447
YmenE::929358044b94477418f65c511f748fd2
Как выполнить поиск на совпадение хеша, если в файле есть хэш заданный в поиске вывести первое значение #1::#2
Хотябы кратко, а я сам дальше разберусь

   
 
 автор: cheops   (12.05.2006 в 17:37)   письмо автору
 
   для: EnemY   (12.05.2006 в 17:13)
 

Для этого необходимо поместить содержимое файла в массив при помощи функции file() далее в цикле foreach() разбить каждую строку по символу :: при помощи функции explode(). хэш пропустить через trim() - так как наверняка в конце будет символ возрата каретки \r, далее проверить его с искомым значением - если совпадает вернуть имя пользователя.

   
 
 автор: EnemY   (12.05.2006 в 21:20)   письмо автору
 
   для: cheops   (12.05.2006 в 17:37)
 

Не совсем понятно насчет trim(); на конце остается тока \n
В правильную сторону хоть капаю? (я лол)
\n придется вырезать?

<?php
  $base 
file("base.txt") or die("file not found");

  foreach(
$base as $datapass)
  {
    
$pah explode("::",$datapass);
    
// ..
  
}
?>

Не по зубам взял =\

   
 
 автор: EnemY   (12.05.2006 в 23:03)   письмо автору
 
   для: EnemY   (12.05.2006 в 21:20)
 

Что то вроде

<?php
if(strpos(file_get_contents("base.txt"), $_POST['search'])) echo "1"; else echo "0";

Тока как вывестизначение #1 ?! жесть!! Mysql было-бы проще

   
 
 автор: cheops   (13.05.2006 в 11:55)   письмо автору
 
   для: EnemY   (12.05.2006 в 23:03)
 

А так вы номера не определите - при переборе циклом, в тело цикла можно добавить знчение увеличивающийся счётчик $i++ и выяснить номер строки или просто вместо
<?php
 
foreach($base as $datapass)
?>

записать
<?php
 
foreach($base as $key => $datapass)
?>

где $key - будет номер текущей строки. В последнем варианте вы сможете просто опеределить факт наличия хэша.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования