HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #7741  
Старый 12.01.2009, 23:39
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

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

Цитата:
Сообщение от .:EnoT:.  
ну раз использовать только один файл и не использовать массивы, то например вот так:
PHP код:
<?php
$file 
'1.txt';
$a '9878687'//После чего вставить
$b 'hg788gjlо'//Что вставить
$open file_get_contents($file);
file_put_contents($filestr_replace($a$a."\r\n".$b$open));

?>
как бы этот пример как и все выше загружает файл в оперативную память

Последний раз редактировалось ntldr; 12.01.2009 в 23:41..
 
Ответить с цитированием

  #7742  
Старый 12.01.2009, 23:42
neval
Moderator - Level 7
Регистрация: 13.12.2006
Сообщений: 531
Провел на форуме:
2127116

Репутация: 383


По умолчанию

Цитата:
Сообщение от .:EnoT:.  
ну раз использовать только один файл и не использовать массивы, то например вот так:
Или так? ))

PHP код:
<?php
$file 
'1.txt';
$a '9878687'//После чего вставить
$b 'hg788gjlо'//Что вставить
$open file_get_contents($file);
file_put_contents($filestr_replace($a$a."\r\n".$b."\r\n"$open));

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

  #7743  
Старый 12.01.2009, 23:49
preda1or
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме:
1495545

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

Цитата:
как бы этот пример как и все выше загружает файл в оперативную память
я так понял что нельзя юзать просто массивы, а как ты выполнишь программу без использования оперативной памяти?o.O
 
Ответить с цитированием

  #7744  
Старый 12.01.2009, 23:51
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Цитата:
Сообщение от ntldr  
как бы этот пример как и все выше загружает файл в оперативную память
Чтение файла это и подразумевает, без этого никак)
Поэтому я лишь привёл более-менее вменяемый и простой пример.

neval, не, там пустая строка образуется, если в конце перенос ставить)
 
Ответить с цитированием

  #7745  
Старый 12.01.2009, 23:55
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

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

Цитата:
Сообщение от .:EnoT:.  
Чтение файла это и подразумевает, без этого никак)
Поэтому я лишь привёл более-менее вменяемый и простой пример.

neval, не, там пустая строка образуется, если в конце перенос ставить)
ну это понятно, просто у лебедя там написано было так. ну в принципе наверно так возможно, но только на ассемблере.

а если файл очень большой можно читать его кусками
 
Ответить с цитированием

  #7746  
Старый 12.01.2009, 23:56
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

$open = file_get_contents($file); - не прокатит файл не поместится в памяти...
Я так думаю тут надо вручную двигать хвост...
т.е. вычисляем длину вставляемых данных, затем указатель на конец файла, пишем в конец пустышку такой длины. Далее указатель на последнее слово в файле, читаем его и пишем в него же с нужным смещением и так в цикле, в итоге пишем нужные данные в нужное свободное место... Реально реализовать так? Может есть уже готовые реализации?
P.S. Нужно работать с малым колличеством памяти (допустим 64 Mб с файлами 200-500Мб.)
Ну конечно можно читать/писать не по 1 слову, а блоками данных опред. длины (лиж бы в памяти помещались).

Последний раз редактировалось -=lebed=-; 13.01.2009 в 00:00..
 
Ответить с цитированием

  #7747  
Старый 13.01.2009, 00:00
AkyHa_MaTaTa
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме:
3152874

Репутация: 1020


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

Цитата:
Сообщение от -=lebed=-  
$open = file_get_contents($file); - не прокатит файл не поместится в памяти...
Я так думаю тут надо вручную двигать хвост...
т.е. вычисляем длину вставляемых данных, затем указатель на конец файла, пишем в конец пустышку такой длины. Далее указатель на последнее слово в файле, читаем его и пишем в него же с нужным смещением и так в цикле, в итоге пишем нужные данные в нужное свободное место... Реально реализовать так? Может есть уже готовые реализации?
P.S. Нужно работать с малым колличеством памяти (допустим 64 Mб с файлами 200-500Мб.)
Тогда придется организовывать циклы, и цитать в память порциями даные из файла в поисках необходимого значения. Аля fgets() - fseek().

Последний раз редактировалось AkyHa_MaTaTa; 13.01.2009 в 00:02..
 
Ответить с цитированием

  #7748  
Старый 13.01.2009, 00:14
-=lebed=-
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме:
12702287

Репутация: 4738


По умолчанию

Цитата:
Сообщение от AkyHa_MaTaTa  
Тогда придется организовывать циклы, и цитать в память порциями даные из файла в поисках необходимого значения.
Ну да, без циклов тут не обойтись...
Вообщем нужна такая функция:
insert_into_file($f,$s,$sring)
$f - file handle
$s - место вставки (для удобства к примеру номер строки, у нас текстовый файл, набор строк, разделённых \n\r)
$sring - вставляемая строка.
 
Ответить с цитированием

  #7749  
Старый 13.01.2009, 00:24
ANTIJABBER
Познающий
Регистрация: 06.01.2009
Сообщений: 37
Провел на форуме:
62317

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

Люди подскажите пожалуйста, как сделать что бы в форме пробел - заменялся знаком?

к примеру вводят - Купить прогу
а скрипт должен вместо пробела поставить символ "#"
Купить#прогу плз =)
 
Ответить с цитированием

  #7750  
Старый 13.01.2009, 00:32
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

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

Цитата:
Сообщение от ANTIJABBER  
Люди подскажите пожалуйста, как сделать что бы в форме пробел - заменялся знаком?

к примеру вводят - Купить прогу
а скрипт должен вместо пробела поставить символ "#"
Купить#прогу плз =)
str_replace(" ","#","Купить прогу");
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



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


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




ANTICHAT.XYZ