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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Чтение файла

Сообщения:  [1-10]   [11-16] 

 
 автор: mrklon   (28.10.2006 в 14:29)   письмо автору
 
   для: kasmanaft   (28.10.2006 в 06:48)
 

Извиняюсь за путаницу.
preg_replace использую для врисывания данных в шаблон сообщения (гостевуха).

и вот кучку типа:
$vivod=preg_replace("/{{nik}}/", $nik[$n+$i],$msg);
$vivod2=preg_replace("/{{mail}}/", $mail[$n+$i],$vivod);
$vivod3=preg_replace("/{{web}}/", $web[$n+$i],$vivod2);
$vivod4=preg_replace("/{{msg}}/", $mmm[$n+$i],$vivod3);

свести к одному preg_replace
------------

За "пс: в рег. выражениях preg_replace, выражение нужно брать в ограничители - 2 практически любых, одинаковых самвола по краям"
Спасибо!

   
 
 автор: kasmanaft   (28.10.2006 в 06:48)   письмо автору
 
   для: mrklon   (28.10.2006 в 01:03)
 

В каком виде у вас данные в файлах записаны?
Да и тут наверное лугше будет воспользоваться ф-ей str_replace (строковые ф-и работают быстрее, а тут еще такая простая замена):

<?
$text 
"text {{nik}} text {{nik}}";
echo 
preg_replace ("/{{nik}}/is""VASYA"$text),'<br>';
echo 
str_replace ('{{nik}}''VASYA'$text);
?>

пс: в рег. выражениях preg_replace, выражение нужно брать в ограничители - 2 практически любых, одинаковых самвола по краям

   
 
 автор: mrklon   (28.10.2006 в 01:03)   письмо автору
 
   для: Unkind™   (27.10.2006 в 23:23)
 

Вот про оперативную память я забыыыл совсем...я пока оставил это.
Вот новая задачка:
Есть код:

$vivod=preg_replace("{{nik}}", $nik[$n+$i],$msg);

Как сделать, что заменять несколько значений за раз? *Я хочу сказать, чтоб ненадо было дублировать функцию для каждой замены. заменить все зараз)
И еще, вместо "{{nik}}" он должен ввыдавать "Вася", а выает "{Вася}". Почему?

   
 
 автор: Unkind™   (27.10.2006 в 23:23)   письмо автору
 
   для: Fddd   (26.10.2006 в 22:48)
 

for ($i=0; $i<=10000; $i++){
$tex.=$i." Строка Проверка Проверка Проверка Проверка Проверка Проверка Проверка Проверка Проверка Проверка\r\n";
}


Вообще-то есть специальная функция str_repeat()...:)

   
 
 автор: kasmanaft   (27.10.2006 в 23:01)   письмо автору
 
   для: Fddd   (27.10.2006 в 22:56)
 

" .. " - означает "вопрос все еще актуален", up?
я думал это ляп затертый....

Дело наверное в том, что длина строк уже после 10-ков, будет больше ста байт, соответственно приходится одну строку считывать в несколько заходов. Увеличив значение второго аргумента fgets хотя бы на несколько байт время работы сократится существенно (хотя будет не меньше чем file() ).

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

   
 
 автор: Fddd   (27.10.2006 в 22:56)   письмо автору
 
   для: Fddd   (27.10.2006 в 16:00)
 

..

   
 
 автор: Fddd   (27.10.2006 в 16:00)   письмо автору
 
   для: Fddd   (26.10.2006 в 22:48)
 

..

   
 
 автор: Fddd   (26.10.2006 в 22:48)   письмо автору
 
   для: DEM   (25.10.2006 в 19:42)
 

>А что имено вы хранте в файлах? Какую имено информацию?
А это имеет разницу при работе скрипта?

Вот интересно... У меня получилось так что через file получается быстрее чем через fopen.
Для примера возьмёт Деневер и файл весом в 995 КБ.
Пишем в файле file.php:

<?php
list($msec,$sec)=explode(chr(32),microtime());
$HeadTime=$sec+$msec;
/* Сам код */
$file file("files.txt");
foreach (
$file as $a){
        echo 
$a."<br>";
}
/* - - */
list($msec,$sec)=explode(chr(32),microtime());
echo 
"<br>Страница сгенерировалась за ".round(($sec+$msec)-$HeadTime,4)." сек.";
?>

А в файле fopen.php пишем:

<?php
list($msec,$sec)=explode(chr(32),microtime());
$HeadTime=$sec+$msec;
/* Сам код */
$file fopen("files.txt""r");
while (!
feof($file)) {
$text fgets($file100);
echo  
$text."<br>";
}
/* - - */
list($msec,$sec)=explode(chr(32),microtime());
echo 
"<br>Страница сгенерировалась за ".round(($sec+$msec)-$HeadTime,4)." сек.";
?>

Для того чтобы создать проверочный текстовый файл(files.txt) пишем скрипт:

<?php
$f 
fopen("files.txt""a+");
$tex="";
for (
$i=0$i<=10000$i++){
$tex.=$i." Строка Проверка Проверка Проверка Проверка Проверка Проверка Проверка Проверка Проверка Проверка\r\n";
}
fwrite ($f$tex);
?>

   
 
 автор: DEM   (25.10.2006 в 19:42)   письмо автору
 
   для: Fddd   (25.10.2006 в 19:30)
 

А что имено вы хранте в файлах? Какую имено информацию?

   
 
 автор: Alph[p]a   (25.10.2006 в 19:41)   письмо автору
 
   для: Fddd   (25.10.2006 в 19:30)
 

>$text = fgets($file, 1000);
руководство по php:
string fgets (int fp, int length)
там сказано что параметр "int length" это длина возвращаемой строки, мол если в строке встречается символ "\n" то возвращаються все элементы до этого знака..
А так всё правильно. На скорость само собой будет влиять, смотря какой длины строка...

   

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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