Да я бы не сказал что она довольно древняя штука, так как к примеру тот же Drupal 8 использует примерно тоже самое https://api[dot]drupal[dot]org/api/drupa[dot][dot][dot]areBaseUrl/8[dot]3[dot]x . Хотя это не совсем Drupal-ая фишка, так как он использует фреймворк Symfony по-моему 2.8, но и в 3.0 это вроде бы тоже есть. Зачем это нужно в Drupal, сейчас точно не скажу, не помню, по-моему данный скрипт используется при инсталляции Drupal, так он ищет файл установки.
Вопрос возник спонтанно, я вообще недавно заинтересовался php, и большего опыта у меня в этих делах нет, кручу одну cms в целях саморазвития, пытаясь вникнуть что там, и зачем делается, вот и наткнулся на такой вот скрипт.
Ну а информации по этим ключам найти не смог, вот и задал вопрос, что бы понять до конца что там к чему. Хотя смысл скрипта понятен и так, так что вопрос задал просто в целях саморазвития)
Немножко странно, если я правильно понимаю, Вы проверяете дату в последнем elseif. При условии что один из статусов всегда существует, этот elseif, с проверкой даты никогда не будет выполнен. Как выход попробуйте дописать еще один if, и проверяйте дату в не тела цикла while, примерно так:
Спасибо большое, теперь стало намного ясней. Если я все правильно понял, к примеру если у нас будет запрос вида /my-site/index.php/something.php, то мы получим следующее значение ключей. ORIG_PATH_TRANSLATED = C:\my-site-root\index.php\somthing.php
Что будет соответствовать ключу: PATH_TRANSLATED = C:\my-site-root\index.php\somthing.php
Ключ: ORIG_PATH_INFO = /my-site/index.php/something.php
Будет соответствовать ключу: PHP_SELF = /my-site/index.php/something.php
И будет установлено значение ключа: PATH_INFO = /something.php
Ключ: ORIG_SCRIPT_FILENAME = С:/php/php-cgi.exe
Не будет соответствовать ключу: SCRIPT_FILENAME = C:\my-site-root\index.php\somthing.php
Ключ: ORIG_SCRIPT_NAME = /php/php-cgi.exe
Не будет соответствовать ключу: SCRIPT_NAME = /my-site/index.php
Значение ключей ORIG_SCRIPT_FILENAME, и ORIG_SCRIPT_NAME, как я понимаю остается не неизменяемым,так как если судить по статье https://blogs[dot]msdn[dot]microsoft[dot]com[dot][dot][dot]path_translated/ определяет обработчик php. Тут интересный момент, так как у нас указан обработчик php скриптов, при запросе к примеру /my-site/index.html, значение ключей будет: PATH_INFO = PATH_TRANSLATED = C:\my-site-root\ SCRIPT_NAME = /index.html
Что немного странно, так как в мануале php написано что ключ PATH_TRANSLATED определен только тогда, когда PATH_INFO определена. Хотя там описано IIS, может там все так и работает. Выходит что ключи с префиксом ORIG не совсем тоже самое что и ключи без него, да? Если конечно я все правильно понимаю, и опять ничего не напутал.
Всем привет! Не подскажите значение ключей в массиве server: ORIG_SCRIPT_NAME
ORIG_SCRIPT_FILENAME
Точней их значение я вижу, это /php/php-cgi.exe, и C:/php/php-cgi.exe, а вот смысл в них мне не понятен. Много где видел их использование, но у кого не спроси, или нет ответа, или говорят что это тоже самое что и ключи: SCRIPT_NAME
SCRIPT_FILENAME
Что немного странно, если они всегда указывают на исполняем файл php (если я не ошибаюсь). А вот вразумительного ответа зачем они нужны, так не кто и не дал. Если я правильно понимаю, они установлены только тогда когда php работает CGI режиме. Может кто сможет объяснить мне назначение этих ключей, или кинуть ссылку что почитать?
при $left < 16 вы будете получать разные значение. Зачем это нужно в данном алгоритме не знаю, т.к. даже особо не всматривался
Так то понятно что разные, а вот зачем в примере сделано так, непонятно. Я почему то долек от мысли что это сделано чисто для эстетики, что бы дать понять, что в маске содержится 16 единичек. Думаю здесь есть некий тайный смысл, тока вот в чем его суть непонятно) (Добавление)
Ой прошу у всех прощение, надо же было так с глупить, с мной такое бывает, и это очень печально. Моя ошибка, я то думал что у меня left не может быть меньше 16, а там на оборот, если left меньше или равен 16 то left, если больше то 16, а значит не всегда 16 единичек). OrmaJever спасибо тебе большое, выел из ступора, вот написал тебе про 16 единичек, а потом подумал, а всегда ли их 16? А не деле не всегда, маски разные.
Всем доброго времени суток! Не давно стал изучать PHP, и по большому счету пытаюсь понять чужой код. Так вот, есть такой метод для проверки IPv6 адресов.
Зачем нужна эта битовая операция, если при любой длине префикса я получу одно и тоже значение? Почему нельзя его сразу назначить переменной mask? Буду признателен если сможете мне объяснить, а то мне кажется что я все время что-то упускаю.