PHP.SU

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

Страниц (5): « 1 [2] 3 4 5 »

> Найдено сообщений: 71
soleg Отправлено: 01 Ноября, 2013 - 19:11:24 • Тема: создание zip архива • Форум: Вопросы новичков

Ответов: 7
Просмотров: 375
Не сталкивался с этим, но вот так должно работать.

после
PHP:
скопировать код в буфер обмена
  1. $file_folder = "../../uploads/document/"; // папка с файлами

добавить


а
PHP:
скопировать код в буфер обмена
  1.  
  2. $zip->addFile($file_folder.$file); // добавляем файлы в zip архив
  3.  

заменить на
PHP:
скопировать код в буфер обмена
  1. $zip->addFile($file); // добавляем файлы в zip архив
soleg Отправлено: 01 Ноября, 2013 - 18:26:50 • Тема: Парсер конфиг файла • Форум: Регулярные выражения

Ответов: 11
Просмотров: 630
EuGen пишет:
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/param\=([^\r\n]*)[\r\n]+data\=([^\r\n]*)/i', $text, $matches);
  2. $matches = array_combine($matches[1], $matches[2]);
  3. //var_dump($matches);

?

То что нужно, большое спасибо!
soleg Отправлено: 01 Ноября, 2013 - 16:30:31 • Тема: Парсер конфиг файла • Форум: Регулярные выражения

Ответов: 11
Просмотров: 630
teddy пишет:
soleg пишет:
Это так же. Во первых имена опций не могут повторяться, т.е. указанный в примере код вернёт,

Так и должно быть, вам ж конфиг файл надо спарсить... конфиг это обычно директива=значение
а как правило директира всегда уникальна... посмотрите ваш пример(у вас повторяются директивы через одну)... в реальном конфиг файле это нормально будет работать

Вот поэтому это и проблема(.

Интересует всё же решение на регулярках.

param=(всё до перевода строки или до "data=")data=(и тут так же всё до перевода строки)
soleg Отправлено: 01 Ноября, 2013 - 16:20:32 • Тема: Парсер конфиг файла • Форум: Регулярные выражения

Ответов: 11
Просмотров: 630
caballero пишет:
explode()

Хм, как по мне это вообще не вариант.

teddy пишет:

Это так же. Во первых имена опций не могут повторяться, т.е. указанный в примере код вернёт,
PHP:
скопировать код в буфер обмена
  1.  
  2. (
  3.     [param] => name
  4.     [data] => value
  5. )
  6.  

во вторых нужно получить именно парные значения.
Т.е. из файла
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. param=name
  3. data=value
  4. param=name
  5. data=value
  6. param=name
  7. data=value
  8. param=name
  9. data=value
  10. param=value
  11.  

вернётся только 4 значения param+data

Не могу нормально объяснить просто, соори.
soleg Отправлено: 01 Ноября, 2013 - 15:58:03 • Тема: Парсер конфиг файла • Форум: Регулярные выражения

Ответов: 11
Просмотров: 630
Всем привет.

Такая проблема. Есть файл вида
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. param=name
  3. data=value
  4. param=name
  5. data=value
  6. param=name
  7. data=value
  8. param=name
  9. data=value
  10.  

Нужно получить значения каждой пары param + data.
Т.е. что то вроде
PHP:
скопировать код в буфер обмена
  1. preg_match_all('|param\=(.*)\ndata\=(.*)|si', $file, $matches);


Нужно решение только на регулярках.
soleg Отправлено: 20 Октября, 2013 - 19:34:24 • Тема: Получить последнюю строку файла • Форум: Вопросы новичков

Ответов: 32
Просмотров: 1808
OrmaJever пишет:
размер строк хотя бы примерно известен?


39-45

строки такого вида
PHP:
скопировать код в буфер обмена
  1.  
  2. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX
  3.  
soleg Отправлено: 20 Октября, 2013 - 19:12:05 • Тема: Получить последнюю строку файла • Форум: Вопросы новичков

Ответов: 32
Просмотров: 1808
Всем привет.
В общем есть файлик весит, который около 6ГБ (около 200кк строк).
Как максимально быстро получить последнюю строку файла?
soleg Отправлено: 30 Августа, 2013 - 12:28:47 • Тема: Скорость времени x2 • Форум: Вопросы новичков

Ответов: 15
Просмотров: 587
OrmaJever пишет:
когда я читал этой строки
Al_KidSe пишет:
=> затем умножить его на 2

не было, поэтому и написал.
но всёравно тогда пункт
Al_KidSe пишет:
=> результат плюсуем ко времени полученного из файла

бесмыслен, т.к. нам нужно только время, а остаток никак не повлияет на него.


При разработке приложения уж точно бессмысленно не будет.

Записать всё в функцию просто, и затем выводить нужную дату в игре без лишних телодвижений.

PHP:
скопировать код в буфер обмена
  1.  
  2. define("GAME_START", 1377542784);
  3. function gdate($format = "H:i:s")
  4. {
  5.     return date($format, (GAME_START + (time() - GAME_START) * 2));    
  6. }
soleg Отправлено: 27 Августа, 2013 - 22:39:11 • Тема: Перенаправление при открытии картинки • Форум: Вопросы новичков

Ответов: 4
Просмотров: 189
pitbullko пишет:
Да, очень похоже!
Но я так понял, что там картинки не будут отображаться, а можно ли сделать чтобы отображалось, а при переходе на нее - редиректить?

Конечно если такое невозможно, или трудно реализуемо то не стоит заморачиваться - защита от хотлинка это то что нужно.


Думаю такая реализация невозможна, хотя буду рад если не прав.

Просто выдавай картинку с названием сайта вместо запрашиваемой картинки, уже гуд, бесплатная реклама))

