Ответы пользователя по тегу PHP
  • Как обновить PHP 5.3.10 до php 5.6 в Ubuntu 12.04.5 LTS не обновляя всю систему?

    @andrey_o_v
    купите новую vps/vds/облако, с новой ubuntu
    поставишь туда php5.6 или сразу php 7.2 :)
    настраиваешь php, nginx (apache), mysql и все остальное, перенесешь сайт, если без ошибок отработает на тестовом домене test.mysite.ru, выключаешь старый, загружаешь последнюю базу, если какие то данные поменялись, домен на новый хостинг настроить.
    готово!
    Ответ написан
    Комментировать
  • Как исправить ошибку кодировки старой БД?

    @andrey_o_v
    1) я поменял mysql_escape_string на mysql_real_escape_string, т.к. mysql_real_escape_string экранирует строку с учетом текущей кодировки. почитайте в документации про нее, чтобы я не копипастил).
    2) Апостроф ` поменял на одинарную ковычку, апострофом я обычно экранирую поля, таблицы, а не строки, хотя не проверял экранированные строки с апострофом.
    3) Конечно надо избавляться от mysql и заменить на такие же функции mysqli, хотя где то может поломаться.
    4) Странная запись $fio = mysql_escape_string($fio);
    это скорее register glogals включен, было бы правильнее, универсальный подход $fio = mysql_escape_string($_REQUEST['fio']);
    но может данные пришли из $_GET или $_POST
    5) И как вариант данные пришли в кодировке cp1251, поэтому ошибка 1300 : Invalid utf8 character string
    $fio = mysql_real_escape_string( iconv('windows-1251', 'utf-8', $fio));

    mysql_query("SET NAMES 'utf8'"); 
    $fio = mysql_real_escape_string($fio);
    $rank = mysql_real_escape_string($rank);
    $razryad = mysql_real_escape_string($razryad);
    $region = mysql_real_escape_string($region);            
    $query = "INSERT INTO users(name, level, rank, region) VALUES('$fio', '$razryad', '$rank', '$region')";
    $result = mysql_query($query);
    Ответ написан
    Комментировать
  • Как убрать неразрывный пробел из строки?

    @andrey_o_v
    это он отображается как   а по факту может иметь какой нибудь код символа, кодировка строки может отличается.
    Вот например статья "Интересный нюанс с пробелами при чистке текстов функцией preg_replace"
    https://ph0en1x.net/17-interesnyj-nyuans-s-probela...
    он hex редактор использует, думаю есть проще пути решения) какой нибудь онлайн детектор, парсер символов, типа все символы отобразить кодами
    Ответ написан
    Комментировать