Forum Webscript.Ru
Программирование => PHP => Тема начата: 017 от 26 Марта 2004, 12:18:46
-
Есть вообще способ из скрипта на одном сервере открыть файл на дозапись находящийся на другом? Или все создавать локально и отправлять на удаленный сервер? Какие можно использовать методы?
Прошу не закрывать сразу тему. Информацию по этому вопросу мне найти не удается.
-
017:
HTTP connections are read-only ???
да - тебе было написано об этом в тексте ошибки
http://www.php.net/manual/ru/features.remote-files.php
тема закрыта. учись пользоваться документацией.
-
017:
можно использовать методы?
[p]ftp[/p]
-
RomikChef:
[p]ftp[/p]
или
пользоваться [p]mail[/p], отправлять данные письмом и разбирать их на удаленном сервере.
или поставить на удаленном сервере скрипт который будет принимать данные от локального сервера через POST
или поставить на удаленном сервере скрипт, который будет тащить данные с локального через GET или через POST
-
RomikChef:
ftpphp.net
Да, ftp_put — врде неплохо справляется.
ThE0ReTiC:
http://www.php.net/manual/ru/features.remote-files.php
fopen("ftp://... Не помогло, потому как: Unfortunately that would not work because the fopen() call will fail if the remote file already exists. А мне как раз нужно дописать уже существующий.
AliMamed:
скрипт который будет принимать данные от локального сервера через POST
Наверное самый подходящий метод (с учетом что помимо локального, обновлять данные нужно будет не на одном удаленном), но попробовать еще не успел.
Спасибо за помощь.
-
если это будет решение для большого количества удаленных серверов, подключенных к интернет разными каналами, то лучше все таки сделать через почту.
почем привожу пример: канал по которому подключен один из удаленных серверов отваливается. если ты делаешь через POST - тебе мало того, что надо правильно отловить эту ситуацию, надо сформировать очередь неотправленных данных, при следующем запуске проверить эту очередь, через Н-количество запусков проинформировать администратора системы. а зачем велосипед изобретать - все это реализовано в любом смтп сервере
-
017
Может быть, ты все-таки, прекратишь играть в одни ворота, и расскажешь, что за задачу ты решаешь?
а тебе скажут, как это сделать
-
Старался не грузить лишней инфой...
Задача простая. Имеется скрипт, создающий html-таблицы с прайсом из Excel-таблиц. Лежит на сайте предприятия. С появлением сайтов филиалов и завода-изготовителя возникла задача своевременного обновления на всех сайтах информации о ценах. Для каждого сайта делать копию скрипта нерационально. Решил переписать скрипт таким образом, чтобы при обработке исходного файла формировались html-файлы для каждого сайта и сразу-же загружались на нужный (в зависимости от группы продукции, всего - 15 групп). Так как этим обновлением занимаются менеджеры, то старараюсь выполнить, чтобы скрипт работал без указания каких-либо условий, все условия в .cfg. Т.е. указываешь файл, нажимаешь "загрузка" и на тех сайтах, где еще такие-же группы должны будут обновиться соответствующие файлы.
Хранить все на основном сервере в виде csv и строить запрос с дочерних сайтов не хочется, потому как если сайт упадет, то и на всех сайтах будет нерадостная картина.
Может быть я занимаюсь херней и это сделать можно проще. Но сдесь особенность какая. Полный прайс (из 15 файлов) находится только на основном сайте. На дочерних — некоторые его части и в разных оформлениях. Граббить основной сайт дочерними тоже считаю нерационально, когда все может сделать скрипт.
-
прокидывай по FTP
-
017:
Старался не грузить лишней инфой...
на будущее.
Лишняя инфа - это клиолометры кода.
А внятно сформулированная задача, которая привела тебя к твоему вопросу - НИКОГДА на форуме лишней не бывает.
-
ThE0ReTiC:
прокидывай по FTP
Так и сделал. Хочется организовать отладку на локальной машине. Придется делать 2 версии — локальную, которая не ломится на FTP, и рабочую.
-
017
заведи на машине Ftp сервак какой-нить простенький и отлаживай
-
Или вставь отладочную проверку типа
if (getenv(\'HTTP_HOST\') == \'localhost\') ...
-
FreeSpace:
Или вставь отладочную проверку типа
if (getenv(\'HTTP_HOST\') == \'localhost\') ...
Точнее \'SERVER_ADDR\', потому как несколько виртуальных хостов. Спасибо за идею.