Что нового

Как прочитать несуществующую страницу (404)?

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Добрый день!

Есть такая связка функций:
Код:
$data = BinaryToString(InetRead("http://dragon.perm.ru/data/123.txt"))

При этом итогом получается некий текст, который я публикую на данной странице.
Если данной страницы на сайте нет, то итогом получается НИЧТО (пусто, null)
Суть вопроса:
если в качестве 404 страницы я в шаблоне сайта делаю просто некий текст, то как правильно написать функицю (связку функций), чтоб в итоге читался и текст, который я публикую на странице, а в случае отсутствия страницы результатом бы был текст, который я вижу, пытаясь попасть на несуществующую страницу?

PS очень надеюсь, что смог объяснить что именно хочу
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код:
$data = InetRead("http://dragon.perm.ru/data/123.txt")
If @error Then
  $data = "Запрашиваемая страница не найдена."
Else
  $data = BinaryToString($data)
EndIf
 
Автор
В

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Немного не так.
При работе скрипта Data будет присвоено значение: Запрашиваемая страница не найдена.
А нужно чтоб было присвоено то значение (тот текст), которое выводится на странице, который появляется при попытке попасть на несуществующую страницу.

У меня сделано так, что при попытке попасть на несуществующую страницу выводится просто текст: off, НО! вся задумка в том, что если я его поменяю, то чтоб выводился именно он! а не просто off
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
ВиталийВВ
Если я правильно понял вот это описание http://www.webremeslo.ru/faq/faq6.html, то страница 404 - это просто файл. Вот и скачайте/прочитайте его в случае ошибки и достаньте нужный текст.
 
Автор
В

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Что то типа этого и сделал
Код:
$data = BinaryToString(InetRead("http://dragon.perm.ru/data/"&$pi))
	If @error Then
		$data = BinaryToString(InetRead("http://dragon.perm.ru/data/a/a.txt"))
	EndIf


Страницу ошибки сделал какую нужно.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
ВиталийВВ
Вы проверяете @error для функции BinaryToString, а нужно для InetRead (см. мой пример).
 
Автор
В

ВиталийВВ

Новичок
Сообщения
177
Репутация
0
Так тоже ж можно?

Код:
$data = BinaryToString(InetRead("http://dragon.perm.ru/data/a/a.txt"))

	If $data = "" Then
		$data = BinaryToString(InetRead("http://dragon.perm.ru/data/"&$pi))
	EndIf
 
Верх