phpinfo — выводит много информации о PHP


Содержание

Функция PHP phpinfo

Выводит большое количество информации о текущем статусе PHP. Сюда входит информация об опциях компиляции PHP и о расширениях, версии PHP, информация сервера и окружения (если скомпилирован как модуль), окружение PHP, версия ОС, пути, master и локальные переменные опций конфигурации, шапки HTTP и PHP License.

Поскольку каждая система настроена по-своему, phpinfo() обычно используется для проверки установок конфигурации и доступности предопределённых переменных в данной системе.Также phpinfo() является важной отладочной утилитой, так как содержит все данные EGPCS (Environment, GET, POST, Cookie, Server).

Вывод может быть специализирован путём передачи одной или более следующих константных битовых значений, суммированных в необязательном параметре what. Можно также комбинировать соответствующие константны или битовые значения операцией or.

Опции phpinfo()

Имя (константа) Значение Описание
INFO_GENERAL 1 Строка конфигурации, размещение php.ini, дата построения/build, Web-сервер, система и т.д.
INFO_CREDITS 2 КредитыPHP 4.См. также phpcredits().
INFO_CONFIGURATION 4 Текущие Local и Master значения php-директив.См. также ini_get().
INFO_MODULES 8 Загруженные модули и их соответствующие настройки.
INFO_ENVIRONMENT 16 Environment Variable информация, доступная также в $_ENV.
INFO_VARIABLES 32 Показывает все предопределённые переменные из EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE 64 ИнформацияPHP License
INFO_ALL -1 Всё выше указанное.Это значение по умолчанию.

Пример phpinfo()

Примечание: части отображаемой информации отключаются, когда установка конфигурации expose_php имеет значение off. Сюда входят PHP и Zend-логосы и кредиты.

Вывести информацию о сервере

Всем привет, возникла необходимость вывести информацию как в phpMyAdmin.
Вот пример:

Сервер базы данных:
Сервер: MySQL (Localhost via UNIX socket)
Тип сервера: MariaDB
Версия сервера: 10.0.31-MariaDB — MariaDB Server
Версия протокола: 10
Пользователь: test@localhost
Кодировка сервера: UTF-8 Unicode (utf8)

Веб-сервер:
nginx/1.11.7
Версия клиента базы данных: libmysql — mysqlnd 5.0.10 — 20111026 — $Id: e707c415db32080b3752b232487a435ee0372157 $
PHP расширение: mysqli
Версия PHP: 5.4.16
Какие команды содержат эту инфу?

25.07.2020, 09:21

Получить информацию о сервере
Доброго времени суток всем! Возникла нужда в выводе информации, смотреть картинку ниже! Кто знает.

Сохранять на сервере информацию, введённую в формы
Здравствуйте, подскажите пожалуйста начинающему, как сделать чтоб после того как человек ввел в.

Вывести содержимое файлов определённого расширения на сервере
вывести содержимое файлов на сервере определённого расширения было где то щас найти не могу , как.

Синтаксис PHP

У вас когда-нибудь была радиоуправляемая машинка? Даже если нет, принцип работы вам наверняка известен: нажимаешь вперёд — машинка едет, нажимаешь влево — машинка меняет направление колёс. С помощью пульта вы отдаёте команды, а машинка их выполняет.

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

Где писать PHP код?

PHP-код пишется в файлах с расширением .php . Как и html, это просто текстовый файл. Более того, вы можете писать html-код прямо в PHP файлах.

Веб-серверы чаще всего настроены таким образом, что при заходе на главную страницу сайта автоматически открывается файл index.php или index.html, лежащий в корне сайта.

Создайте в корневой папке вашего сайта файл с названием index.php и откройте его в программе Notepad++.

Вывод строк и чисел на экран

Чтобы PHP начал вас понимать, команды к нему нужно помещать между тегами и ?> , например:

Команда echo отвечает за вывод информации на экран. После оператора указывается значение, которое нужно вывести. Чтобы вывести текст, его нужно указать в кавычках:

Команды в PHP разделяются точкой с запятой. Для удобства чтения каждую команду принято писать с новой строки:

Результат в браузере:

Вывод HTML кода

Внутри php файлов можно использовать HTML-код:


Также можно передавать html-код оператору echo :

Результат в браузере:

Мы можем как угодно совмещать PHP код и HTML теги:

Функции

Функция — это команда, которая выполняет какие-то действия — расчёты, работу с файлами и т.п. Определить функцию просто — у неё после названия идут круглые скобки:

Функция phpinfo() выводит на экран информацию о текущих настройках PHP.

Некоторые функции ожидают, что вы передадите им какое-нибудь значение. Например, функция округления ceil() ожидает, что вы передадите ей цифру, которую она округлит:

Как видите, функция ceil() получает переданное нами значение 91.5 , обрабатывает (превращает в 92) и возвращает результат. А команда echo получает возвращённое значение и выводит его на экран.

К функциям мы ещё вернёмся в уроках по функциям в PHP. На данном этапе вам просто нужно знать, что в PHP есть огромное количество встроенных функций, решающих самые разные задачи.

phpinfo () и php-v показывают различные версии PHP

Я хотел знать, какой php версия, которую я использую, поэтому я написал стандартный скрипт:

правильно версия PHP, необходимая для моего приложения. Когда я попробовал в терминале:

он показывает мне:

который мне не нужен. Тогда я попробовал с:

он показывает мне:

теперь я запутался какую версию PHP я использую. Файлы загружаются на сайт хостинга, и я не могу внести никаких изменений в конфигурационные файлы, такие как httpd.conf или php.ini .

4 ответов

короткий ответ.

не паникуйте! Если вас беспокоит, какую версию PHP использует ваш сервер Apache, выведите phpinfo() всегда то, что вы должны обратить внимание. PHP-модуль Apache и PHP-двоичный файл командной строки — это две разные вещи, которые не мешают друг другу.

на самом деле вы можете компилировать и загружать различные версии PHP вы хотите работать с Apache до тех пор, как вы настроить Apache, чтобы правильно загрузить его. Интерфейс командной строки PHP никогда не вступит в игру в случае разбора страниц PHP Apache.

в командной строке PHP-это просто для конкретных заданий командования линии и модуль PHP для Apache не трогать, использовать или нужно.

более подробный ответ.

я хотел знать, какой php версия, которую я использую, поэтому я написал стандартный скрипт:

что дает мне версию PHP 5.6.10-the правильно необходима версия PHP для моего приложения. Когда я попробовал в терминале:

он показывает мне версию PHP 5.3.2, которая мне не нужна.

версия PHP из командной строки уже 100% ничего общего с версии PHP загружен как модуль. Это совершенно разные вещи.

так что если вы обеспокоены тем, какую версию PHP использует ваше веб-приложение, если phpinfo() показывает версию 5.6.10 и это то, что вам нужно/нужно, это 100% нормально.

версия PHP для командной строки является отдельным системным элементом. Так что единственное, что имеет значение, это вывод phpinfo() .

если по какой-то причине вы хотите использовать другую версию PHP с Apache, все, что вам нужно сделать, это установить скомпилированный модуль Apache PHP где-то и добавить или настроить эту строку в конфигурации Apache вашей системы:


и просто настроить путь к libphp5.so -что то, что Apache использует для разбора PHP-затем перезапустить Apache, и вы находитесь в бизнесе.

например, в какой-то момент мне пришлось скомпилировать PHP версии 5.1.6 из источника (с поддержкой библиотеки GD) для использования на машине Ubuntu 12.04 под управлением PHP 5.3.5. В PHP модуле сервера загрузка файла здесь:

у меня были такие строки:

обратите внимание, как одна строка закомментирована для libphp535.so и libphp516-gd.so — это комментарии? Что я сделал, так это переименовал по умолчанию PHP 5.3.5 libphp5.so модуль Apache для libphp535.so с номером версии в имени, чтобы я мог иметь его там для справки, а затем назвал PHP 5.1.6 (с поддержкой библиотеки GD) модуль libphp516-gd.so так что я знаю, что это такое. Таким образом, они оба будут доступны мне бок о бок в системе.

и-как я уже сказал в начале-версия PHP, используемая в командной строке, не имеет абсолютно ничего общего с модулем Apache PHP. Так что вы можете иметь любое количество различных версий из Apache PHP модулей, сидящих на системе готовы пойти; просто настроить конфигурацию и перезапустить Apache, и вы должны быть все в бизнесе, чтобы использовать любую версию PHP вы указали Apache должен использовать.

phpinfo

(PHP 4, PHP 5, PHP 7)

phpinfo — Выводит информацию о текущей конфигурации PHP

Описание

Выводит большое количество информации о текущем состоянии PHP. Сюда входит информация о настройках компиляции PHP, о расширениях, о версии, информация о сервере и среде выполнения (если PHP компилировался как модуль), окружении PHP, версии ОС, о путях, об основных и локальных значениях настроек конфигурации, о HTTP заголовках и лицензии PHP.

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

phpinfo() также используется в целях отладки, так как содержит все EGPCS (Environment, GET, POST, Cookie, Server) данные.

Список параметров

Вывод функции можно настраивать, передавая битовую маску из одной или более приведенных ниже констант ( constants). Эта маска передается в качестве необязательного аргумента what . Отдельные константы или битовые значения можно комбинировать с помощью оператора или.

Настройки phpinfo()

Имя (константа) Значение Описание
INFO_GENERAL 1 Строка конфигурации, расположение php.ini , дата сборки, Web-сервер, Система и др.
INFO_CREDITS 2 Разработчики PHP. См. также phpcredits() .
INFO_CONFIGURATION 4 Текущие значение основных и локальных PHP директив. См. также ini_get() .
INFO_MODULES 8 Загруженные модули и их настройки. См. также get_loaded_extensions() .
INFO_ENVIRONMENT 16 Информация о переменных окружения, которая также доступна в $_ENV .
INFO_VARIABLES 32 Выводит все предопределенные переменные из EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE 64 Информация о лицензии PHP. См. также » license FAQ.
INFO_ALL -1 Выводит все приведенное выше.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия Описание
5.5.0 GUID логотипов были заменены на URI данных, и отключение expose_php теперь не влияет на результат phpinfo(). Список авторов теперь также встроен в вывод.
5.2.2 Добавлен вывод информации о загруженном конфигурационном файле. Ранее выводился только путь к конфигурационному файлу (php.ini).

