За последние 24 часа нас посетили 30497 программистов и 1808 роботов. Сейчас ищет 821 программист ...

Переезд на версию PHP 5.4

Тема в разделе "PHP для новичков", создана пользователем ushkom, 15 дек 2016.

  1. ushkom

    ushkom Активный пользователь

    С нами с:
    5 сен 2016
    Сообщения:
    68
    Симпатии:
    1
    Всем доброго времени суток. Сайт работал на PHP 5.3, понадобилось повысить версию до PHP 5.4. Теперь отказывается работать один скрипт. В интернете не нашел нужной информации.
    Сам скрипт
    Код (Text):
    1. <?php
    2.  
    3. @header("Content-type: image/png");
    4. @error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
    5. @ini_set ( 'display_errors', true );
    6. @ini_set ( 'html_errors', false );
    7. @ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );
    8.  
    9. define ( 'ROOT_DIR', reset(explode('/engine',dirname ( __FILE__ ))) );
    10. define ( 'ENGINE_DIR', ROOT_DIR . '/engine' );
    11.  
    12. echo file_get_contents(ROOT_DIR.'/templates/kino24-7/dleimages/sitemap.png');
    13.  
    14. /////////////////////////////////////////////////////////////////////////////////////////////////
    15.  
    16. $time_diap = 24;
    17. $time_diap = $time_diap * 3600;
    18.  
    19. if ((time() - @filemtime(ROOT_DIR."/uploads/sitemap.xml")) > $time_diap or !file_exists(ROOT_DIR."/uploads/sitemap.xml")) {
    20.  
    21.   define ( 'DATALIFEENGINE', true );
    22.  
    23.   @include (ENGINE_DIR . '/data/config.php');
    24.   require ENGINE_DIR . '/classes/mysql.php';
    25.   require ENGINE_DIR . '/data/dbconfig.php';
    26.   require ENGINE_DIR . '/modules/functions.php';
    27.  
    28.   function stmp_curl($url){
    29.     $id = curl_init($url);
    30.         curl_setopt($id, CURLOPT_HEADER, 1);
    31.         curl_setopt($id, CURLOPT_NOBODY, 1);
    32.         curl_setopt($id, CURLOPT_RETURNTRANSFER, 1);
    33.         curl_setopt($id, CURLOPT_TIMEOUT, 3);
    34.         curl_setopt($id, CURLOPT_REFERER, $url);
    35.         curl_setopt($id, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11');
    36.     $page = curl_exec($id);
    37.     curl_close($id);
    38.     return $page;
    39.   }
    40.  
    41. $cat_info = get_vars ( "category" );
    42. if (! is_array ( $cat_info )) {
    43.     $cat_info = array ();
    44.     $db->query ( "SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC" );
    45.     while ( $row = $db->get_row () ) {
    46.         $cat_info[$row['id']] = array ();
    47.         foreach ( $row as $key => $value ) {
    48.             $cat_info[$row['id']][$key] = stripslashes ( $value );
    49.         }
    50.     }
    51.     set_vars ( "category", $cat_info );
    52.     $db->free ();
    53. }
    54.  
    55.  
    56.   include ENGINE_DIR . '/classes/google.class.php';
    57.  
    58.   $config['http_home_url'] = 'http://'.str_replace('www.', '', strtolower($_SERVER['HTTP_HOST'])).'/';
    59.   $map = new googlemap($config);
    60.   $map->limit = intval(0);
    61.   $map->news_priority = strip_tags(stripslashes('0.7'));
    62.   $map->stat_priority = strip_tags(stripslashes('0.5'));
    63.   $map->cat_priority = strip_tags(stripslashes('0.6'));
    64.  
    65.   $row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_post");
    66.   if (!$map->limit)
    67.     $map->limit = $row['count'];
    68.   if ($map->limit > 45000) {
    69.     $pages_count = @ ceil($row['count'] / 40000);
    70.     $sitemap = $map->build_index($pages_count);
    71.     $handler = fopen(ROOT_DIR . "/uploads/sitemap.xml", "wb+");
    72.     fwrite($handler, $sitemap);
    73.     fclose($handler);
    74.     @ chmod(ROOT_DIR . "/uploads/sitemap.xml", 0666);
    75.     $sitemap = $map->build_stat();
    76.     $handler = fopen(ROOT_DIR . "/uploads/sitemap1.xml", "wb+");
    77.     fwrite($handler, $sitemap);
    78.     fclose($handler);
    79.     @ chmod(ROOT_DIR . "/uploads/sitemap1.xml", 0666);
    80.     for ($i = 0; $i < $pages_count; $i++) {
    81.       $t = $i + 2;
    82.       $n = $n + 1;
    83.       $sitemap = $map->build_map_news($n);
    84.       $handler = fopen(ROOT_DIR . "/uploads/sitemap{$t}.xml", "wb+");
    85.       fwrite($handler, $sitemap);
    86.       fclose($handler);
    87.       @ chmod(ROOT_DIR . "/uploads/sitemap{$t}.xml", 0666);
    88.     }
    89.   }else {
    90.     $sitemap = $map->build_map();
    91.     $handler = fopen(ROOT_DIR . "/uploads/sitemap.xml", "wb+");
    92.     fwrite($handler, $sitemap);
    93.     fclose($handler);
    94.     @chmod(ROOT_DIR . "/uploads/sitemap.xml", 0666);
    95.   }
    96.  
    97.   $sitemaplink = 'http://' . str_replace('www.', '', strtolower($_SERVER['HTTP_HOST'])) . '/uploads/sitemap.xml';
    98.   $sitemaplink = rawurlencode($sitemaplink);
    99.   $sitemaplist =
    100.   array(
    101.     "http://google.com/webmasters/sitemaps/ping?sitemap=" . $sitemaplink,
    102.     "http://bing.com/webmaster/ping.aspx?siteMap=" . $sitemaplink,
    103.     "http://ping.blogs.yandex.ru/ping?sitemap=" . $sitemaplink,
    104.   );
    105.   foreach ($sitemaplist as $sitemapping){
    106.     @stmp_curl($sitemapping);
    107.   }
    108. }
    109.  
    110.  
    111. ?>
    Кто может помочь, что в скрипте изменить нужно?
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    На первый взгляд, будет нормально работать в 5.4. В какой строке ошибка вылазит?
     
  3. ushkom

    ushkom Активный пользователь

    С нами с:
    5 сен 2016
    Сообщения:
    68
    Симпатии:
    1
    Должна выводится вот эта картинка echo file_get_contents(ROOT_DIR.'/templates/Default/dleimages/sitemap.png');

    Выводится так <img src="/engine/ajax/autositemap.php" border="0" alt="" />
    На сайте картинки нет, написано не удается загрузить.
    Вот сайт где поменял на 5.4 http://kino24-7.ru/
    Вот сайт где стоит 5.3 http://more-smeha.ru/
    Картинка в самом низу где счетчики, надпись sitemap
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    @ushkom у вас включено отображение ошибок
    это может быть безобидный нотис, но если сообщение об ошибке смешивается с файлом картинке, то естественно она получается битой. Попробуйте установить false. Чтобы увидеть, какие ошибки возникают в скрипте, замените
    на
    Код (Text):
    1. header("Content-type: text/plain");
    http://phpfaq.ru/debug
     
    MouseZver и ushkom нравится это.
  5. ushkom

    ushkom Активный пользователь

    С нами с:
    5 сен 2016
    Сообщения:
    68
    Симпатии:
    1
    Сделал как Вы сказали, картинка появилась. Проверю или скрипт работает
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    5.4? Серьёзно?
     
    MouseZver нравится это.
  7. ushkom

    ushkom Активный пользователь

    С нами с:
    5 сен 2016
    Сообщения:
    68
    Симпатии:
    1
    В смысле?
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Может тогда сразу на 7.0? Там небольшая разница с 5.4. Вообще должно заработать само.
     
    MouseZver нравится это.
  9. ushkom

    ushkom Активный пользователь

    С нами с:
    5 сен 2016
    Сообщения:
    68
    Симпатии:
    1
    А как увидеть саму ошибку, в логах ее нет
     
  10. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    error_reporting ? error handler ?
     
  11. ushkom

    ushkom Активный пользователь

    С нами с:
    5 сен 2016
    Сообщения:
    68
    Симпатии:
    1
    Есть требование к модулю Apache, PHP 5.4.22 - 5.6.19
     
  12. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    apache...
     
  13. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Любит наш народ, старое говно, старое говно, любит наш народ
     
    MouseZver нравится это.
  14. ushkom

    ushkom Активный пользователь

    С нами с:
    5 сен 2016
    Сообщения:
    68
    Симпатии:
    1
    А по делу, как скрипт подправить?
     
  15. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Зачем менять, итак работает !
     
  16. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Убрать всех собак и посмотреть ошибки

    Ваще собак лучше ставить на каждой строке, так жить спокойней
     
    MouseZver нравится это.
  17. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    MouseZver и ushkom нравится это.
  18. ushkom

    ushkom Активный пользователь

    С нами с:
    5 сен 2016
    Сообщения:
    68
    Симпатии:
    1
    Большое спасибо, все работает
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в смысле "работает"? А что тогда не работало?
     
  20. ushkom

    ushkom Активный пользователь

    С нами с:
    5 сен 2016
    Сообщения:
    68
    Симпатии:
    1
    Скрипт обновляет карту сайта, до этого не обновлял
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    т.е по факту ты убрал собаки и всё заработало? или я пропустил что-то?
     
    denis01 нравится это.