Да и как по мне, если удастся реализовать кликабельную картинку, то пользователи не будут в восторге от такого перехода на твой сайт.
soleg Отправлено: 27 Августа, 2013 - 22:21:00 • Тема: Перенаправление при открытии картинки • Форум: Вопросы новичков

Ответов: 4
Просмотров: 189
Защита от хотлинков?

http://www[dot]armadaboard[dot]com/articles45[dot]htm
soleg Отправлено: 27 Августа, 2013 - 21:57:16 • Тема: Скорость времени x2 • Форум: Вопросы новичков

Ответов: 15
Просмотров: 587
OrmaJever пишет:
soleg пишет:
=> результат плюсуем ко времени полученного из файла
нет, так будет не правильно.
Например начальная точка 8.20, через реальный час в игре будет 10.20, а по вашей формуле 9.20. Или я не так понял


PHP:
скопировать код в буфер обмена
  1. $time_fix = 1377542784; //фиксированное время начала
  2. $time_now = time(); // сейчас время
  3. $raznica = $time_now - $time_fix; // Получаем разницу между началом и данным временем
  4. $raznica_game = $raznica * 2; // ПОлучаем время которое прошло в игре с момента начала
  5. $game_time =  $time_fix + $raznica_game; // Время пройденное в игре плючуем к фикированной дате,т.е. к дате начала
  6.  
  7. echo "Время начала: ({$time_fix}) " . date("d-m-Y H:i:s", $time_fix).PHP_EOL;
  8. echo "Прошло в реальном времени : ({$raznica})" . PHP_EOL;
  9. echo "Прошло в игре времени : ({$raznica_game})" . PHP_EOL;
  10. echo "Время в игре: ({$game_time}) " . date("d-m-Y H:i:s", $game_time).PHP_EOL;
  11. die();


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Время начала: (1377542784) 26-08-2013 22:46:24
  3. Прошло в реальном времени : (86969)
  4. Прошло в игре времени : (173938)
  5. Время в игре: (1377716722) 28-08-2013 23:05:22
  6.  


