Я работаю над созданием веб-приложения на codeigniter.Я написал эту функцию, чтобы получить данные о часовом поясе для любого города или адреса.
function gettimezone($address)
{
$_url = 'http://api.local.yahoo.com/MapsService/V1/geocode';
$_url .= sprintf('?appid=%s&location=%s',"phpclasses",rawurlencode($address));
$_result = false;
if($_result = file_get_contents($_url)) {
preg_match('!<Latitude>(.*)</Latitude><Longitude>(.*)</Longitude>!U', $_result, $_match);
$lng = $_match[2];
$lat = $_match[1];
$url = "http://ws.geonames.org/timezone?lat={$lat}&lng={$lng}";
$timedata = file_get_contents($url);
$sxml = simplexml_load_string($timedata);
return $sxml->timezone;
}
else
return false;
}
Я работаю над Windows 7 и xampp 1.7 (php 5.2.8).
Есть ли возможный сценарий, когда этокусок кода может привести к краху Apache?Приложение работает нормально почти каждый раз, но я думаю, что выполнение этого фрагмента кода, когда нет подключения к Интернету или очень плохое подключение к Интернету (таким образом, нет доступа к любому из веб-сервисов, которые я использовал), приводит к остановке сервера.Нечто подобное происходило несколько раз, и я думаю, что это произошло из-за потери интернет-соединения, но я не уверен, что именно происходит.
[Кстати, не стесняйтесь использовать этот кусок кода.Делает 2 вызова веб-службы, поэтому не используйте слишком часто в вашем приложении.Попробуйте сохранить результаты в базе данных.]
Редактировать: Этот фрагмент кода и мое приложение работают идеально, почти каждый раз .Это просто разбило Apache пару раз несколько дней назад.И я думаю, что именно эта функция является виновником, поскольку это было одной из вещей, которая была добавлена непосредственно перед этими сбоями.
Редактировать 2: Вот небольшой фрагмент моего журнала ошибок apache, который выглядит неправильно.Это есть в журнале несколько раз, и я думаю (на самом деле вполне уверен), что это соответствует краху сервера.Кроме этого, есть несколько ошибок «файл не существует», которые не приведут к сбою сервера
[Mon May 24 12:14:26 2010] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Mon May 24 12:15:29 2010] [warn] pid file c:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?