ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 55
Отправить сообщение для Linuxoid с помощью ICQ
Exclamation exlpode()

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

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

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


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

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

Репутация: 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
Linuxoid
Участник форума
Регистрация: 13.02.2007
Сообщений: 205
Провел на форуме:
928552

Репутация: 55
Отправить сообщение для Linuxoid с помощью ICQ
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
SMiX
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
Провел на форуме:
457850

Репутация: 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
Linuxoid
Участник форума
Регистрация: 13.02.2007
Сообщений: 205
Провел на форуме:
928552

Репутация: 55
Отправить сообщение для Linuxoid с помощью ICQ
По умолчанию

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

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

Репутация: 4536


Отправить сообщение для GreenBear с помощью ICQ
По умолчанию

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
Developer
Участник форума
Регистрация: 03.05.2006
Сообщений: 167
Провел на форуме:
125505

Репутация: 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
hackconnect
Познающий
Регистрация: 08.03.2007
Сообщений: 65
Провел на форуме:
91259

Репутация: 16
Отправить сообщение для hackconnect с помощью ICQ
По умолчанию

Цитата:
$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
SMiX
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
Провел на форуме:
457850

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

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





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


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




ANTICHAT.XYZ