Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Включение и обработка... не знаю уж как и назвать тему 
:(
    Опции темы
Mal Hack
Дата 23.5.2006, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(vasac @  23.5.2006,  09:55 Найти цитируемый пост)
Mal Hack, конкретно. Что глупость?

Глупость открывать соединение с удаленным сервером через fopen и file_get_contents. Для этого fsockopen существует.

Kirill Baranov, еще раз, прошу объяснить суть задачи. Тебе надо выполнить код или вывести его или что. Если ответа я не получу, тему закрою. Ну невозможно, блин на самом деле уже. 
PM ICQ   Вверх
Kirill Baranov
Дата 23.5.2006, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Да ёлки палки... 
Есть у меня PHP файл, в котором есть и PHP-код и обычный текст, не РНР. Так вот! Скрипт Надо чтобы брался этот файл и производилось его разделение на страницы с выводом оглавления. Всё...


Mal Hack, мне кажется что тока ты не понял в чём фишка  smile  
PM MAIL   Вверх
Mal Hack
Дата 23.5.2006, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Наконец-то. С 5 раза...
file_get_contents - твое решение. 
PM ICQ   Вверх
Kirill Baranov
Дата 23.5.2006, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



Вот даже код:

Код

<?
if (file_exists("$file")) {
 
// == НАЧАЛО ПАГИНАЦИИ
$text_do=file_get_contents("http://site.ru/".$file."");

//$regex = '/{(pagebreak)\s*(.*?)}/i';
$regex = '/{(pagebreak)(\s*title=([^}]+))*}/i';

// найти все образцы разрыва страницы и вставить в $matches
$matches = array();
preg_match_all( $regex, $text_do, $matches);
$titles = $matches[3];

// место разрыва текста
$text = preg_split( $regex, $text_do );

// подсчет числа страниц
$n = count( $text );
$n=$n-1;
if (!$page) $page="0";

if ($n!='0') {
echo '<table width="20%" border="0" align="right" cellspacing="3" cellpadding="5" style="border:1px solid #cccccc; margin:10px;" bgcolor="#FFE9BF">
<tr>
<td><strong>Содержание</strong></td>
</tr>';

$pagenextext=$text[$n];

$i=$n-$n;
while ($i<$n) {
    if ($titles[$i]!="") {
        $pagetitle=$titles[$i];
    } else {
        $pagetitle='Страница '.($i+1).'';
    }
    if ($page==$i) { $bgolor='bgcolor="#FFDB97" style="border:2px dotted #333333"'; } else { $bgolor='style="border:1px solid #FFE9BF"'; }
    echo '<tr><td '.$bgolor.' valign="middle"><a href="'.$arr[1].'/'.$arr[2].'/?page='.$i.'">'.$pagetitle.'</a></td></tr>';
    $i++;
    $pagetitle="";
}
echo '</table>';

}
// == КОНЕЦ ПАГИНАЦИИ
            
echo "<div style=\"padding-left:15px;padding-right:15px;\" align=\"justify\"><font size=2 color=#333333 face=Verdana>$text[$page]</font></span>";

 
 
} else {
?><br><br><br>
<table width="70%" border="0" align="center" cellpadding="2" cellspacing="2" style="border:1px dashed" bgcolor="#F9F9F9">
  <tr>
    <td align="center" valign="middle"><p><br />
          <strong>Уважаемые посетители!<br>
                <br>
            </strong>Информация для этой страницы сайта<br>
            в настоящее время готовится к публикации.<br>
            Приносим свои извинения за причиненные неудобства.</p>
      <p align="right">Администрация сайта. <br />
          <br />
        </p></td>
  </tr>
</table>
<?
}
?>


Это был пагинатор собсно.


А вот файл который надо обработать:

Код

<?
$sql=mysql_query("SELECT * FROM companies WHERE company LIKE '$alp%' ORDER BY company ASC");
?>
Тра ля ля ля ля
{pagebreak title=Начало}
Тря ля ля ля еще разок
{pagebreak title=Конец


Добавлено @ 19:17 
Mal Hack, так при file_get_contents (сам до него допёр) переводит файл в переменную. Таким макаром в PHP код файла не передаются данные (например, данные по подключению к MySQL). И получается фигня какая-то... 
PM MAIL   Вверх
Mal Hack
Дата 23.5.2006, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Kirill Baranov @  23.5.2006,  19:15 Найти цитируемый пост)
$text_do=file_get_contents("http://site.ru/".$file."");

Господи... Ну сколько можно. Вашу, Машу, прошу прощения. Ну сколько раз учить можно. Для открытия удаленных файлов используем fsockopen хотя бы...
Да и еще и ман читаем.

Цитата(Kirill Baranov @  23.5.2006,  19:15 Найти цитируемый пост)
if (file_exists("$file")) {

Вообще бред и работать не будет.

Добавлено @ 19:19 
Цитата(Kirill Baranov @  23.5.2006,  19:15 Найти цитируемый пост)
Mal Hack, так при file_get_contents (сам до него допёр) переводит файл в переменную. Таким макаром в PHP код файла не передаются данные (например, данные по подключению к MySQL). И получается фигня какая-то...  

КОД УДАЛЕННОГО ФАЙЛА ТЫ ВООБЩЕ ПОЛУЧИТЬ НЕ МОЖЕШЬ НЕ ИМЕЯ ДОСТУПА К СЕРВЕРУ ПО FTP протоколу. Или, если админ идиот полный. 
PM ICQ   Вверх
madFobos
Дата 24.5.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 7.12.2005

Репутация: 1
Всего: 3



Mal Hack, я одного не понял, почуму я не могу удаленный файл с помощью file_get_contents получить? Об этом даже в мануале написано... А че надо Киррилу я так и не смог понять. Блин, учите сначала PHP, а потом "пагинаторы" пишите  smile 

Собственно из того, что я понял, надо сначало пагинтаор в функцию (или класс запихать), затем написать функцию которая вытаскивает текст из PHP (например убирает все между <? и ?>) и все. Но удаленно файл реально никак не получить, только локально... 
PM MAIL   Вверх
Mal Hack
Дата 24.5.2006, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(madFobos @  24.5.2006,  21:01 Найти цитируемый пост)
Mal Hack, я одного не понял, почуму я не могу удаленный файл с помощью file_get_contents получить? О

Потому, что это зависит от настроек ПХП, и потому что нет указания таймаута, т.е. скрипт легко подвесить. 
PM ICQ   Вверх
madFobos
Дата 24.5.2006, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 7.12.2005

Репутация: 1
Всего: 3



Цитата(Mal Hack @  24.5.2006,  21:05 Найти цитируемый пост)
Потому, что это зависит от настроек ПХП, и потому что нет указания таймаута, т.е. скрипт легко подвесить.  


Ну настройки зачастую через .htaccess можно подправить, а таймаут скрипта все равно обычно 30 сек... Да и не думаю, что соединение по HTTP займет много времени у нормального сервера (при условии, что адрес существует конечно)
 
PM MAIL   Вверх
Mal Hack
Дата 24.5.2006, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(madFobos @  24.5.2006,  21:09 Найти цитируемый пост)
а таймаут скрипта все равно обычно 30 сек...

А ты уверен что скрипт "умрет" после этих 30 сек? А ты зхнаешь что лишнее сокетное соединение это нагрузка на сервер?
Цитата

If PHP has decided that filename specifies a registered protocol, and that protocol is registered as a network URL, PHP will check to make sure that allow_url_fopen is enabled. If it is switched off, PHP will emit a warning and the fopen call will fail.

Цитата(madFobos @  24.5.2006,  21:09 Найти цитируемый пост)
Ну настройки зачастую через .htaccess можно подправить

Цитата

allow_url_fopen  boolean

    This option enables the URL-aware fopen wrappers that enable accessing URL object like files. Default wrappers are provided for the access of remote files using the ftp or http protocol, some extensions like zlib may register additional wrappers.

        Note: This setting can only be set in php.ini due to security reasons. 

        Note: This option was introduced immediately after the release of version 4.0.3. For versions up to and including 4.0.3 you can only disable this feature at compile time by using the configuration switch --disable-url-fopen-wrapper. 


Читай-те мануал внимательнее.  

Это сообщение отредактировал(а) Mal Hack - 24.5.2006, 21:12
PM ICQ   Вверх
Kirill Baranov
Дата 24.5.2006, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 242
Регистрация: 30.6.2004

Репутация: -2
Всего: -2



да нужен мне пагинатор блин который пагинирует все файлы... 
PM MAIL   Вверх
madFobos
Дата 24.5.2006, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 7.12.2005

Репутация: 1
Всего: 3



Цитата(Mal Hack @  24.5.2006,  21:12 Найти цитируемый пост)
А ты уверен что скрипт "умрет" после этих 30 сек? А ты зхнаешь что лишнее сокетное соединение это нагрузка на сервер?


Т.е. ты хочешь сказать, что скрипт завершится, а соединение останется? Или он вобще не завершится при наличии соединения?

Цитата(Mal Hack @  24.5.2006,  21:12 Найти цитируемый пост)
Читай-те мануал внимательнее.  


М-да. Погорячился я тут с .htaccess  smile 
 
PM MAIL   Вверх
Mal Hack
Дата 24.5.2006, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(madFobos @  24.5.2006,  21:43 Найти цитируемый пост)
Т.е. ты хочешь сказать, что скрипт завершится, а соединение останется? Или он вобще не завершится при наличии соединения?

Вот это, как раз и спорный вопрос. Как на никсах не знаю, но в винде, провернено, что скрипт вполне может продолжать работать долгое время.
Это просто не надежно и лишняя нагрузка на сервер. 
PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.