Конфиг цитаты на Vars PHP

0

Я новичок на сайте (привет!), И у меня была проблема, которую я пока не могу решить. Я ищу его, но никаких результатов. Думаю, это глупо, но я не могу найти решение.

Я переношу систему (php) на другой сервер (оба являются CentOS), и у меня есть проблема с кавычками в php vars

    example:
    --------
    $_GET[var]
    $db_reg[assoc]
    $array[value]
    define(NAME,'value')
    etc..

Все случаи могут исправить добавление котировок в индексы, но дело в том, что у меня есть тысяча php файлов, каждая из которых имеет миллионы строк, и я не могу проверять один за другим.. для этого потребуется около двух жизней.

На старом сервере он работает нормально, но в новом, vars не распознаются, показывает уведомление PHP:

"Notice: Use of undefined constant XXXX - assumed 'XXXX in..."
(ej: $_POST[XXXX])

Является ли какая-либо конфигурация на Apache или PHP для распознавания или нет (нечеткие) цитаты на vars?

Версия php на обоих серверах одинакова, и я проверил php.ini и схожу.

Цените свою помощь, благодарите заранее.

Даниил

  • 0
    Я думаю, что лучший способ решить эту проблему - конвертировать все старые скрипты в кавычки. Я знаю, что это звучит страшно, и делать это по одному вручную, вероятно, невозможно на основании вашего описания. Это может быть забавная задача программирования - отсканировать весь исходный код и изменить все вхождения [кое-чего] на [«что-то»]. Конечно, у вас должны быть исключения для [$ что-то] и т. Д. Но это правильный способ сделать это сейчас (и так было всегда, на самом деле). Все остальное будет обходным путем, с которым PHP может в конце концов покончить.
  • 0
    Я знаю, что правильный путь - это изменить все ... но система старая и устаревшая, на самом деле, я переделываю ее, начиная с нуля ... так что я не считаю это необходимым, я хочу похоронить определенно ... Спасибо, в любом случае :)
Теги:
centos
config
quote

2 ответа

0
Лучший ответ

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

Использование переменных:

$array = array('hi', 'you', 'there');
$i = 1;
echo $array[$i]; // -> works and is **fine** (will output 'you')

// --------------------------------

$array = array('a' => 'hi', 'b' => 'you', 'c' => 'there');
echo $array['a']; // -> works and is **fine**
// note: in especially that case **NEVER** user bare-words like this: echo $array[a] for >> a << here is expected to be a constant which (mostly) does not exist !
// php is so fuzzy that it will mostly interpret around like insane and output you the desired value ('hi' in that case) but that was never meant to be! And should always be prevented. Thats the reason for you getting that notice... 

// So never do this:
echo $array[a]; 
// ... if >> a << is NOT a valid and available contant

Важно (суммируется до точки): слова без кавычек и доллара считаются константами, которые вы, возможно, не используете очень часто. В большинстве случаев вы используете кавычки (как описано выше) или реальные переменные (обозначенные символом $) в качестве индекса для доступа к структурам данных/массивам

  • 0
    Спасибо за ответ! Но есть ли способ конфигурации (apache, php и т. Д.) Для распознавания без кавычек? Я не могу изменить все переменные в системе. Почему на старом сервере работает отлично, а на новом выходит из строя? Там должно быть что-то, что я скучаю .... Спасибо
  • 0
    @Daniel Добро пожаловать. Пожалуйста, пометьте ответ, который поможет вам выйти из проблемы, как «Решение». Это позволяет людям, у которых возникла та же проблема и которые находят ваш вопрос, легко определить ответ и на свою проблему.
Показать ещё 6 комментариев
0

Ну, вы можете попробовать отредактировать файл php.ini: change error_reporting = E_ALL to error_reporting = E_ALL & ~ E_NOTICE. Это отключит все уведомления, но не уверен, что это решит проблему. Пожалуйста, попробуйте сообщить нам, если это работает или нет для вас.

  • 0
    Это не правильный способ подавления предупреждений, потому что они напечатаны по причине. Правильный способ - это исправить причину, по которой php выводит предупреждение. Тем не менее, это побеждает людей учиться писать более чистый код
  • 0
    Спасибо! Но моя проблема не в том, чтобы напечатать предупреждение или уведомление ... проблема в том, что система не работает должным образом из-за переменных без кавычек ... Мне нужно активировать что-то вроде "распознавать переменные без кавычек"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню