За последние 24 часа нас посетили 17862 программиста и 1613 роботов. Сейчас ищут 1484 программиста ...

Эмуляция PHP 5.0

Тема в разделе "Установка PHP", создана пользователем co11ter, 15 фев 2012.

  1. co11ter

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

    С нами с:
    3 авг 2011
    Сообщения:
    16
    Симпатии:
    0
    Написан некий скрипт использующий функцию json_encode которая появилась в php 5.2.+. Требуется проверить корректно ли будет работать скрипт на php 5.0. Можно настроить php так, чтобы эмулировалась более ранняя версия?
     
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    поставить рядом старый?
     
  3. co11ter

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

    С нами с:
    3 авг 2011
    Сообщения:
    16
    Симпатии:
    0
    А конфликтов не будет? Боюсь придётся удалять уже установленный...
     
  4. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    не будет. ставите в другую папку и делаете отдельный процесс апача который mod_php использует из старой сборки.
    я так давным давно переходил с 4х на 5х
     
  5. topas

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

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    На всякий случай
    Код (PHP):
    1. <?php
    2. function php2js($a=false)
    3.  {
    4.    if (is_null($a)) return 'null';
    5.    if ($a === false) return 'false';
    6.    if ($a === true) return 'true';
    7.    if (is_scalar($a))
    8.    {
    9.      if (is_float($a))
    10.      {
    11.        // Always use "." for floats.
    12.        $a = str_replace(",", ".", strval($a));
    13.      }
    14.  
    15.      // All scalars are converted to strings to avoid indeterminism.
    16.      // PHP's "1" and 1 are equal for all PHP operators, but
    17.      // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend,
    18.      // we should get the same result in the JS frontend (string).
    19.      // Character replacements for JSON.
    20.      static $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'),
    21.      array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
    22.      return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
    23.    }
    24.    $isList = true;
    25.    for ($i = 0, reset($a); $i < count($a); $i++, next($a))
    26.    {
    27.      if (key($a) !== $i)
    28.      {
    29.        $isList = false;
    30.        break;
    31.      }
    32.    }
    33.    $result = array();
    34.    if ($isList)
    35.    {
    36.      foreach ($a as $v) $result[] = php2js($v);
    37.      return '[ ' . join(', ', $result) . ' ]';
    38.    }
    39.    else
    40.    {
    41.      foreach ($a as $k => $v) $result[] = php2js($k).': '.php2js($v);
    42.      return '{ ' . join(', ', $result) . ' }';
    43.    }
    44.  }
    45.  
     
  6. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не проще хостинг сменить?