Al_KidSe пишет:

Спасибо, большое. Реально, сработало.

Сарказм?
Ты ведь даже не вдумался в мою мысль. Даже если она не совсем верная, то возможно в процессе осознания её неточности, у тебя самого возникнет правильная идея для реализации.
soleg Отправлено: 27 Августа, 2013 - 21:33:46 • Тема: Скорость времени x2 • Форум: Вопросы новичков

Ответов: 15
Просмотров: 587
OrmaJever пишет:
Можно взять точку отсчёта (записать в некий файл timestamp начала игровой эпохи)

Вычитать из текущего времени значение из этого файла
=> затем умножить его на 2
=> результат плюсуем ко времени полученного из файла
=> получаем нужную дату.
=> Передаём это значение клиенту,
=> на стороне клиента с помощью javascript и простого таймера с половинчатой секундой показываем пользователю "реальное" время.
soleg Отправлено: 27 Августа, 2013 - 21:19:16 • Тема: Память запросов в константах и переменных • Форум: Вопросы новичков

Ответов: 3
Просмотров: 179

В переменную $username ты передаёшь только значение возвращаемое функцией, а не саму функцию.


Цитата:
будет ли повторно производиться запрос к таблице users

не будет, почему написано выше.

Цитата:
И как в таком случае, поступит php, если обратиться не к этой переменной/константе, а напрямую к функции username()

Вернёт результат выполнения этой функции


EuGen пишет:
Константа вычислится единожды при вызове define и не будет далее переопределена никаким образом. Константа есть просто статическое значение, попадающее в результирующий опкод после интерпретации исходного скрипта.
soleg Отправлено: 27 Августа, 2013 - 21:01:43 • Тема: Где ошибка ??? • Форум: Вопросы новичков

Ответов: 4
Просмотров: 207
Synov_son пишет:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. class Tables extends Config {
  3.         public $usr = "{$this->db_pref}user";
  4.         public $conf = "{$this->db_pref}config";
  5.         public $langs = "{$this->db_pref}langs";
  6. }
  7. ?>
Не понял

dreamviewer показывает ошибки в строках 3, 5, 6. Где там ошибки ???


Я не силён в ооп поэтому объяснить нормально не могу, но скажу одно что правильно будет в твоём случае вот так

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. class Tables extends Config {
  4.  
  5.         public $usr;
  6.         public $conf;
  7.         public $langs;
  8.        
  9.         public function __construct()
  10.         {
  11.             $this->usr    = "{$this->db_pref}user";
  12.             $this->conf  = "{$this->db_pref}config";
  13.             $this->langs = "{$this->db_pref}langs";
  14.         }
  15. }
  16.  


// упс дабл Ниндзя
soleg Отправлено: 27 Августа, 2013 - 14:21:04 • Тема: замена строки в файле • Форум: Вопросы новичков

Ответов: 3
Просмотров: 319
PHP:
скопировать код в буфер обмена
  1.  
  2. // файл в котором нужно изменить строку (или строки)
  3. $file = "test.txt";
  4. // Задаём массив с номерами строк и их значением для изменения
  5. $numbers_str_replace = array();
  6. $numbers_str_replace[2] = "222:444";  // в данном случае на на 2-ой строке файла будет записано - 222:444
  7. $numbers_str_replace[4] = "new value";   // в данном случае на на 4-ой строке файла будет записано - new value
  8.  
  9. $handle = fopen($file, "r");
  10. $str_num = 1;
  11. $file_data = "";
  12. while (!feof($handle))
  13. {
  14.     $buffer = fgets($handle, 4096);
  15.     $file_data .= isset($numbers_str_replace[$str_num])  ? $numbers_str_replace[$str_num] . PHP_EOL : $buffer;
  16.     $str_num++;
  17. }
  18. fclose($handle);
  19. file_put_contents($file, $file_data);
  20.  

Страниц (5): « 1 [2] 3 4 5 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB