HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

exlpode()
  #1  
Старый 08.05.2007, 03:41
Linuxoid
Участник форума
Регистрация: 13.02.2007
Сообщений: 205
С нами: 10125863

Репутация: 55
Exclamation exlpode()

Товарищи! Извините конечно если туплю, но есть пара вопросов про explode().

1. как чделать чтобы за сепаратор брался перенос строки (надо чтобы отображалось кол-во строк в файле).

2. Можно ли както вбить данные из 2х файлов в 1 массив? Ну тоесть имеем 2 определенных сайта. Там есть база юзеров в формате (одинаковом) "юзер|аська". Кидаем эти файлы в одну дерикторию. Как брать инфу из них 2х и все в один массив (при помощи foreach)?


Если сильно туплю - по голове не бить
 
Ответить с цитированием

  #2  
Старый 08.05.2007, 08:12
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,315
С нами: 10248806

Репутация: 2371


По умолчанию

Цитата:
Сообщение от Linuxoid  
1. как чделать чтобы за сепаратор брался перенос строки (надо чтобы отображалось кол-во строк в файле).
PHP код:
$exp explode("\r\n"$file); // For win32
$exp explode("\n"$file); // For Unix 
А для того чтобы посчитать кол-во строк в файле
PHP код:
echo count(file('file.txt')); 
Цитата:
Сообщение от Linuxoid  
2. Можно ли както вбить данные из 2х файлов в 1 массив? Ну тоесть имеем 2 определенных сайта. Там есть база юзеров в формате (одинаковом) "юзер|аська". Кидаем эти файлы в одну дерикторию. Как брать инфу из них 2х и все в один массив (при помощи foreach)?
Чуть не понял =)
 
Ответить с цитированием

  #3  
Старый 08.05.2007, 09:41
Linuxoid
Участник форума
Регистрация: 13.02.2007
Сообщений: 205
С нами: 10125863

Репутация: 55
Wink

С подсчетом строк сам разобрался, но всеравно спасибо.

Цитата:
Чуть не понял =)
Имеем 3 файла:

users.txt
Код:
DialSoft|2525302
Pupkin|11111111
Medved|5282456
users2.txt
Код:
Lamer|11466223
MegoLamer|16723465
Hacker|24377457
out.php
PHP код:
<?php
$data 
file("users.txt");
$data array_reverse($data);
foreach (
$data as $v)
{
$v explode("|"$v);

echo
"User: $v[0] <br> ICQ: $v[1]";
?>
1 и 2 файлы - базы юзеров. Формат: user|icq.
3 файл - выводит их из файла users.txt.

Так вот как сделать так, чтобы файл out.php выводил ВСЕХ юзеров из users.txt и users2.txt?

Думаю ты понял что я имею в виду...
 
Ответить с цитированием

  #4  
Старый 08.05.2007, 10:05
SMiX
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
С нами: 10944326

Репутация: 174
По умолчанию

Ну и как всегда, если файл большой, то надо делать так:
PHP код:
$f fopen('file.txt','r');
$count=0;
while(!
feof($f))
{
    
fgets($f);
    
$count++;
}
fclose($f);
//В переменной $count будет кол-вот строк. Php сам определит, какой разделитель нужно использовать(\r\n \n и т.п.) 
 
Ответить с цитированием

  #5  
Старый 08.05.2007, 10:28
Linuxoid
Участник форума
Регистрация: 13.02.2007
Сообщений: 205
С нами: 10125863

Репутация: 55
По умолчанию

Цитата:
Ну и как всегда, если файл большой, то надо делать так
Простите за отклонение от темы, но насколько большой? 10, 100, 1000 строк? ПРосто мне бы както чтоб все побыстрее обрабатывалось надо...
 
Ответить с цитированием

  #6  
Старый 08.05.2007, 10:39
GreenBear
наркоман с медалью
Регистрация: 07.05.2005
Сообщений: 3,704
С нами: 11058146

Репутация: 4536


По умолчанию

PHP код:
$array = array();
$files = array('us1''us2');
foreach(
$filea as $f){
$fp fopen($f'r');
while(!
feof($fp)) $array[] = rtrim(fgets($fp));
fclose($fp);
}
print_r($array); 
 
Ответить с цитированием

  #7  
Старый 08.05.2007, 20:07
Developer
Участник форума
Регистрация: 03.05.2006
Сообщений: 167
С нами: 10537698

Репутация: 116
По умолчанию

Атцы ПХП ))

Вот намалевал:

PHP код:
<?php

function getList($list, &$array)
{
    
$url parse_url($list);
    if (
$fp fsockopen($url['host'], 80$errno$errstr30)) {
        
$headers 'GET ' $url['path'] . ' HTTP/1.0' PHP_EOL;
        
$headers .= 'Host: ' $url['host'] . PHP_EOL;
        
$headers .= 'Connection: Close' PHP_EOL PHP_EOL;
        
fwrite($fp$headers);
        while (!
feof($fp)) {
             
$array[] = fgets($fp1024);
        }
        
fclose($fp);
        return 
true;
    } else {
        return 
false;
    }
}

$icq[0] = array();
$icq[1] = array();

echo 
'<pre>' PHP_EOL;

if (!
getList('http://site1.com/base.txt'$icq[0])) {
    echo 
'Ошибка при загрузке первого списка' PHP_EOL;
} else {
    echo 
'Первая база содержит ' count($icq[0]) . ' адресов' PHP_EOL;
}

if (!
getList('http://site2.com/base.txt'$icq[1])) {
    echo 
'Ошибка при загрузке второго списка' PHP_EOL;
} else {
    echo 
'Вторая база содержит ' count($icq[1]) . ' адресов' PHP_EOL;
}

$base array_merge($icq[0], $icq[1]);

echo 
'Общая база содержит ' count($base) . 'адресов' PHP_EOL;

echo 
'</pre>';

?>
 
Ответить с цитированием

  #8  
Старый 08.05.2007, 21:22
hackconnect
Познающий
Регистрация: 08.03.2007
Сообщений: 65
С нами: 10092753

Репутация: 16
По умолчанию

Цитата:
$exp = explode("\r\n", $file); // For win32
$exp = explode("\n", $file); // For Unix
PHP код:
$exp explode("\r\n"$file); // universal 
)

А для количества строк:
PHP код:
$file=file('yourfile.txt');
$strnum=sizeof($file); 
и никаких циклов)
 
Ответить с цитированием

  #9  
Старый 12.05.2007, 20:04
SMiX
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
С нами: 10944326

Репутация: 174
По умолчанию

Цитата:
Сообщение от Linuxoid  
Простите за отклонение от темы, но насколько большой? 10, 100, 1000 строк? ПРосто мне бы както чтоб все побыстрее обрабатывалось надо...
В любом случае мой вариант будет быстрее. ПРи 10 строках разница будет незаметна, а при 1 гиге очень даже заметна. да и вообще через ваши file() и коунты с эксплоудами скрипт вылетит с ошибкой , связанной с большим количеством потребляемой памяти.
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.