RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Хватов Сергей
Статус: Академик
Рейтинг: 73
∙ повысить рейтинг »
Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 13
∙ повысить рейтинг »
Асмик Гаряка
Статус: Советник
Рейтинг: 0
∙ повысить рейтинг »

∙ PHP / Perl / Python

Номер выпуска:1296
Дата выхода:19.08.2017, 12:15
Администратор рассылки:Коцюрбенко Алексей aka Жерар (Мастер-Эксперт)
Подписчиков / экспертов:18 / 13
Вопросов / ответов:3 / 6

Консультация # 186793: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: на странице сайта идёт раздача документов в формате Ворд эти файлы я вручную закидываю на хост, те кто по умнее хотели бы эти документы скачивать в заархированом виде, так вот, чтобы мне этим не парится мне можно архивацию возложить на сервер? или это я загнул? если ...
Консультация # 70786: Приветствую уважаемые коллеги и с праздниками! Имеется шаблон обычной HTML таблицы (исходник в приложении) в виде графической рамки в которой будет выводиться графика и текст из базы данных и текстовых файлов. Эта рамка сохранена как отдельный HTML блок и выводится в страницах средствами PHP. Каким образом мне теперь отобразить внутри...
Консультация # 35597: Можно ли передать в скрипт имя ссылки (желательно не явно) по которой мы перешли к данному документу? Например. Есть некий файл one.php со строкой: <a href="two.php" name="Suda">Сюда</a> <a href="two.php" name="Tuda">Туда</a> А в файле two.php мы могли узн...

Консультация # 186793:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
на странице сайта идёт раздача документов в формате Ворд
эти файлы я вручную закидываю на хост, те кто по умнее хотели бы эти документы скачивать в заархированом виде, так вот, чтобы мне этим не парится мне можно архивацию возложить на сервер?
или это я загнул? если можно то как?
код напишите, спасибо

Дата отправки: 09.11.2012, 21:40
Вопрос задал: Ципихович Эндрю
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Коцюрбенко Алексей aka Жерар (Мастер-Эксперт):

Здравствуйте, Ципихович Эндрю!

Вот пример кода:

Код (HTML) :: выделить код
<html>
<head>
 <title>Архивация файла</title>
</head>
<body>
<?php
 if (isset($_FILES['file']) AND $_FILES['file']['error']==0)
 {
 $zip_archive = new ZipArchive();
 $zip_file_name = substr_replace($_FILES['file']['name'], '.zip', strrpos($_FILES['file']['name'],'.'));
  if ($zip_archive -> open(getcwd()."/$zip_file_name", ZIPARCHIVE::CREATE) == TRUE)
  {
  $zip_archive -> addFile($_FILES['file']['tmp_name'], $_FILES['file']['name']);
  $zip_archive -> close();
  echo "<a href='$zip_file_name'>Ссылка для загрузки архива</a>";
  }
  else echo "<div>Архив не может быть создан</div>";  
 }
else echo "
 <form method=post enctype='multipart/form-data'>
 <div>Выберите файл: <input type=file name='file'> <input type=submit value='Отправить'> </div>
 </form>";
?>
</body>
</html>

Он загружает исходный файл на хостинг и сразу создаёт архив, используя класс ZipArchive. Сперва создаётся объект:
Код (PHP) :: выделить код
$zip_archive = new ZipArchive()


Потом открывается новый zip-архив:
Код (PHP) :: выделить код
$zip_archive -> open(getcwd()."/$zip_file_name", ZIPARCHIVE::CREATE)

Первый параметр метода open - имя архива с полным путём (здесь оно получается из имени исходного файла заменой расширения на .zip и добавлением пути текущего каталога, Вы можете использовать для хранения архивов какой-то другой каталог и выбирать любое имя). Второй параметр - режим открытия (ZIPARCHIVE::CREATE означает создание нового архива). Возвращается TRUE, если архив успешно создан.

Затем к архиву добавляется файл (это можно повторить несколько раз):
Код (PHP) :: выделить код
$zip_archive ->
addFile($_FILES['file']['tmp_name'], $_FILES['file']['name'])

Первый параметр метода addFile - имя добавляемого файла с полным путём (здесь это временный файл, созданный при загрузке через форму, Вы можете указать любое нужное имя), второй - имя файла внутри архива (если его не указывать, файл запишется в архив под своим именем вместе с полным путём). Возвращается TRUE, если файл успешно добавлен.

В конце закрывается созданный а рхив с сохранением всех добавлений:
Код (PHP) :: выделить код
$zip_archive -> close();


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

Консультировал: Коцюрбенко Алексей aka Жерар (Мастер-Эксперт)
Дата отправки: 10.11.2012, 15:32
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 70786:

Приветствую уважаемые коллеги и с праздниками!

Имеется шаблон обычной HTML таблицы (исходник в приложении) в виде графической
рамки в которой будет выводиться графика и текст из базы данных и текстовых файлов. Эта рамка сохранена как отдельный HTML блок и выводится в страницах средствами PHP. Каким образом мне теперь отобразить внутри каждой рамки нужный текст если этих рамок в одной странице будет несколько и текст в каждой рамке тоже разный? Интересует больше теоретическая часть реализации.

Заранее всем спасибо!

Дата отправки: 13.01.2007, 20:53
Вопрос задал: Web-Extrime
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Cimus:

Здравствуйте, Web-Extrime!
Втом месте где нужно сделать подстановку значений поставте маркеры вида
@text@, далее получаете табличку из бызы данных и помещаете её в одну переменную, а данные которые нужно подставить вместо @text@ в массив,
потом собственно ищите при помощи регулярных выражений метса помеченные нужным образом и производите замену.
В таблице может быть несколько маркеров, и соответственно Вы можете подставлять не одно значение, а сколько душе угодно, вот собственно поэтому сами значения для вставок и помещаем в массив.
Это немного теории, в приложении Вы найдёте рабочий код.

Приложение:

Консультировал: Cimus
Дата отправки: 13.01.2007, 21:35
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 35597:

Можно ли передать в скрипт имя ссылки (желательно не явно) по которой мы перешли к данному документу?

Например.
Есть некий файл one.php со строкой:
<a href="two.php" name="Suda">Сюда</a>
<a href="two.php" name="Tuda">Туда</a>

А в файле two.php мы могли узнать по какой ссылке перешли (не используя метод GET).

Дата отправки: 17.02.2006, 10:14
Вопрос задал: Connery
Всего ответов: 4
Страница онлайн-консультации »


Консультирует Straight:

Здравствуйте, Connery!

Можно на onClick вешать запись в куку.
Например так:
<a href="two.php" name="Suda" onClick="setCookie(\'linkname\',this.name)">Сюда</a>
PHP потом возмет значение из $_COOKIE[\'linkname\']

Приложение:

Консультировал: Straight
Дата отправки: 17.02.2006, 10:33
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Андрей_26rus:

Здравствуйте, Connery!
Можно сделать так:

в файл one.php помещаеш следующее:

<form name="suda" method="post" action="two.php">
<a href="#" onclick="javascript:suda.submit();">Сюда</a>
<input name="ssilk" value="0" type="hidden"></form>

<form name="tuda" method="post" action="two.php">
<a href="#" onclick="javascript:tuda.submit();">Туда</a>
<input name="ssilk" value="1" type="hidden"></form>

а в файле two.php проверяешь $_POST[\'ssilk\']
если $_POST[\'ssilk\']=0 тогда include(\'suda.php\');
если $_POST[\'ssilk\']=1 тогда include(\'tuda.php\');

думаю принцип понятен...

P.S. у таких ссылок есть недостаток - они не будут индексироваться поисковыми роботами

Консультировал: Андрей_26rus
Дата отправки: 17.02.2006, 10:57
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Ерёмин Андрей:

Здравствуйте, Connery!
А можно не мудрить с куками и с JS, ибо не у всех эти вещи включены.
На мой взгляд, самый простой способ:
<a href="two.php?suda">Сюда</a>
<a href="two.php?tuda">Туда</a>
Страница ведь откроется одна и та же...
А в two.php обработчик:
if (isset($suda)) { нажали на "Сюда" }
if (isset($tuda)) { нажали на "Туда" }

Консультировал: Ерёмин Андрей
Дата отправки: 17.02.2006, 13:14
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Lector:

Здравствуйте, Connery!

смотри в разделе переменных

Консультировал: Lector
Дата отправки: 18.02.2006, 04:42
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное