Список форумов Шадринский форум -> Программирование -> PHP, PERL, HTML, CSS etc -> вопрос-задачка для php-истов
Начать новую тему   Ответить на тему   вывод темы на печать

вопрос-задачка для php-истов

Автор
Сообщение
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2008.01.16 07:25.29
Ответить с цитатой
в общем, берется известный файл с данными термометра, обрабатывается как необходимо и выдается в страничку.
зодачко - сделать так, чтобы если файл по ссылке-адресу недоступен - выдавать-обрабатывать самое последнее его содержание, бывшее доступным Wink

исходный код - что-то вроде:


function GetHtml($go) {

   $array=file($go); 
   foreach($array as $string) {

   $string=str_replace("</b> - <i>","</b>&nbsp; <i>",$string);
   $string=str_replace("<a ","<!-- <a ",$string);
   $string=str_replace("<i>","",$string);
   $string=str_replace("</i>","",$string);
   $string=str_replace("<b>","",$string);
   $string=str_replace("</b>","",$string);
   $string=str_replace("&deg;","",$string);
   $string=str_replace("<p>&nbsp;","",$string);

      echo $string; 
   }

}

   GetHtml("http://........./temp2.php");
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2008.01.16 09:01.22
Ответить с цитатой
что-то типа

if($array=file($go))
{
твой код

$h=fopen('./backup.txt', 'wb');
fwrite($h, $string);

}
else
{

$string = file('./backup.txt');
echo $string[0];

}
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2008.01.16 10:06.08
Ответить с цитатой
а это разве обходит повисание при обращении к недоступной в текущий момент страничке? висяк - самая большая проблема, а лезть в дебри пингования некада Smile

Добавлено спустя 28 минут 18 секунд:

короче, если оказывается (а похоже так оно и есть), что строчки if($array=file($go)) - достаточно для избавления от повисона - то эт круто Smile

пасиб.
Посмотреть профиль Отправить личное сообщение
VolF
подонок


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 3043
Откуда: Rammstein, GmbH

Статус: Offline
СообщениеДобавлено: 2008.01.16 10:40.11
Ответить с цитатой
char
если данные термометра обновляются не очень часто кэширование вас спасет
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2008.01.16 10:46.07
Ответить с цитатой
char
сбрось ссылку и скажи, что ты делаешь своими реплейсами? а то как-то "некрасиво"
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
VolF
подонок


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 3043
Откуда: Rammstein, GmbH

Статус: Offline
СообщениеДобавлено: 2008.01.16 10:49.25
Ответить с цитатой
andy ice
он чистит html-код
вот тебе сцылко http://shtz.shadrinsk.net/library/temp2.php
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2008.01.16 11:17.52
Ответить с цитатой
Пример 5. Конвертор HTML в текст

<?php
// $document на выходе должен содержать HTML-документ.
// Необходимо удалить все HTML-теги, секции javascript,
// пробельные символы. Также необходимо заменить некоторые
// HTML-сущности на их эквивалент.

$search = array ("'<script[^>]*?>.*?</script>'si",  // Вырезает javaScript
                 "'<[\/\!]*?[^<>]*?>'si",           // Вырезает HTML-теги
                 "'([\r\n])[\s]+'",                 // Вырезает пробельные символы
                 "'&(quot|#34);'i",                 // Заменяет HTML-сущности
                 "'&(amp|#38);'i",
                 "'&(lt|#60);'i",
                 "'&(gt|#62);'i",
                 "'&(nbsp|#160);'i",
                 "'&(iexcl|#161);'i",
                 "'&(cent|#162);'i",
                 "'&(pound|#163);'i",
                 "'&(copy|#169);'i",
                 "'&#(\d+);'e");                    // интерпретировать как php-код

$replace = array ("",
                  "",
                  "\\1",
                  "\"",
                  "&",
                  "<",
                  ">",
                  " ",
                  chr(161),
                  chr(162),
                  chr(163),
                  chr(169),
                  "chr(\\1)");

$text = preg_replace($search, $replace, $document);
?>  


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

$replacer = array( 'что'=>'на что', 'что-то еще'=>'на что-то другое' и тд.);
$string = strtr($string, $replacer);
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2008.01.16 13:41.03
Ответить с цитатой
виснет короче, пинги-таймауты лучше нарисуйте Wink
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2008.01.16 13:44.06
Ответить с цитатой
у меня не виснет. выводит примерно через 30 сек что градусы отсутствуют. почему - не знаю, может там глючит что-то.

в-принципе, можно fsockopen использовать. в мануале есть пример
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2008.01.16 13:53.53
Ответить с цитатой
нук "виснет" - это как раз про 30 сек Wink
некогда в php далече погружаться, но видимо придется как-нить Smile
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2008.01.16 13:56.29
Ответить с цитатой
char
ты бы лучше сказал, чо хочешь? а то просто теги почистить - это одно, а куда вот дальше - это другое
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2008.01.16 14:01.46
Ответить с цитатой
дак все работает давно Wink

http://v.shadrinsk.net/temp.php

вот, дай, думаю чо поудобнее сделаю... Wink

чтоб не тормозило когда отрубается сайт с термометром...
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2008.01.16 14:06.15
Ответить с цитатой
char
ой, так ты не так делай. там меняется раз в час всего.

алгоритм примерно, навскидку
1. смотрим время
2. (если файл с данными есть) смотрим время изменения файла
3. если час текущий и час файла не совпадают (можно еще и день проверять), то запрашиваем данные
4. если данные запросились, то выводим на страницу и перезаписываем файлик, иначе из файлика
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2008.01.16 14:25.06
Ответить с цитатой
нук блин думашь я не в курсе пользы кэширования штоли Smile Smile Smile

это все вопрос затраченных усилий / полученной отдачи Wink

время человеческое небесконечно ить

Добавлено спустя 15 минут 33 секунды:

короче, php manual таки почитал - от оно че Wink

Цитата
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
Посмотреть профиль Отправить личное сообщение
Brain
Писатель


Пол: Пол:Муж.
Зарегистрирован: 01.12.2004
Сообщения: 357


Статус: Offline
СообщениеДобавлено: 2008.01.16 19:58.36
Ответить с цитатой
char писал(а):
нук "виснет" - это как раз про 30 сек Wink


30 сек. скорее всего это http://shtz.shadrinsk.net/library/temp2.php местные косяки, тоесть данный адрес так долго открывается,

проблема в нем temp2.php, т.к. http://shtz.shadrinsk.net/library/doc/meteo/index.html работает быстрее



потестил:


$array = file('http://shtz.shadrinsk.net/library/doc/meteo/index.html');

$str='';

foreach ($array as $value)
{
$str .= $value . "\r\n";
}

echo $str;

открывает моментально
---------------

$array = file(http://shtz.shadrinsk.net/library/temp2.php');

$str='';

foreach ($array as $value)
{
$str .= $value . "\r\n";
}

echo $str;

твои 30 секунд
---------------------------


метод загрузки файла менять бессмысленно, сокеты или файлы безразницы

тяни с инета температурку.. все должно быть быстрее)
Посмотреть профиль Отправить личное сообщение
VolF
подонок


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 3043
Откуда: Rammstein, GmbH

Статус: Offline
СообщениеДобавлено: 2008.01.17 09:34.11
Ответить с цитатой
Brain
странно. у меня http://shtz.shadrinsk.net/library/temp2.php открывается моментально. что я делаю не так?

Brain писал(а):
тяни с инета температурку.. все должно быть быстрее)

ога. бывает что на яндексе и гисметео погода сильно отличается от того что отображается на термометре за окном
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Dio
Шаман-заводчанин


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 29757


Статус: Offline
СообщениеДобавлено: 2008.01.17 09:35.08
Ответить с цитатой
//офф
теплеееееет... .
_________________
Йа - водоросль.
Посмотреть профиль Отправить личное сообщение
Brain
Писатель


Пол: Пол:Муж.
Зарегистрирован: 01.12.2004
Сообщения: 357


Статус: Offline
СообщениеДобавлено: 2008.01.17 14:12.10
Ответить с цитатой
VolF писал(а):
у меня http://shtz.shadrinsk.net/library/temp2.php открывается моментально. что я делаю не так?

и правда,
видимо временный косяк был,у меня щас тоже все гуд!

скрипт http://shtz.shadrinsk.net/library/temp2.php точно сюда цепляеца?
Посмотреть профиль Отправить личное сообщение
VolF
подонок


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 3043
Откуда: Rammstein, GmbH

Статус: Offline
СообщениеДобавлено: 2008.01.18 14:43.40
Ответить с цитатой
Brain писал(а):
скрипт http://shtz.shadrinsk.net/library/temp2.php точно сюда цепляеца?

этот скрипт берет данные с термомтра который висит на телефонке. char парсит результат, выдаваемый этим скриптом
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2008.01.18 17:11.41
Ответить с цитатой
тото тото и оно
што едреное оно
то рабо то не рабо!
штото там на штз
намутили...
что? - хз!
Wink
Посмотреть профиль Отправить личное сообщение
Brain
Писатель


Пол: Пол:Муж.
Зарегистрирован: 01.12.2004
Сообщения: 357


Статус: Offline
СообщениеДобавлено: 2008.01.19 03:10.20
Ответить с цитатой
Volf писал(а):
Brain писал(а):
скрипт http://shtz.shadrinsk.net/library/temp2.php точно сюда цепляеца?

этот скрипт берет данные с термомтра который висит на телефонке. char парсит результат, выдаваемый этим скриптом


ясно, походу char уже починился http://v.shadrinsk.net/temp.php - грузится махом
--------------------
char писал(а):

то рабо то не рабо!

сервак глючный - другого поля ягодка)
тут уже пхп мало чем поможет)
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2008.01.19 10:03.48
Ответить с цитатой
на самом деле кеширование надо на ту сторону. а то толи датчик клинит, толи что, но часто он не выводит температуру
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2008.01.19 10:21.32
Ответить с цитатой
эй, хто там с завода, выхади, - сорцы термометрные выкладИ...
- глядишь, всем миром и соптимизим чонить Wink

----

можь К+ самим замутить термометр?

чо там нада с технической части?

с програмной стороны - былоб удобно, чтоб например в директорию писались файлы с именами-датами типа 080118 ... а в них - замеры температур: в первой строке - время, во второй - температура и т.д.

во Wink

можно б было графики строить...
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2008.01.19 10:23.48
Ответить с цитатой
график телефоновский строится, раз в час запрашивается. но так-как та сторона глючит, то разрывы большие в графике
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
OLEGA
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 07.12.2004
Сообщения: 17143
Откуда: инженигерия

Статус: Offline
СообщениеДобавлено: 2008.01.19 12:57.33
Ответить с цитатой
Ну датчик то цифровой не проблема, а все остальное дружно трясем с pva.
_________________
Выбирай, что тебе делать. Тогда ты всегда будешь делать то, что выбрал.
Настоящий радиолюбитель, открыв спичечный коробок и обнаружив там спички, смотрит на них С УДИВЛЕНИЕМ ))
Посмотреть профиль Отправить личное сообщение ICQ Number
pva
Освоившийся


Пол: Пол:Муж.
Зарегистрирован: 09.01.2005
Сообщения: 83


Статус: Offline
СообщениеДобавлено: 2008.01.20 19:49.03
Ответить с цитатой
char писал(а):
эй, хто там с завода, выхади, - сорцы термометрные выкладИ...

- глядишь, всем миром и соптимизим чонить

Проблема к сожалению не в софте термометра, а скорее всего в ОС. См. http://forum.shadrinsk.net/viewtopic.php?t=21316
Посмотреть профиль Отправить личное сообщение ICQ Number
Страница 1 из 1
Начать новую тему   Ответить на тему   вывод темы на печать
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> PHP, PERL, HTML, CSS etc -> вопрос-задачка для php-истов

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы