Как вывести переменную php в консоль
Перейти к содержимому

Как вывести переменную php в консоль

  • автор:

PHP: Вывод текста

В PHP есть два основных способа вывода данных: echo и print .

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

echo

Обратите внимание, что echo можно писать двумя способами с круглыми скобками и без них: echo или echo() . Если вы используете синтаксис с круглыми скобками, то передать можно только один аргумент. При использовании синтаксиса без скобок, можно передавать несколько аргументов, разделяя их запятыми.

Следующий пример показывает, как выводить текст с помощью echo. Обратите внимание, что текст может содержать HTML разметку.

PHP это легко!"; echo "Сейчас я изучаю PHP!
"; echo "Эта ", "строка ", "была ", "сделана", " из нескольких аргументов."; ?>

Теперь рассмотрим вывод текста вместе с переменным:

$txt1"; echo "Сейчас я изучаю PHP на $txt2
"; echo $x + $y; ?>

print

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

Следующий пример показывает, как выводить текст с помощью print . Обратите внимание, что текст может содержать HTML разметку.

PHP это легко!"; print "Сейчас я изучаю PHP!
"; print "И мне это нравится."; ?>

Теперь рассмотрим вывод текста вместе с переменным:

$txt1"; print "Сейчас я изучаю PHP на $txt2
"; print $x + $y; ?>

Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2024 © puzzleweb.ru | razumnikum.ru

getenv

Получает значение одной или всех переменных окружения.

Список всех переменных окружения можно посмотреть с помощью функции phpinfo() . Многие из этих переменных есть в документе » RFC 3875, по большей части в разделе 4.1, «Request Meta-Variables».

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

Имя переменной в виде строки ( string ) или null .

Если установлено значение true , возвращаются только локальные переменные окружения, установленные операционной системой или командой putenv. Это имеет значение только в том случае, если параметр name является строкой ( string ).

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

Возвращает значение переменной окружения name или false , если переменная окружения name не существует. Если name равно null , возвращаются все переменные окружения в виде ассоциативного массива ( array ).

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

Версия Описание
8.0.0 Параметр name теперь допускает значение null .
7.1.0 Параметр name теперь может быть опущен для получения ассоциативного массива ( array ) всех переменных окружения.
7.0.9 Был добавлен параметр local_only .

Примеры

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

// Пример использования getenv()
$ip = getenv ( ‘REMOTE_ADDR’ );

// Можно ещё воспользоваться суперглобальной переменной ($_SERVER или $_ENV)
$ip = $_SERVER [ ‘REMOTE_ADDR’ ];

// Гарантированно получаем значение переменной окружения, не обращая внимания,
// была ли она переопределена SAPI или изменена с помощью putenv
$ip = getenv ( ‘REMOTE_ADDR’ , true ) ?: getenv ( ‘REMOTE_ADDR’ );
?>

Примечания

Внимание

Если PHP запущен в SAPI, например как Fast CGI, эта функция будет возвращать значения переменных окружения установленных SAPI, даже если вы использовали putenv() для установки локальной переменной с таким же именем. Используйте параметр local_only для получения установленных локально переменных.

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

  • putenv() — Устанавливает значение переменной среды
  • apache_getenv() — Возвращает переменную окружения подпроцесса сервера Apache
  • Суперглобальные переменные

User Contributed Notes 14 notes

5 years ago

Contrary to what eng.mrkto.com said, getenv() isn’t always case-insensitive. On Linux it is not:

var_dump ( getenv ( ‘path’ )); // bool(false)
var_dump ( getenv ( ‘Path’ )); // bool(false)
var_dump ( getenv ( ‘PATH’ )); // string(13) «/usr/bin:/bin»

7 years ago

As noted on httpoxy.org, getenv() can confuse you in having you believe that all variables come from a «safe» environment (not all of them do).

In particular, $_SERVER[‘HTTP_PROXY’] (or its equivalent getenv(‘HTTP_PROXY’)) can be manually set in the HTTP request header, so it should not be considered safe in a CGI environment.

In short, try to avoid using getenv(‘HTTP_PROXY’) without properly filtering it.

13 years ago

This function is useful (compared to $_SERVER, $_ENV) because it searches $varname key in those array case-insensitive manner.
For example on Windows $_SERVER[‘Path’] is like you see Capitalized, not ‘PATH’ as you expected.
So just:

3 years ago

I did a benchmark about env.

constants :
0.00067687034606934 ms
getenv :
0.056761026382446 ms

And, in Windows at leat, reading the env value is considerably slow (in comparison with a constant), so PHP doesn’t cache the information and asks to the OS the env value per call.

So, if you are calling once per request, then there is not a problem. However, if you are calling it many times per request, then it could affects the performance.

12 years ago

All of the notes and examples so far have been strictly CGI.
It should not be understated the usefulness of getenv()/putenv() in CLI as well.

You can pass a number of variables to a CLI script via environment variables, either in Unix/Linux bash/sh with the «VAR=’foo’; export $VAR» paradigm, or in Windows with the «set VAR=’foo'» paradigm. (Csh users, you’re on your own!) getenv(«VAR») will retrieve that value from the environment.

We have a system by which we include a file full of putenv() statements storing configuration values that can apply to many different CLI PHP programs. But if we want to override these values, we can use the shell’s (or calling application, such as ant) environment variable setting method to do so.

This saves us from having to manage an unmanageable amount of one-off configuration changes per execution via command line arguments; instead we just set the appropriate env var first.

20 years ago

As you know, getenv(‘DOCUMENT_ROOT’) is useful.
However, under CLI environment(I tend to do quick check
if it works or not), it doesn’t work without modified php.ini
file. So I add «export DOCUMENT_ROOT=~» in my .bash_profile.

4 years ago

It is worth noting that since getenv(‘MY_VARIABLE’) will return false when the variable given is not set, there is no direct way to distinguish between a variable that is unset and one that is explicitly set to the value bool(false) when using getenv().
This makes it somewhat tricky to have boolean environment variables default to true if unset, which you can work around either by using «falsy» values such as 0 with the strict comparison operators or by using the superglobal arrays and isset().

8 years ago

for quick check of getenv() adding a new env variable —
if you add a new env variable, make sure not only apache but xampp is also restarted.
Otherwise getenv() will return false for the newly added env variable.

5 years ago

From PHP 7.1 => getenv() no longer requires its parameter. If the parameter is omitted, then the current environment variables will be returned as an associative array.

15 years ago

SERVER_NAME is the name defined in the apache configuration.
HTTP_HOST is the host header sent by the client when using the more recent versions of the http protocol.

8 years ago

Beware that when using this function with PHP built-in server – i.e. php -S localhost:8000 – it will return boolean FALSE.

13 years ago

When writing CLI applications, not that any environment variables that are set in your web server config will not be passed through. PHP will pass through system environment variables that are prefixed based off the safe_mode_allowed_env_vars directive in your php.ini

6 years ago

The example on how to fallback produces a syntax error on PHP 5.2:

$ip = getenv ( ‘REMOTE_ADDR’ , true ) ?: getenv ( ‘REMOTE_ADDR’ )

?>

-bash-3.2$ /web/cgi-bin/php5 test.php
Content-type: text/html

Parse error: syntax error, unexpected ‘:’ in /home/content/25/11223125/test.php on line 3

On PHP 5.2, one must write

$ip = getenv(‘REMOTE_ADDR’, true) ? getenv(‘REMOTE_ADDR’, true) : getenv(‘REMOTE_ADDR’)

14 years ago

A function returning the remote adress of the visiting browser could look like this:

function getIPfromXForwarded () <
$ipString =@ getenv ( «HTTP_X_FORWARDED_FOR» );
$addr = explode ( «,» , $ipString );
return $addr [ sizeof ( $addr )- 1 ];
>
?>

Note that some adresses are followed by a whitespace and ip2long(getIPfromXForwarded()) would not return the expected result.

Make use of trim() in your scripts, either in the function itself, or the surrounding space of the caller.

  • Опции PHP/информационные функции
    • assert
    • cli_​get_​process_​title
    • cli_​set_​process_​title
    • dl
    • extension_​loaded
    • gc_​collect_​cycles
    • gc_​disable
    • gc_​enable
    • gc_​enabled
    • gc_​mem_​caches
    • gc_​status
    • get_​cfg_​var
    • get_​current_​user
    • get_​defined_​constants
    • get_​extension_​funcs
    • get_​include_​path
    • get_​included_​files
    • get_​loaded_​extensions
    • get_​required_​files
    • get_​resources
    • getenv
    • getlastmod
    • getmygid
    • getmyinode
    • getmypid
    • getmyuid
    • getopt
    • getrusage
    • ini_​alter
    • ini_​get_​all
    • ini_​get
    • ini_​parse_​quantity
    • ini_​restore
    • ini_​set
    • memory_​get_​peak_​usage
    • memory_​get_​usage
    • memory_​reset_​peak_​usage
    • php_​ini_​loaded_​file
    • php_​ini_​scanned_​files
    • php_​sapi_​name
    • php_​uname
    • phpcredits
    • phpinfo
    • phpversion
    • putenv
    • set_​include_​path
    • set_​time_​limit
    • sys_​get_​temp_​dir
    • version_​compare
    • zend_​thread_​id
    • zend_​version
    • assert_​options
    • get_​magic_​quotes_​gpc
    • get_​magic_​quotes_​runtime
    • restore_​include_​path
    • Copyright © 2001-2024 The PHP Group
    • My PHP.net
    • Contact
    • Other PHP.net sites
    • Privacy policy

    Передать значение переменной из JS в PHP для использования в скрипте [дубликат]

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

    $(document).on('click', '#editBtn', function()< // Здесь код для получения значения ID строки var $.ajax(< type: "POST", url: "./include/popup/dbselect.php", data: , success: function(responseText) < console.log(ID); >, error: function() < console.log('ERROR'); >>); >); 

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

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

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

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

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

    printf("%%b = '%b'", 322); // Вывести значение в двоичном представлении

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

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

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

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

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

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

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

    Hello
World
'; // много тегов можно уместить в одной строке для вывода, не стесняйтесь

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

"; // Вывести специальный символ UTF-8

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

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

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

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

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

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

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

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

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

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

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

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

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

"; // Вывести специальный символ UTF-8

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

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

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

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


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

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

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

Комментарии о School-PHP (2):

— ROBIN 02.11.2020 09:11

У Стаса, всегда нужная информация. Бывает пишешь что-нибудь, думаешь — надо загуглить. потом думаешь — ну нафиг! и идёшь к Стасу на сайт.
И не нужно гуглить. Тут всегда всё свежее и главное — без «воды», всё по теме.

— Руслан 30.05.2018 09:17
Полезная и интересная статья как всегда, Станислав!
Спасибо за труды 🙂

Персональный блог Ускова Станислава: School-PHP.com

В основном в данном блоке идут посадочные страницы с целью привлечения аудитории из Google и Yandex. Под каждый поисковый запрос создаётся отдельная страница, в итоге мы получаем много статей на разные темы, при этом полезны только для того, кто был заинтересован именно этим запросом. Для остальных же всё же советую сосредоточиться на прохождении общей программы курса!

Школа программирования © 2012-2024
imbalance_hero | inpost@list.ru , admin@school-php.com
account on phpforum | youtube channel

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *