Вопрос № 44069: Доброе утро! Такой вопрос: есть функция flock, которая как я понял блокирует доступ к файлы на то время пока с этим файлом работают, а если другие пользователи зашли на страницу, а файл блокирован, то что будет? пользователь просто не получит доступ ...Вопрос № 44110: Привет, эксперт! Подскажите плиз как запустить скрипт на выполнение, но без include и require. Они не подходят, т.к. получается, что скрипт запущен из директории
того скрипта, куда инклюд делаю,а у меня html-файлы с картинками на сервере в др. папке,...
Вопрос № 44.069
Доброе утро! Такой вопрос: есть функция flock, которая как я понял блокирует доступ к файлы на то время пока с этим файлом работают, а если другие пользователи зашли на страницу, а файл блокирован, то что будет? пользователь просто не получит доступ к файлу?
Отвечает: Madproger
Здравствуйте, Грицай Алексей Юрьевич!
Чтобы установить общее запирание (чтение), установите operation в значение LOCK_SH (или 1, в случае версии PHP ниже 4.0.1).
Чтобы установить эксклюзивное запирание (запись), установите operation в значение LOCK_EX (или 2, в случае версии PHP ниже 4.0.1).
Чтобы отпереть файл (после общего или эксклюзивного запирания), установите operation в значение LOCK_UN (или 3, в случае версии PHP ниже 4.0.1).
Если вы не хотите, чтобы flock() блокировал файл при запирании, добавьте LOCK_NB (или 4, при использовании версии PHP ниже 4.0.1) к параметру operation.
http://ru.php.net/manual/ru/function.flock.php
--------- И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 6-ой класс)
Ответ отправлен: 24.05.2006, 10:31
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Грицай Алексей Юрьевич!
Нет, пользователь получит доступ к если несколько экземпляров скрипта захотят произвести запись в файл, то они сделают это по очереди, не толкаясь и не пихая все в одну кучу.
Детальнее - тут - http://www.kurepin.ru/php/zametki/flock/
--------- Ответы на все вопросы - на сайте www.ya.ru :)
Ответ отправил: Устинов Сергей Евгеньевич (статус: 10-ый класс)
Ответ отправлен: 24.05.2006, 10:41 Оценка за ответ: 5
Отвечает: Alexey Vilchinsky
Здравствуйте, Грицай Алексей Юрьевич!
Можно заблокировать файл например только на запись.
Тогда читать его остальные все равно смогут
--------- Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: 8-ой класс)
Ответ отправлен: 24.05.2006, 11:05
Отвечает: Cybernetic_Creature
Здравствуйте, Грицай Алексей Юрьевич!
если вы будете использовать общее запирание то да.
а если использовать ексклюзивное запирание программа будет ждать пока доступ к файлу откроется
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 25.05.2006, 13:54
Вопрос № 44.110
Привет, эксперт! Подскажите плиз как запустить скрипт на выполнение, но без include и require. Они не подходят, т.к. получается, что скрипт запущен из директории того скрипта, куда инклюд делаю,а у меня html-файлы с картинками на сервере в др. папке, получается, что скрипт запущен не из той директории. Короче, мне надо так запустить скрипт, чтобы считалось, что он запущен из той же папки на сервере, где он находится. Надеюсь, я более-менее доступно объяснил :)
Спасибо заранее!!!
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Bullet-Proof!
Можно перед include() поменять текущий каталог на каталог со скриптом, который нужно выполнить - функция cddir() - http://ua2.php.net/manual/ru/function.chdir.php,
а после include() вернуть на предыдущий уровень.
В приложени пример запоминает текущий каталог, изменяет его на другой каталог, инклюдит другой скрипт из этого каталога, а после его выполнения возвращает текущий каталог в исходное состояние.
Приложение:
--------- Ответы на все вопросы - на сайте www.ya.ru :)
Отвечает: PVS
Здравствуйте, Bullet-Proof!
Попробуйте приблизительно так
echo implode("
",file("http://mysite.com/script.php?param1=".$param1."¶m2=".$param2));
В этом случае Ваш скрипт просто выполнится из той директории, где он лежит. Но имейте ввиду, что таким образом его можна выполнить и напрямую - тоесть здесь есть определенные проблеммы с безопасностью.
Ответ отправил: PVS (статус: 2-ой класс)
Ответ отправлен: 24.05.2006, 18:23
Отвечает: Андрющенко Вячеслав Васильевич
Здравствуйте, Bullet-Proof!
Извините, но зачем же так усложнять себе жизнь?=)
Никто не запретит сделать так:
include('../../folder/script.php');
или include('./folder/script.php');
Отвечает: Cybernetic_Creature
Здравствуйте, Bullet-Proof!
была у меня такая проблема.
я должен был некоторые темы форума на первую страницу.
но вместо смайликов показывались квадратики с крестиком (:)).
я просто заменил везде где встречаются <img src=" на <img src="/forum/images
$mtext = str_replace('<img src="',"<img src="/forum/images",$mtext);
так же можно использовать фреймы
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 25.05.2006, 15:42