Примеры

Пример #1 Пример использования phpinfo()

// Показывать всю информацию, по умолчанию INFO_ALL
phpinfo ();

// Показывать информацию только о загруженных модулях.
// phpinfo(8) выдает тот же результат.
phpinfo ( INFO_MODULES );

Примечания

В версиях PHP до 5.5, часть информации не выводится, если настройка expose_php установлена в off. Это PHP и Zend логотипы и информация о разработчиках.

В режиме CLI phpinfo() выводит обычный текст вместо HTML.

Смотрите также

  • phpversion() — Выдает текущую версию PHP
  • phpcredits() — Выводит список разработчиков PHP
  • php_logo_guid() — Получение guid логотипа
  • ini_get() — Получает значение настройки конфигурации
  • ini_set() — Установка значения настройки конфигурации
  • get_loaded_extensions() — Возвращает массив имен всех скомпилированных и загруженных модулей
  • Предопределенные переменные


Коментарии

check out this cool and fantastic colourful phpinfo()!

();
phpinfo ();
$phpinfo = ob_get_contents ();
ob_end_clean ();

preg_match_all ( ‘/#[0-9a-fA-F]<6>/’ , $phpinfo , $rawmatches );
for ( $i = 0 ; $i count ( $rawmatches [ 0 ]); $i ++)
$matches [] = $rawmatches [ 0 ][ $i ];
$matches = array_unique ( $matches );

$j = 0 ;
foreach ( $matches as $match )
<

$r = ‘#’ ;
$searches [ $j ] = $match ;
for ( $i = 0 ; $i 6 ; $i ++)
$r .= substr ( $hexvalue , mt_rand ( 0 , 15 ), 1 );
$replacements [ $j ++] = $r ;
unset( $r );
>

for ( $i = 0 ; $i count ( $searches ); $i ++)
$phpinfo = str_replace ( $searches , $replacements , $phpinfo );
echo $phpinfo ;
?>

This function parses the phpinfo output to get details about a PHP module.

/** parse php modules from phpinfo */
function parsePHPModules () <
ob_start ();
phpinfo ( INFO_MODULES );
$s = ob_get_contents ();
ob_end_clean ();

$s = strip_tags ( $s , ‘

‘ );
$s = preg_replace ( ‘/ ]*>([^ /’ , » \\1 » , $s );
$s = preg_replace ( ‘/ ]*>([^ /’ , » \\1 » , $s );
$vTmp = preg_split ( ‘/(

[^ )/’ , $s ,- 1 , PREG_SPLIT_DELIM_CAPTURE );
$vModules = array();
for ( $i = 1 ; $i count ( $vTmp ); $i ++) <
if ( preg_match ( ‘/

([^ /’ , $vTmp [ $i ], $vMat )) <
$vName = trim ( $vMat [ 1 ]);
$vTmp2 = explode ( «\n» , $vTmp [ $i + 1 ]);
foreach ( $vTmp2 AS $vOne ) <
$vPat = ‘ ([^ ‘ ;
$vPat3 = «/$vPat\s*$vPat\s*$vPat/» ;
$vPat2 = «/$vPat\s*$vPat/» ;
if ( preg_match ( $vPat3 , $vOne , $vMat )) < // 3cols
$vModules [ $vName ][ trim ( $vMat [ 1 ])] = array( trim ( $vMat [ 2 ]), trim ( $vMat [ 3 ]));
> elseif ( preg_match ( $vPat2 , $vOne , $vMat )) < // 2cols
$vModules [ $vName ][ trim ( $vMat [ 1 ])] = trim ( $vMat [ 2 ]);
>
>
>
>
return $vModules ;
>
?>

Sample Output:
[gd] => Array
(
[GD Support] => enabled
[GD Version] => bundled (2.0.28 compatible)
[FreeType Support] => enabled
[FreeType Linkage] => with freetype
[FreeType Version] => 2.1.9
[T1Lib Support] => enabled
[GIF Read Support] => enabled
[GIF Create Support] => enabled
[JPG Support] => enabled
[PNG Support] => enabled
[WBMP Support] => enabled
[XBM Support] => enabled
)

[date] => Array (
[date/time support] => enabled
[Timezone Database Version] => 2005.14
[Timezone Database] => internal
[Default timezone] => America/Los_Angeles
[Directive] => Array (
[0] => Local Value
[1] => Master Value
)
[date.timezone] => Array (
[0] => no value
[1] => no value
)
)

/** get a module setting */
function getModuleSetting ( $pModuleName , $pSetting ) <
$vModules = parsePHPModules ();
return $vModules [ $pModuleName ][ $pSetting ];
>
?>

Example: getModuleSetting(‘gd’,’GD Version’); returns «bundled (2.0.28 compatible)»

tags also had an align=»center». So this update changes the regex for those tags:

/* parse php modules from phpinfo */

function parsePHPModules () <
ob_start ();
phpinfo ( INFO_MODULES );
$s = ob_get_contents ();
ob_end_clean ();

$s = strip_tags ( $s , ‘

‘ );
$s = preg_replace ( ‘/ ]*>([^ /’ , » \\1 » , $s );
$s = preg_replace ( ‘/ ]*>([^ /’ , » \\1 » , $s );
$vTmp = preg_split ( ‘/(

]*>[^ )/’ , $s ,- 1 , PREG_SPLIT_DELIM_CAPTURE );
$vModules = array();
for ( $i = 1 ; $i count ( $vTmp ); $i ++) <
if ( preg_match ( ‘/

]*>([^ /’ , $vTmp [ $i ], $vMat )) <
$vName = trim ( $vMat [ 1 ]);
$vTmp2 = explode ( «\n» , $vTmp [ $i + 1 ]);
foreach ( $vTmp2 AS $vOne ) <
$vPat = ‘ ([^ ‘ ;
$vPat3 = «/$vPat\s*$vPat\s*$vPat/» ;
$vPat2 = «/$vPat\s*$vPat/» ;
if ( preg_match ( $vPat3 , $vOne , $vMat )) < // 3cols
$vModules [ $vName ][ trim ( $vMat [ 1 ])] = array( trim ( $vMat [ 2 ]), trim ( $vMat [ 3 ]));
> elseif ( preg_match ( $vPat2 , $vOne , $vMat )) < // 2cols
$vModules [ $vName ][ trim ( $vMat [ 1 ])] = trim ( $vMat [ 2 ]);
>
>
>
>
return $vModules ;
>
?>

One note on the above functions for cleaning up the phpinfo() HTML and throwing it into an array data structure. In order to catch all of the info tidbits the preg_match_all has to be tweaked to deal with 2 and 3 column tables.

I have changed the preg_match_all() here so that the last is optional

function parsePHPConfig () <
ob_start ();
phpinfo (- 1 );
$s = ob_get_contents ();
ob_end_clean ();
$a = $mtc = array();
if ( preg_match_all ( ‘/

(.*?) (.*?) (:? (.*?) )? /’ , $s , $mtc , PREG_SET_ORDER ))
foreach( $mtc as $v ) <
if( $v [ 2 ] == ‘no value‘ ) continue;
$a [ $v [ 1 ]] = $v [ 2 ];
>
>
return $a ;
>
?>

Embedding phpinfo within your page, that already has style information:

The phpinfo output is wrapped within a

, and we privatize all the style selectors that phpinfo() creates.

Yes, we cheat on preparing the selector list.


Почему многие программисты считают PHP плохим языком? — отвечают эксперты

За время существования PHP его не пинал только ленивый. Множество мемов, нелестных отзывов и прочей критики в его адрес. Мы решили спросить у экспертов, за что же так не любят PHP и почему его считают плохим языком.

Рустам Кильдиев , руководитель отдела разработки BigData компании «Иннодата»

Причин много, пройдём по основным. Появился он в середине 90-x годов, когда не было развитой инфраструктуры и возможностей для его изучения, следствием этого стало появление массы программистов, не изучивших его полностью и не имеющих базы в компьютерных науках, коротко говоря, пишущих не очень качественный код. Язык имеет динамическую типизацию и вообще очень прост, т.е. имеет крайне низкий порог входа, что усиливало выше описанный эффект.

В 2000-х начался бурный рост количества интернет сайтов. Благодаря своей скриптовой сущности именно PHP стал лидером в этой области. К 2010-м годам руками той самой «плохой» массы программистов была написана львиная доля интернета. Быстрее, чем на «пыхе», сайт не «накалякаешь». PHP, если просмотреть линию от создания до сегодняшнего дня, также имел отставание в технологическом и синтаксическом развитии, относительно своих ровесников, например, Java. Да и огромная часть интернета написана и продолжает писаться на версии PHP 4 (2000 г.), несмотря на наличие версии 7.

Язык очень своеобразен, просто вдумайтесь, в нём нет адекватного стек-трейса из коробки. Т.е. в него не заложен инструмент отладки и разбора ошибок. Просто пишите и сразу в продакшн. Свойства языка и «слава» писавших на нём и создали такой эффект. Плюс эффект активно нагнетает элита мира разработчиков, пишущих на намного более современных, сложных, развитых, одним словом «крутых» языках, таких как Python (последних версий), Scala, Go и т.п. Но не стоит забывать, что всегда надо иметь баланс между технологическим удовольствием и бизнес-ценностью инструмента работы.

Павел Романченко , технический директор центра инновационных технологий и решений «Инфосистемы Джет»

Потому что в языке отсутствует дизайн. Язык не развивался и не проектировался целенаправленно. Многие решения принимались хаотично, что называется, «по месту».

Например, названия функций неконсистентны, т.е., глядя в название одной функции работы со строками, нельзя предугадать название другой.

Результаты плохого проектирования видны всюду: mysql_real_escape_string , сломанный оператор == и т.д.

В отличие от многих других языков, где знания о языке ложатся в некую систему, PHP представляет собой свалку слабо связанных конструкций.

Кирилл Меженцев , программист группы разработки карты рассрочки «Совесть»

Не любить PHP очень легко. Если вы спросите у разработчиков, чем именно плох PHP, то вряд ли получите внятный ответ. Ссылаться могут на общеизвестные проблемы или на неудачный синтаксис, который не понравился человеку. В своё время PHP имел ряд проблем, но их не избежали и многие другие языки. Однако благодаря своей простоте язык стал популярным (Wikipedia, первый Facebook), а вместе с популярностью массовым стало и знание о его проблемах. За годы, с новыми релизами, часть проблем закрылась, но память жива. PHP стал просто удачным мальчиком для битья.

Юрий Пономарев , консультант по программным продуктам Oracle Центра технической поддержки компании РДТЕХ

Многие считают PHP плохим из-за трёх вещей:

  1. Всё, что написано, может быть истолковано несколькими способами.
  2. Если есть что-то очень медленно и плохо написанное на процедурных языках с долгой историей, то это так или иначе можно найти на PHP.
  3. Черепашья скорость отладки и поиска багов.

Али Рагимов , главный специалист отдела разработки программного обеспечения, Okko

Мне кажется, всё дело в происхождении языка. Изначально PHP был разработан как простой скриптовый язык, чтобы каждый человек мог легко написать для себя домашнюю страницу. Тогда аббревиатура PHP расшифровывалась как Personal Home Page. Со временем язык стал развиваться, но по-прежнему оставался простым и доступным. Так как порог вхождения был низким, это привлекало большое количество людей, которые до этого не были знакомы с разработкой. Сталкиваясь с вопросами и проблемами, люди преимущественно шли на форумы в ожидании, что кто-то даст им готовое решение — вместо того, чтобы самостоятельно глубоко изучить документацию.

Таким образом, PHP-сообщество на 90% состояло из людей, которые пишут, не задумываясь и вставляя в свои проекты куски непонятного кода — главное, чтобы работало. Многие из тех, кто разобрался в скриптинге получше, вели блоги о программировании и даже записывали видеокурсы, которые зачастую содержали такие подходы и такой код, которые были непригодны для использования в реальных проектах. А люди, которые могли развернуть WordPress и установить в него плагины, и вовсе считали себя экспертами.

Именно простота языка и недостаточная глубина знаний сообщества вокруг него и создали PHP дурную славу.

Однако всё это в прошлом. PHP уже давно содержит в себе интерфейсы, абстрактные классы, трейты и другие вещи, позволяющие реализовывать парадигмы ООП и использовать паттерны проектирования. А в последних версиях PHP появилась типизация аргументов функций и методов, возвращаемых значений и свойств классов. PHP также имеет свой пакетный менеджер, множество современных мощных фреймворков, таких как Symfony и Laravel, и массу других интересных проектов, написанных очень качественно. Сейчас, в 2020, лично я не вижу причин считать PHP «плохим» языком программирования.

Дмитрий Казаков , руководитель отдела веб-разработки RU-CENTER

Началось всё, как обычно, много лет назад, когда бизнес только начал осваивать интернет. Серьёзные проекты писались за серьёзные деньги, но большинству заказчиков хотелось получить какой-нибудь сайт за мелкий прайс, желательно вообще бесплатно. Так началась эпоха wordpress и joomla. Так как все разработчики, согласные делать проекты за нормальные деньги, уже были заняты на этих самых проектах за нормальные деньги, то сайтоделием на CMS занялись случайные люди, со временем начавшие отождествлять себя с программированием и PHP как языком этих CMS. Общий, весьма низкий технический уровень этого сообщества прицепом потянул за собой в бездну репутацию PHP как инструмента, а дефицит кадров в отечественном IT не позволял гнать несвежими тряпками таких разработчиков. В конце концов PHP стал синонимом «дёшево и быстро», а ведь никто из программистов не хочет «дёшево», оправдывая это придирками к архитектуре языка.

На самом же деле, если внимательно посмотреть на PHP, будет сложно найти существенные отличия от остальных C-подобных скриптовых языков. В конце концов, не бывает плохих языков — бывают плохие программисты.

Павел Цытович , тренер по разработке и архитектуре ПО в Luxoft

Почему многие программисты считают PHP плохим языком программирования? В основном это связано с неоднозначностью, которая присутствует при написании программ на этом языке. На просторах Сети нашёл следующий код:

Как вы думаете, что он напечатает? В таких языках, как Java, C++ или C#, есть аналогичный оператор условное выражение. Там он напечатает ‘train’. А в PHP результат будет ‘horse’!

Второй момент, который вызывает сложности с PHP, – это диагностика ошибок. Если вы открываете файл, то для этого есть функция fopen() . При невозможности открыть файл, сообщение об ошибке будет выведено в поток. Мы можем его подавить, используя символ @ , т.е. записать @fopen() . Однако, даже при наличии этого оператора, если в настройках php.ini вы указали опцию scream.enabled=true , это приведёт к печати сообщения об ошибке, даже если вы используете в коде оператор @ .


Третий момент связан с неоднозначностью оператора == . Вот на этом ресурсе есть хорошая таблица, какие результаты он возвращает.

Вся проблема в том, что этот оператор «не придирается» к типам данных. Так выражение вида 123 == «123foo» вернёт TRUE , а вот выражение «123» == «123foo» уже вернёт FALSE . Этот оператор пытается сделать приведение типа и в первом выражении просто преобразует строку “123foo” в число 123, когда в других языках программирования мы бы получили ошибку, что логично. А второе выражение просто сравнивает строки. Всё это порождает неоднозначность, с которой очень сложно совладать начинающим программистам на PHP. Хороший язык программирования не должен оставлять места трактовке тех или иных конструкций, а должен быть последовательным везде и всегда.

И четвертый момент, почему считают данный язык программирования плохим, – это тот момент, что он создавался как язык шаблонов, который встраивается в HTML-код с помощью тегов . В итоге это приводило к смешению программного кода и данных, что в больших системах недопустимо. Понятно, что потом появились «лучшие практики», как надо писать и как не надо писать скрипты PHP, но для начинающих разработчиков это и сегодня представляет определенную сложность.

В защиту языка программирования PHP хочется сказать, что по-своему это мощный язык программирования, который нашел своё место в веб-приложениях. На нём написано достаточно много веб-приложений, начиная от Facebook и заканчивая системой умного дома Majoromo, CMS Drupal и другими.

Дмитрий Гацура , руководитель отдела разработки компании «СёрчИнформ»

Его считают плохим те, кто на нём не пишет, либо, кто столкнулся с некачественным исполнением поставленной задачи. Те разработчики, кто не стремятся изучить документацию языка и не следуют рекомендациям, пишут на нём действительно очень слабо. Это бросает тень на всё сообщество. PHP — язык с низким порогом вхождения. Это одновременно сильная и слабая его сторона. Достаточно знать азы программирования, поставить интерпретатор и можно писать хоть в «Блокноте». По умолчанию конфигурация интерпретатора PHP не выводит детальной информации о предупреждениях и ошибках, что на начальном этапе изучения (использования) языка может сформировать у программиста неверные принципы написания кода.

Язык по сути развязывает руки разработчику: делай, что хочешь. А когда многое дозволено, приходится быть предельно аккуратным и дисциплинированным. PHP хорошо справляется с поставленными перед ним задачами по веб-разработке. Это универсальная рабочая лошадка, на языке написана большая часть сайтов в интернете. У него есть объективные слабые стороны, и связаны они с тем, что PHP развивался в трендах и тенденциях более чем пятнадцатилетней давности. В частности его проблема в том, что он тянет с 1997 года ворох проблем, например реализацию ООП, проблемы с сигнатурами функций в стандартной библиотеке, двойственный метод использования стандартных расширений (ООП или процедурный) и т.д. У PHP накопился багаж того, что нужно переделать. И эта работа ведется, многие исторически накопленные проблемы решаются.

Евгений Потапов , генеральный директор ITSumma

Во-первых, нужно изначально иметь в виду, что у языков программирования, даже общего назначения, есть свои устоявшиеся сферы применения. Если рассматривать PHP, то прежде всего это веб-разработка. Значит и сравнивать, насколько плох или хорош PHP, логично с другими языками для веб-разработки.

Тут нужна небольшая историческая справка. Изначально Web разрабатывали на «том, что было» (C, а потом Perl через CGI). Затем, особенно в энтерпрайз секторе, значительное распространение получила Java и следом C# (ответ Microsoft). Это созданные большими корпорациями, хорошо спроектированные, можно так сказать, серьёзные языки программирования.

В то же время PHP начинал как проект энтузиаста (даже расшифровывался как Personal Home Page), как набор скриптов на Perl.
Но в то же время он имел большие плюсы: очень низкий порог входа, отсутствие необходимости в тяжеловесных виртуальных машинах, простота создания несложных сайтов.

Обратная сторона этих плюсов — уровень компетенции комьюнити, собравшегося вокруг PHP, был значительно ниже по сравнению с другими языками.

Web стремительно развивался. А за ним развивался и PHP, так как это был чуть ли не единственный язык для построения неэнтерпрайзного Web.

С определенной версии это стал вполне современный язык (с некоторым наследием), в среднем, ничем не хуже, чем любые другие аналоги.

Но вот этот «Personal Home Page» осадок остался.

Во-вторых, когда PHP запустил волну популярности динамически программируемых языков, в Web зашли такие языки, как, например, Python, Ruby или NodeJS. Тут уже началась «гонка вооружений» между ними. На старте эти языки (и связанные библиотеки и фреймворки) учитывали недостатки PHP и выглядели значительно привлекательнее. Тут уже начались холивары между комьюнити. В принципе каждый язык занял свою нишу. PHP же итеративно догоняет по функциональными возможностям нововведения в других языках. И на текущем этапе плохим языком его назвать уж точно нельзя. Скорее — промышленным стандартом в не-энтерпрайз Web.

Резюмируя, можно сказать, что такое отношение к PHP вызвано его историей и конкуренцией с регулярно появляющимися «самыми прорывными» свежими языками.

сравнивая 2 настройки phpinfo

Я хотел бы сравнить настройки, которые у меня есть на 2 разных серверах. Оба являются общими хостингами, поэтому я не думаю, что у меня достаточно доступа, чтобы сделать это любым другим способом, кроме как программно с phpinfo. Итак, теперь, когда у меня есть 2 выхода, я бы хотел сравнить их, не рассматривая их вручную. Есть ли автоматизированный способ для этого?

Также, как примечание, я думаю , что phpinfo — это вывод php.ini. Это правильно?

5 ответов

Из руководства по PHP для phpinfo() :

Выводит большое количество информации о текущем состоянии PHP. Сюда входит информация о параметрах и расширениях компиляции PHP, версии PHP, информации о сервере и среде (если она скомпилирована как модуль), среде PHP, информации о версии ОС, путях, основных и локальных значениях параметров конфигурации, заголовках HTTP и PHP Лицензия.

phpinfo() делает больше, чем просто распечатывает настройки php.ini .

Если вы хотите обработать настройки php.ini вручную, вы можете проверить ini_get_all() вместо phpinfo() . Это возвращает массив всех значений конфигурации.

Вы можете передать выходные данные ini_get_all() с сервера A на сервер B (например, с помощью var_export() для создания кода PHP для создания массива или serialize() ), а затем использовать array_diff_assoc() для сравнения настроек.

export.php : (сервер A)

Compare.php : (сервер B)

Нашел этот вопрос путем поиска и впоследствии нашел скрипт, который делает именно то, что я хотел (и я ожидаю, что ОП тоже хотел).


Как вывести данные из MySQL при помощи PHP?

Есть таблица news , в ней 5 полей id, text, title, author, date . Необходимо вывести на странице эти данные. У меня никак не получается это сделать: все время какие-либо ошибки. Пробовал использовать функцию mysql_fetch_assoc , но что-то, как ее применять, я не очень понял постоянно — одна и та же ошибка expects parameter 1 to be resource, boolean . Я, конечно, понимаю, что это значит, но вот как исправить — нет.

3 ответа 3

Вообще-то все очень просто, функций для работы с MySQL из PHP много (смотрите документацию). Вот небольшой пример вывода данных:

Ваш код: $news = mysql_query(«SELECT * FROM news «); while ($row = mysql_fetch_assoc($news, MYSQL_ASSOC)) < //echo $row['title']; foreach ($row as $col_value) < print "\t\t $col_value

\n»; > > Уберите MYSQL_ASSOC из mysql_fetch_assoc – ghost r > 16 авг ’12 в 11:54

Позволю себе запостить пример, приведенный выше, немного исправленный, с использованием mysql , который не рекомендуется к использованию:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php mysql или задайте свой вопрос.

Связанные

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.11.11.35402

php вывод текста и переменной | Особенности

Решил я написать эту статью, чтобы расставить точки как правильно и когда выводить данные. Статья не простая, поэтому если Вы ещё никогда не выводили текст ранее, то лучше начните с первого урока курса по PHP, а уже как опыта наберётесь, тогда заглядывайте сюда.

Чтобы вывести на экран текст мы используем одну из следующих конструкций языка: echo или print, либо функцию printf. Давайте разберём варианты и их особенности:

Функция printf позволяет нам вывести на экран отформатированный текст:

printf используется очень редко, самое популярное применение: преобразовать цену товара в классический вид: рубли.копейки. К примеру:

Если printf используют для вывода очень редко, то вот языковые конструкции print и echo — в каждом коде! Я говорю, что printf функция и значение надо писать в скобках по примеру выше, а вот echo и print — языковые конструкции и текст писать в скобках не надо:

Разница между echo и print есть, хоть смысл у них один и тот же. print может указывать лишь 1 значение, а вот в echo можно перечислять их через запятую:

Не смотря на это всё же можно вывести через один print 2 переменных и делается это с использованием конкатенации:

Конкатенация строк работает следующим образом, она СНАЧАЛА объединяет все в одну большую строку, а уже потом выводит один раз! С другой стороны мы не говорим по очереди «выведи то, выведи сё», мы говорим: у тебя выделено в памяти 1 байт под $x, и 1 байт под $y, объедини $x и $y в памяти и получи ещё одну временную строку в 2 байта (2 символа латинских), и потом выведи и очисти память. В итоге математики уже смогли посчитать. что при конкатенации будет занято уже 4 байта временно на данные, а при перечислении через запятую только 2.

На первый взгляд кажется, что запятая всё же круче в данном случае, но везде повсеместно используют точку. На самом деле ответ очень прост и его подтвердит любой эксперт — нет смысла заморачиваться и экономить на спичках, использование точки считается более классическим и делом привычки многих, и вы никогда в жизни не столкнётесь с тем, что сайт быстрее или медленнее работает из-за точки или запятой. Настоящая производительность сайтов кроется совсем в других вопросах (сложные операции, большой объем данных в Базе Данных)! Поэтому смело используйте то, что Вы уже ранее использовали, переучиваться нет смысла.

По поводу конкатенации стоит заметить самую важную и огромнейшую вещь — её используют для объединения переменной с переменной или строки с переменной, но объединять строку со строкой будет считаться плохим тоном:

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

Завершая тему print и echo хотелось бы уточнить ещё второе отличие. print возвращает цифру 1 всегда после завершения выполнения, echo — нет. И вот на этом часто любят строить задачки такого плана для того, чтобы пошевелить мозгами:

И типовая задачка:

И тут Вы спросите, используется ли такое где-то? Ответ — НЕТ, это считается маразмом, и была бы моя воля, я print сделал бы лишь синонимом echo. Не смотря на то, что подобное никто никогда не использует, эта возможность до сих пор остаётся как развлечение для теоретиков.

Какие кавычки правильно использовать для вывода текста в PHP

Я не буду грузить Вам голову маразмом, итак одну вещь рассказал выше. Поэтому давайте сразу перейдем к тому, как правильно делать вывод!


Правило №1 — без кавычек мы пишем числа и переменные:

Правило №2: Одинарные кавычки используем когда хотим вывести в неизменном виде то, что содержится внутри кавычек, а это мы хотим сделать всегда:

Заметьте, что теги отправляются в браузер в неизменном виде, а браузер, в свою очередь, обрабатывает их и выводит как теги, то есть уже отформатированный код. Снова же мы повторяем, что PHP — генерирует HTML, а не текст.

Исключения из правил, когда мы хотим вывести спецсимволы такие как знак больше или меньше, или целый блок HTML, то мы применяем функцию htmlspecialchars:

Правило №3: двойные кавычки применяем, когда хотим вывести обработанную строку, то есть практически никогда. Не смотря на о, что следующий код сможет вывести переменную:

Данный код считается ужасным, банально потому что мы не можем читать наш код и не понимаем его поведение:

Глядя на код выше выведется Friends или FrienBeer ? Это называется не очевидным поведением, а значит в будущем ещё не раз поведение этого кода может быть изменено. Никогда не пишите код так, чтобы нельзя было его сразу быстрым взглядом понять. Правильно было бы:

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

В исходном коде страницы Вы можете увидеть как работает перевод строки \r\n и понять разницу.

Встраиваем вывод из PHP в HTML

PHP — лишь инструмент, способ вставить в HTML какую-то сгенерированную часть данных, поэтому мы используем PHP внутри HTML всегда. Простой вариант:

Указанный выше синтаксис многогранен, внутри конструкции PHP мы можем не только использовать echo, но и любые другие операции включая создание переменных и т.д. и т.п. Но если необходимо ТОЛЬКО вывести переменную или текст одним действием (только одним echo), можно применить сокращенный синтаксис:

Самое интересное, это использовать совмещенный синтаксис для PHP и HTML:

Как вы видите, внутри итерации цикла можно выводить чистый HTML, достаточно закрыть конструкцию PHP и продолжить выводить HTML. Этот способ намного предпочтительнее обычного echo тем, что наш редактор кода IDE PHPStorm подсветит синтаксис кода и упростит разработку сайта.

Статья будет дорабатываться и совершенствоваться. Но даже сейчас я в ней обозначил все основные приёмы вывода текста и переменных в PHP

Просмотр информации о PHP phpinfo() в phpMyAdmin v.2.10.0.1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Сообщений [ 3 ]

1 Тема от tri777ki 2007-03-16 01:42:05

  • tri777ki
  • Редкий гость
  • Неактивен
  • На форуме с 2007-03-16
  • Сообщений: 2

Тема: Просмотр информации о PHP phpinfo() в phpMyAdmin v.2.10.0.1

Обновил phpMyAdmin до версии 2.10.0.1 и. не смог в ней найти ссылки «Показать информацию о PHP». Исчеза такая возможность из phpMyAdmin?

2 Ответ от Lokki 2007-03-16 07:18:07

  • Lokki
  • Админ
  • Неактивен
  • Откуда: Москва
  • На форуме с 2006-01-25
  • Сообщений: 910

Re: Просмотр информации о PHP phpinfo() в phpMyAdmin v.2.10.0.1

Исчеза такая возможность из phpMyAdmin?

Нет, она не исчезла. Чтобы отображалась ссылка на информацию PHP — пропишите в своём конфигурационном файле:
$cfg[‘ShowPhpInfo’] = TRUE;

Илон Маск рекомендует:  Iis сценарии администрирования
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL