Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: поиск и разбитие

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: txt бд
reslear
Отправлено: 30 Сентября, 2011 - 15:52:07
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


Привет!

например есть:

в data.txt

PHP:
скопировать код в буфер обмена
  1.  
  2. 1       t3e4|ttt3e4|tttt3e4
  3. 8       g|ggg|gggg
  4. 5       g|ggg|gggg
  5.  


1 это id пользователя
нужно разбить на 2 переменные id и data
проверить на id,
потом data разбить на три переменные:

PHP:
скопировать код в буфер обмена
  1. list ($id, $data) = split("\t",$line,2);
  2. if ($id == $_GET['user'] ){
  3. list ($a,$b,$c) = split("\|",$data,3);
  4. echo "<script type=\"text/javascript\">$('.uPost_music').html('$a');$('.uPost_films').html('$b');$('.uPost_interest').html('$c');</script>";
  5. }


то есть нужно реализовать поиск по всему txt
как мне это реализовать?

(Отредактировано автором: 30 Сентября, 2011 - 16:07:57)

 
 Top
zypikov
Отправлено: 30 Сентября, 2011 - 18:42:03
Post Id



Частый гость


Покинул форум
Сообщений всего: 219
Дата рег-ции: Нояб. 2010  


Помог: 3 раз(а)




reslear пишет:
проверить на id,

На что проверить?
(Добавление)
А вообще не знаю че так у тебя сложно. Грузишь бд в файл


организуешь цикл по перебору строк этого массива-файла

CODE (htmlphp):
скопировать код в буфер обмена
  1. foreach($base as $val) {}


эксплудом в этом цикле бъешь на переменные:



а там уже даешь с ними че хочешь)


-----
У всего есть обратная сторона.
 
 Top
reslear
Отправлено: 01 Октября, 2011 - 13:16:49
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


zypikov, до этого делал так:

PHP:
скопировать код в буфер обмена
  1. $file_arr = file('data.dat');
  2.   $status_ok = 0;
  3.   foreach ($file_arr as $item  => $line){
  4.     trim($line);
  5. #    $line = str_replace(array("\r\n", "\r", "\n"), '',  strip_tags($line));
  6.    list ($id, $data) = explode("\t", $line, 2);
  7.     if ($id == $_GET['user']){
  8.       list ($music, $films, $interest) = explode("|",$data,3);
  9.       echo "<script type=\"text/javascript\">
  10.        $('.uPost_music').html('$music');
  11.        $('.uPost_films').html('$films');
  12.        $('.uPost_interest').html('$interest');</script>";
  13.         $status_ok=1;
  14.         break;
  15.     }else{ echo "ddd";};
  16.   }


но читал он из файла как женщина капризная, если отступ лишний всё уже ничего не работает, потом работал только если сверху один отступ есть, и тд.

помогите подправить, что-б наверняка работал.
 
 Top
ams
Отправлено: 01 Октября, 2011 - 18:23:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 351
Дата рег-ции: Нояб. 2010  


Помог: 13 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. $str[] = '1       t3e4|ttt3e4|tttt3e4';
  3. $str[] = '8       g|ggg|gggg';
  4. $str[] = '5       g|ggg|gggg';
  5.  
  6. foreach($str as $v)
  7. {
  8.         $a[] = preg_replace('/(\d+)\s+(\S+)/','$1@$2',$v) . "<br>";
  9. }
  10.  

Получился массив вида: 1@t3e4|ttt3e4|tttt3e4
Потом эксплодом explode('@',$a)
И потом уже експлодишь через |

(Отредактировано автором: 01 Октября, 2011 - 18:25:05)

 
 Top
reslear
Отправлено: 01 Октября, 2011 - 19:49:04
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


ams, хз чёт у меня не работает:

PHP:
скопировать код в буфер обмена
  1. $str[] = '1       t3e4|ttt3e4|tttt3e4';
  2. $str[] = '8       g|ggg|gggg';
  3. $str[] = '5       s|ss|sss';
  4.  
  5. foreach($str as $v){
  6.  $a[] = preg_replace('/(\d+)\s+(\S+)/','$1@$2',$v) . "<br>";
  7.  list ($id, $data) = explode('@',$a, 2);
  8.  if ($id == '1'){
  9.   list ($music, $films, $interest) = explode("|",$data,3);
  10.   echo $music.$films.$interest;
  11.  }
  12. }
  13.  

можешь полностью написать, я уже и так запутался, заранее буду признателен!

(Отредактировано автором: 01 Октября, 2011 - 20:29:49)

 
 Top
ams
Отправлено: 01 Октября, 2011 - 22:18:08
Post Id



Посетитель


Покинул форум
Сообщений всего: 351
Дата рег-ции: Нояб. 2010  


Помог: 13 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. $str[] = '1       t3e4|ttt3e4|tttt3e4';
  3. $str[] = '8       g|ggg|gggg';
  4. $str[] = '5       s|ss|sss';
  5.  
  6. foreach($str as $v)
  7. {
  8.         $a = preg_replace('/(\d+)\s+(\S+)/','$1@$2',$v);
  9.         list ($id[], $data) = explode('@',$a);
  10.         list ($music[], $films[], $interest[]) = explode("|",$data);
  11. }
  12. echo '<pre>';
  13. print_r($id);
  14. print_r($music);
  15. // и так далее)
  16.  
 
 Top
White
Отправлено: 01 Октября, 2011 - 22:35:04
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




reslear
PHP:
скопировать код в буфер обмена
  1. $file=file('filename.txt');
  2. foreach($file as $value) {
  3.   $value=str_replace(array(" ", "\0", "\x0B"), "\t", trim($value));
  4.   $value_arr=explode("\t", $value);
  5.   $row[]['id']=$value_arr[0];
  6.   $row[]['data']=$value_arr[count($value_arr)-1];
  7.   unset($value_arr);
  8. }
  9. print_r($row);

если файл большой, строковыми функциями будет быстрее


-----
if(time()>1356048000) die();
 
 Top
reslear
Отправлено: 02 Октября, 2011 - 04:19:27
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


White, как вывести данные чёт я не врубон с этими массивами!
 
 Top
illy
Отправлено: 02 Октября, 2011 - 12:24:04
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




PHP:
скопировать код в буфер обмена
  1. foreach($row as $k){
  2. echo 'id='.$k['id'].' data='.$k['data'].'<br>';
  3. }


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
reslear
Отправлено: 02 Октября, 2011 - 13:14:19
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


illy,

PHP:
скопировать код в буфер обмена
  1. $file=file('data.dat');
  2. foreach($file as $value) {
  3.   $value=str_replace(array(" ", "\0", "\x0B"), "\t", trim($value));
  4.   $value_arr=explode("\t", $value);
  5.   $row[]['id']=$value_arr[0];
  6.   $row[]['data']=$value_arr[count($value_arr)-1];
  7.   unset($value_arr);
  8. }
  9. foreach($row as $k){
  10. echo  'id='.$k['id'].' data='.$k['data'].'<br>';
  11. }


вот что мне вывело:

CODE (htmlphp):
скопировать код в буфер обмена
  1. id=1 data=<br>id= data=t3e4|ttt3e4|tttt3e4<br>id=8 data=<br>id= data=g|ggg|gggg<br>id=5 data=<br>id= data=g|ggg|gggg<br>



то есть непраильно чё-то работает, а ещё нужно как то проверку сделать:
if ($id == $_GET['user']){
а тут data этого id в строке
}
 
 Top
White
Отправлено: 02 Октября, 2011 - 14:39:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




reslear приложите пожалуйста ваш data.dat
(Добавление)
PHP:
скопировать код в буфер обмена
  1.     $file=file('data.dat');
  2.     foreach($file as $index=>$value) {
  3.       $value=str_replace(array(" ", "\0", "\x0B"), "\t", trim($value));
  4.       $value_arr=explode("\t", $value);
  5.       $row[$index]['id']=$value_arr[0];
  6.       $row[$index]['data']=$value_arr[count($value_arr)-1];
  7.       unset($value_arr);
  8.     }
  9.     foreach($row as $k){
  10.     echo  'id='.$k['id'].' data='.$k['data'].'<br>';
  11.     }

тупанул немного


-----
if(time()>1356048000) die();
 
 Top
reslear
Отправлено: 02 Октября, 2011 - 17:29:50
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


....

(Отредактировано автором: 04 Октября, 2011 - 10:33:36)

 
 Top
reslear
Отправлено: 04 Октября, 2011 - 02:06:07
Post Id


Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)

[+]


... спасибо !

(Отредактировано автором: 04 Октября, 2011 - 10:34:02)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB