ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли

HackWare.ru

Π­Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ Ρ…Π°ΠΊΠΈΠ½Π³ ΠΈ тСстированиС Π½Π° ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅, информационная Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ PHP скрипт Π±Π΅Π· Π²Π΅Π±-сСрвСра

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

Π•Ρ‰Ρ‘ запуск PHP скриптов Π² консоли ΡƒΠ΄ΠΎΠ±Π΅Π½ для ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… язык. Π₯отя ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ с этим Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΈΡ‚ΡŒΡΡ. ΠŸΡ€ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² консоль, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² скрипт, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ HTML. Но Ссли Π²Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚Π΅ PHP для создания Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ сСрвисов, Ρ‚ΠΎ Π²Π°ΠΌ всё Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌ придётся Π΄ΠΎΡƒΡ‡ΠΈΠ²Π°Ρ‚ΡŒ особСнности ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° (Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ сСрвСра), Π° Ρ‚Π°ΠΊΠΆΠ΅ HTML Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вСсь Π²Ρ‹Π²ΠΎΠ΄ скриптов Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ для Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ PHP скрипт Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Linux

Π£ вас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн PHP, ΠΊ ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π² Linux ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP устанавливаСтся ΠΎΡ‡Π΅Π½ΡŒ просто, Π° Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… дистрибутивах присутствуСт ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если Ρƒ вас Π΅Π³ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅Ρ‚, Ρ‚ΠΎ установитС Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄.

Π’ Debian, Kali Linux, Linux Mint, Ubuntu:

Π’ Arch Linux, BlackArch:

Установка ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра Π² Linux Mint описана здСсь, Π² Ubuntu здСсь, Π² Arch Linux/BlackArch здСсь, Π° Π² Kali Linux ΠΎΠ½ ΡƒΠΆΠ΅ установлСн, ΠΏΡ€ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ здСсь.

Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ запуск скриптов Π² консоли, Π² Ρ‚ΠΎΠΌ числС ΠΎΠΏΡ†ΠΈΠΈ запуска, Π² Linux ΠΈ Windows ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹Π΅.

Если Π²Ρ‹ совсСм Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² Linux, Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ смотритС Азы Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ PHP скрипт Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Windows

Если Π²Ρ‹ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с запуском ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Windows ΠΈΠ»ΠΈ хотя Π±Ρ‹ Π² Linux, Ρ‚ΠΎ для вас всё совсСм просто β€” Π²Π΅Π·Π΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ. Но Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΠΎ порядку для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ².

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ PHP ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π½ΠΎ ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ Π²Π΅Π±-сСрвСр Apache + PHP + MySQL Π½Π° Windows, Ρ‚ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ установку ΠΏΠΎ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

Для запуска PHP Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π²Π΅Π±-сСрвСр, достаточно ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² с PHP ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ. О Ρ‚ΠΎΠΌ, Π³Π΄Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ PHP с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ с вСрсиями, смотритС эту ΡΡ‚Π°Ρ‚ΡŒΡŽ.

Если Π²Ρ‹ часто Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ PHP скрипты ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Windows, Ρ‚ΠΎ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ PHP Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния PATH Π² Windows. Благодаря этому Π½Π΅ придётся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Ρ„Π°ΠΉΠ»Π° php.exe.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° PHP установлСн ΠΈ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ php.exe Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния Windows, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку, для этого Π½Π°ΠΆΠΌΠΈΡ‚Π΅ сочСтаниС клавиш Win+x ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Windows PowerShell.

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΎΡΡŒ, посмотрим справку ΠΏΠΎ PHP:

ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. php. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-php. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° php. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

На самом Π΄Π΅Π»Π΅, ΠΌΡ‹ запускаСм Ρ„Π°ΠΉΠ» php.exe, Π½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ прСдыдущая запись эквивалСнтна

Π‘ΠΏΡ€Π°Π²ΠΊΠ° ΠΈ ΠΎΠΏΡ†ΠΈΠΈ запуска PHP скриптов Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

Π‘ΠΏΡ€Π°Π²ΠΊΠ° содСрТит ΠΎΠΏΡ†ΠΈΠΈ для Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² запуска Ρ„Π°ΠΉΠ»ΠΎΠ² .php Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, поэтому ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Π΅Ρ‘ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ.

Как ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² запуска ΠΌΠ½ΠΎΠ³ΠΎ. Если Π²Ρ‹ Π½Π΅ совсСм поняли, Ρ‡Ρ‚ΠΎ имСлось Π²Π²ΠΈΠ΄Ρƒ, Π½Π΅ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡ‚Π΅ΡΡŒ. Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΌΡ‹ ознакомимся со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡ†ΠΈΠΉ, ΠΈΠ·ΡƒΡ‡ΠΈΠΌ, Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΌΠ°Ρ‚Ρ‡Π°ΡΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ приступим ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ внСсут ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡΠ½ΠΎΡΡ‚ΡŒ.

ΠžΠΏΡ†ΠΈΡŽ -f ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ прСдыдущая ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹:

Π― создал тСстовый Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ располоТСн ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ C:\Users\Alex\Documents\PHP\test.php Ρ‚ΠΎΠ³Π΄Π° я ΠΌΠΎΠ³Ρƒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² PHP Ρ‚Π°ΠΊ:

Как ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ PHP скрипту Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ скрипту Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², пСрСчислитС ΠΈΡ… послС ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°, раздСляя ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ. Если сами Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ содСрТат ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ особоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Ρ‚ΠΎ помСститС эти Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ запуска PHP скрипта с трСмя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ:

Как Π² PHP скриптС ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ

ΠŸΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² массивС $argv. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ, порядковый Π½ΠΎΠΌΠ΅Ρ€ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° соотвСтствуСт Π½ΠΎΠΌΠ΅Ρ€Ρƒ Π² массивС. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΌΠ΅Ρ‰Ρ‘Π½ Π² $argv[1], Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π² $argv[2] ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт массива с ΠΈΠΌΠ΅Π½Π΅ΠΌ $argv[0] содСрТит ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ запускаСмого скрипта.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ Ρ„Π°ΠΉΠ»Π° test.php:

Запустим Π΅Π³ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΄ΠΈΠΌ Π² скрипт Ρ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°:

ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. php 2. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-php 2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° php 2. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

Как Π² PHP ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² консоли

Благодаря ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ, скрипт ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с прописанными Π² Π½Ρ‘ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½ΠΎ ΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ значСниями, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈ запускС скрипта.

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π²Π΅Π±-сСрвСра, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ³Π΄Π° PHP скрипт выполняСт Π·Π°Π΄Π°Ρ‡ΠΈ для Π²Π΅Π±-сайта, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ HTTP ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² GET ΠΈ POST. Π­Ρ‚ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ запуском скрипта, ΠΈ ΡƒΠΆΠ΅ послС запуска PHP скрипта Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ нСльзя β€” Π½ΡƒΠΆΠ½ΠΎ ΠΆΠ΄Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ ΠΏΡ€ΠΈ нСобходимости Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Ρ‘ Π΅Ρ‰Ρ‘ Ρ€Π°Π· с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π’ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π²ΠΎΠ΄ Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π² консоли это достигаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ строки запроса, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Enter для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΅Π³ΠΎ скрипту. Π’ контСкстС Π²Π΅Π±-сайта Ρ‚Π°ΠΊΠΎΠΉ возмоТности β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΡƒΠΆΠ΅ Π²ΠΎ врСмя выполнСния скрипта β€” Π½Π΅Ρ‚. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ запуск PHP скриптов с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΡ‰Π΅ (Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΎΠ·ΠΈΡ‚ΡŒΡΡ с HTML Ρ„ΠΎΡ€ΠΌΠΎΠΉ), Π½ΠΎ ΠΈ Π΄Π°ΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΉ.

Π’ PHP для запроса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция readline.

Π­Ρ‚Π° функция ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ Π½Π° Windows ΠΈ Π½Π° Linux. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ Π½Π° Linux ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ возмоТности Bash, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сохраняСт ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π²Π²ΠΎΠ΄Π°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ стрСлок. На Windows эта Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ появилась начиная с PHP 7.1.

Если сильно Π½Π°Π΄ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GNU Readline рассмотрСны здСсь. Π― ΠΆΠ΅ ΠΊΠΎΡΠ½ΡƒΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ readline, которая считываСт Π²Π²Π΅Π΄Ρ‘Π½Π½ΡƒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ строку. Π‘ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ β€” строку, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π² ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ консольного PHP скрипта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. php 3. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-php 3. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° php 3. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° синтаксиса скрипта PHP Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

Π‘ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ -l Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ синтаксис, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ΅Π½Ρ‹ Π»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΊΠΎΠ΄Π° PHP, Π½ΠΎ сам Ρ„Π°ΠΉΠ» скрипт Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½:

Или Ссли Π² Ρ„Π°ΠΉΠ»Π΅ Π΅ΡΡ‚ΡŒ ошибки:

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ PHP Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅

Если Π²Π°ΠΌ это Π½ΡƒΠΆΠ½ΠΎ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ PHP Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, вводя ΠΊΠΎΠ΄ построчно. ΠŸΡ€ΠΈ этом ΠΊΠΎΠ΄ выполняСтся послС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ Enter, Π½ΠΎ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ сСссии. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… строках.

Для запуска ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ шСлла:

ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. php 4. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-php 4. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° php 4. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

Запуск ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ PHP

Для выполнСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ -r:

Запуск встроСнного Π² PHP Π²Π΅Π±-сСрвСра

Π’ PHP Π΅ΡΡ‚ΡŒ свой собствСнный Π²Π΅Π±-сСрвСр! Если Π²Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π½Π°Π΄ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· сторонних сСрвСров для ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Допустим, Π² качСствС ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ IP адрСса я Ρ…ΠΎΡ‡Ρƒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ 127.0.0.1, Π² качСствС ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π° β€” 84, корнСвая ΠΏΠ°ΠΏΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²Π΅Π±-сСрвСра Ρƒ мСня располоТСна Π² C:\Users\Alex\Documents\PHP\, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° запуска ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

Π’ этой ΠΏΠ°ΠΏΠΊΠ΅ Ρƒ мСня Ρ„Π°ΠΉΠ» test_2.php со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ содСрТимым:

ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. php 5. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-php 5. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° php 5. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. php 6. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-php 6. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° php 6. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

МоТно Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΠ· спортивного интСрСса ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ встроСнном Π²Π΅Π±-сСрвСрС Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ WordPress, Π½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π»Π΅Π½ΡŒβ€¦

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ справки Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

Для получСния справки ΠΎ функциях PHP прямо Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ опция —rf.

Ну ΠΊΠ°ΠΊ-Ρ‚ΠΎ так… Π° Ρ‡Π΅Π³ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ β€” это ΠΆΠ΅ консоль.

Насколько я понял, Π² строкС Parameters Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ количСство Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, строка required ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Π° строка optional β€” Ρ‡Ρ‚ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ. О Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΠΈΡ… ΠΈΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, $filename. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ дСйствиС выполняСт функция, Π²ΠΈΠ΄ΠΈΠΌΠΎ, Π½Π΅Ρ‚.

ΠžΠΏΡ†ΠΈΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

Если Π²Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΊΠΎΠ΄, Π² Ρ‚ΠΎΠΌ числС для Π²Π΅Π±-сайтов, Ρ‚ΠΎ Π²Π°ΠΌ пригодятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ:

Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ PHP

Для ΠΏΠΎΠΊΠ°Π·Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ PHP ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ ΠΎΠΏΡ†ΠΈΠΈ:

ΠžΠΏΡ†ΠΈΡ -i β€” это эквивалСнт phpinfo, Π½ΠΎ для консоли.

PHP Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π΄Π°ΠΆΠ΅ Ссли достаточно ΠΏΡ€Π°Π² Π½Π° запись

На самом Π΄Π΅Π»Π΅ это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ запускС PHP скриптов ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π½ΠΎ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ скрипта Π½Π° Π²Π΅Π±-сСрвСрС. Но ΠΏΡ€ΠΈ запускС Π² консоли большС условий для получСния этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: PHP скрипт Π½Π΅ сохраняСт Ρ„Π°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΡƒ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ установлСны ΠΏΡ€Π°Π²Π° Π½Π° запись для ΠΊΠΎΠ³ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ (777).

Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π½Π΅ΠΎΠ±ΡŠΡΡΠ½ΠΈΠΌΡ‹ΠΌ, Ссли Π²Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π΅ open_basedir Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ php.ini. Данная Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ всС Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅ΠΌΠΈ ΠΏΠ°ΠΏΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ с Π½Π΅ΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Данная запись ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ PHP скрипт ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠ°ΠΏΠΊΡƒ /srv/http/, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΏΠ°ΠΏΠΊΠΈ /etc/webapps/, /usr/share/webapps/ ΠΈ /tmp/.

ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ Ссли Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° open_basedir Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ настроСна (строка с Π½Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°), Ρ‚ΠΎ PHP ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π² Π»ΡŽΠ±ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ, Ссли Ρƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ достаточно ΠΏΡ€Π°Π² Π½Π° запись.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² консоли PHP скрипт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ β€” Ссли эта ΠΏΠ°ΠΏΠΊΠ° Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° Π² open_basedir, Π½ΠΎ ΠΏΡ€ΠΈ этом сама Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° open_basedir настроСна, Ρ‚ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ описанная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: PHP Π½Π΅ смоТСт Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π΄Π°ΠΆΠ΅ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ для всСх.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ этой ошибки Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ PHP скрипт Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° настроСк Ρ„Π°ΠΉΠ»Π° php.ini ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ -n, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠšΡΡ‚Π°Ρ‚ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ настроСк ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ PHP, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. php.ini. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-php.ini. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° php.ini. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Запуск PHP скриптов Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС β€” это Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΠΈΡ… запуску Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-сСрвСр. Π Π°Π±ΠΎΡ‚Π° Π² консоли ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Π° ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ языку ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ PHP ΠΈΠ»ΠΈ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π΄Π°ΠΆΠ΅ Ссли Π² дальнСйшСм эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ скрипты Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Π²Π΅Π±-сСрвСрС.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π½Π° PHP ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ скрипту Π½Π° Bash, особСнно Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π‘Π£Π‘Π” (MySQL, SQLite) β€” с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· Bash Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ тяТСло, Π»ΠΈΠ±ΠΎ для использования возмоТностСй PHP ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с тСкстом Π² Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ΅ XML, JSON β€” Ρ‡Ρ‚ΠΎ Π² Bash Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Π’ любом случаС, Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚Π°ΠΊΠΎΠΉ возмоТности, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, особСнно Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ срСди эксплойтов, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой PHP скрипты, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для запуска Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли

Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° для запуска.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ PHP-ΠΊΠΎΠ΄ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС.

НСобходимо Π±Ρ‹Ρ‚ΡŒ особо остороТным ΠΏΡ€ΠΈ использовании этого способа, Ρ‚.ΠΊ. ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ подстановка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΏΡ€ΠΈ использовании Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ.

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ запускаСмый PHP-ΠΊΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· стандартный ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π° ( stdin ).

Π­Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ ΠΌΠΎΡ‰Π½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ PHP-ΠΊΠΎΠ΄ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ запускаСмому Ρ„Π°ΠΉΠ»Ρƒ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² этом (Π²Ρ‹ΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΌ) ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 Запуск PHP-скрипта ΠΊΠ°ΠΊ консольного

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, Ρ‡Ρ‚ΠΎ этот Ρ„Π°ΠΉΠ» Π½Π°Π·Π²Π°Π½ test ΠΈ находится Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #2 Π‘ΠΊΡ€ΠΈΠΏΡ‚, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для запуска ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (script.php)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #3 ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для запуска PHP-скрипта ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (script.bat)

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Readline для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ консольного PHP-скрипта.

Π’ Windows рСкомСндуСтся Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ PHP ΠΏΠΎΠ΄ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записью ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² сСтСвой слуТбС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ «ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΡ‘Π½ ΡƒΡ‡Ρ‘Ρ‚Π½Ρ‹Ρ… записСй ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² бСзопасности Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ».

User Contributed Notes 7 notes

On Linux, the shebang (#!) line is parsed by the kernel into at most two parts.
For example:

1. is the standard way to start a script. (compare «#!/bin/bash».)

3. if you don’t need to use env, you can pass ONE parameter here. For example, to ignore the system’s PHP.ini, and go with the defaults, use «-n». (See «man php».)

4. or, you can set exactly one configuration variable. I recommend this one, because display_errors actually takes effect if it is set here. Otherwise, the only place you can enable it is system-wide in php.ini. If you try to use ini_set() in your script itself, it’s too late: if your script has a parse error, it will silently die.

Summary: use (2) for maximum portability, and (4) for maximum debugging.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли

БущСствСнныС отличия CLI SAPI ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… SAPI :


Π₯отя Π² CGI SAPI имССтся способ подавлСния HTTP-шапок, эквивалСнтного ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ для ΠΈΡ… Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² CLI SAPI Π½Π΅Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π­Ρ‚ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ php.ini ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (Ссли спСцифицирован). Π­Ρ‚ΠΎ являСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ послС Ρ€Π°Π·Π±ΠΎΡ€Π° всСх Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Однако ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π½Π° этапС ΠΏΡ€ΠΎΠ³ΠΎΠ½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла для всСх Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для register_argc_argv).

Π›Π΅Π³Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² срСдС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ константы:

Π’Π°Π±Π»ΠΈΡ†Π° 24-2. БпСцифичСскиС CLI-константы

Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ явно Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ эти ΠΏΠΎΡ‚ΠΎΠΊΠΈ, это дСлаСтся РНР автоматичСски.

CLI SAPI Π½Π΅ измСняСт Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ исполняСмого скрипта!

ΠŸΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ CGI SAPI :

Π­Ρ‚ΠΎ ясно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ PHP измСняСт свою Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ исполняСмого скрипта.

ИспользованиС CLI SAPI Π΄Π°Ρ‘Ρ‚:

Π‘ΠΊΠ°Π·Π°Ρ‚ΡŒ PHP Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ PHP ΠΊΠΎΠ΄ для выполнСния нСпосрСдствСнно ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Особого внимания Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ ΠΈ использованиС ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ.

Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти Ρ‚Ρ€ΠΈ способа ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°.

ΠŸΡ€ΠΈΠ½ΡΠ², Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» называСтся test ΠΈ находится Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

Π’Π°Π±Π»ΠΈΡ†Π° 24-3. ΠžΠΏΡ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ синтаксис Π² Ρ†Π²Π΅Ρ‚Π΅.

ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ исходный тСкст Π±Π΅Π· ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ².

Π Π°Π·Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ выполняСт Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π­Ρ‚ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½. Достаточно ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ имя Ρ„Π°ΠΉΠ»Π° для выполнСния.

ЗаписываСт PHP, PHP SAPI ΠΈ Zend-вСрсии Π² стандартный Π²Ρ‹Π²ΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:-c

ЗапускаСт PHP ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ.

Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для debugger/profiler.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€, выводящий ΠΎΡˆΠΈΠ±ΠΊΡƒ Ρ€Π°Π·Π±ΠΎΡ€Ρ‰ΠΈΠΊΠ°:

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ/shell ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ sh/bash, Ρƒ вас ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹Π΅ вопросы. ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠΉΡ‚Π΅ bug report ΠΈΠ»ΠΈ mail ΠΏΠΎ адрСсу phpdoc@lists.php.net. МоТно Π»Π΅Π³ΠΊΠΎ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΈΠ»ΠΈ использовании ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… слэшСй (/) для Π·Π°ΠΌΠ΅Π½/escaping.
Π’Ρ‹ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½Ρ‹.

-hΠ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ спискС ΠΎΠΏΡ†ΠΈΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ΠΈ нСбольшоС описаниС ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 24-1. Π‘ΠΊΡ€ΠΈΠΏΡ‚, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ для запуска ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (script.php)

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 24-2. ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ/Batch-Ρ„Π°ΠΉΠ» для запуска PHP-скрипта Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС (script.bat)

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ Readline ΠΎ функциях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ вашСго РНР-прилоТСния для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° PHP

Π£ ΠΌΠ½ΠΎΠ³ΠΈΡ…, Ρ€Π°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ Ρƒ мСня, пСриодичСски Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡. НапримСр Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ сайт/API ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² xml/json/csv, произвСсти ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ расчСты/пСрСсчСты, ΠΏΠ΅Ρ€Π΅Π³Π½Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ статистику ΠΈ Ρ‚.Π΄. ΠΈ Ρ‚.ΠΏ. Π—Π°ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Ρ‡ΡŒ ΠΎ Π·Π°Π΄Π°Ρ‡Π°Ρ… Π½Π΅ связанных с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ.

ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. 239ee7d4cc099eb9346bc92b491a8ab0. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-239ee7d4cc099eb9346bc92b491a8ab0. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 239ee7d4cc099eb9346bc92b491a8ab0. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

Π‘ΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ тяТСлый Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Ρ€Π°Π΄ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ„ΠΈΡ‡, лСнь, Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΠ΄Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π½Π΅ эстСтично. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для экономии своСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ приходится ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ скрипт, ΠΊΠΎΠΏΠΈΠΏΠ°ΡΡ‚ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ куски ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипт ΠΈΠ· консоли. ΠŸΡ€ΠΈ этом часто трСбуСтся нСкоторая ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ скрипта: ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΠΏΡ†ΠΈΠΉ/Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π° Ρ‚ΠΎ ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ взаимодСйствиС. Π—Π΄Π΅ΡΡŒ Π³Π»Π°Π²Π½ΠΎΠ΅ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ настроСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ описываСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ «АппСтит ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π²ΠΎ врСмя Π΅Π΄Ρ‹Β», Ρ‚ΠΎΠ³Π΄Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ понятно ΠΊ Ρ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ простой Π·Π°Π΄Π°Ρ‡ΠΊΠΎΠΉ =)

Π’ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ я вспоминал ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΡΠΈΠΌΡ„ΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ консоль, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ успСл ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ½ΡƒΡ‚ΡŒ работая с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π°
Symfony 2. НС Π² ΠΎΠ±ΠΈΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΠΌ консолям (zend, yii, django, ror etc), всС Ρ…ΠΎΡ€ΠΎΡˆΠΈ, просто Ρ‚Π°ΠΊ слоТилось.

Когда Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ Ρ€Π°Π· ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ€Π°ΡΠΏΠ°Ρ€ΡΠΈΡ‚ΡŒ, я ΠΎΠΏΡΡ‚ΡŒ вспомнил ΠΏΡ€ΠΎ консоль Symfony (Console Component) ΠΈ Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ это нСзависимый ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ всС большС ΠΏΠΎΠ΄Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΠ» мСня ΠΊ мысли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ возмоТности.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π‘omposer-Π° создаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

Π£ мСня Composer установлСн глобально, поэтому ΠΎΠ½ всСгда доступСн. Если Π²Ρ‹ ΠΈΠΌ Π΅Ρ‰Π΅ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ, Ρ‚ΠΎ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ.

ПослС скачивания прилоТСния ΠΈ всСх зависимостСй ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ:

Если Π²ΠΈΠ΄ΠΈΠΌ ΡΠΏΡ€Π°Π²ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ список доступных ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π½Π°Ρ‡ΠΈΡ‚ всС ΠΎΠΊ. Выглядит это Ρ‚Π°ΠΊ:

ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. 0b84b39cdf539f246d52fe44842e64e7. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-0b84b39cdf539f246d52fe44842e64e7. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 0b84b39cdf539f246d52fe44842e64e7. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ создадим шаблон класса ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ:

Π’ появившСмся Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ класса:

Π’ ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅:

БобствСнно всС, ΠΊΠΎΠΌΠ°Π½Π΄Π° Π³ΠΎΡ‚ΠΎΠ²Π°, ΠΎΠ½Π° появилась Π² спискС доступных ΠΊΠΎΠΌΠ°Π½Π΄:

ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. f115d906685b9e1a5c578dbfa555c84f. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-f115d906685b9e1a5c578dbfa555c84f. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° f115d906685b9e1a5c578dbfa555c84f. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

Но ΠΏΠΎΠΊΠ° ΠΎΠ½Π° Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ (здСсь ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ созданный класс Π² IDE ΠΈΠ»ΠΈ любимом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹).

Π’Π°ΠΊ ΠΊΠ°ΠΊ для нашСго ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ внСшний ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈ Π½Π°ΠΌ нравится ООП, поставим Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ:

Buzz β€” Π»Π΅Π³ΠΊΠΈΠΉ HTTP ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π½Π° PHP5.3. Π‘ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для выполнСния запросов ΠΊ сСрвису новостСй.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ класс β€” YandexRSSNewsParser, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ классу ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚:

И ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ класс ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, для Π²Ρ‹Π²ΠΎΠ΄Π° Π² консоль Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² послСдних новостСй, Ρ€ΡƒΠ±Ρ€ΠΈΠΊΠΈ Β«Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Β»:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:
ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. 2749fc95490032c64dd2ed5c6aec089c. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли-2749fc95490032c64dd2ed5c6aec089c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 2749fc95490032c64dd2ed5c6aec089c. Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ PHP стал Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ практичСски ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Π΅Π±-сСрвСра. ΠŸΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ написаны Π½Π° PHP. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСхнология PHP ΠΎΡ‡Π΅Π½ΡŒ стойко Ρƒ ΠΌΠ½ΠΎΠ³ΠΈΡ… ассоциируСтся ΠΈΠΌΠ΅Π½Π½ΠΎ с Π²Π΅Π± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ, со срСдой Π²Π΅Π±-сСрвСра. Но Π½Π° самом Π΄Π΅Π»Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ скрипты PHP ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ Π½Π΅ ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ созданных ΠΊΠ°ΠΊ Π²Π΅Π± прилоТСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WordPress, phpMyAdmin, гостСвыС ΠΊΠ½ΠΈΠ³ΠΈ, Ρ„ΠΎΡ€ΡƒΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π°ΠΊΠΈΠ΅ скрипты ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ создавались для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² условиях Π²Π΅Π±-сСрвСра ΠΈ для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π² Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Вряд Π»ΠΈ удастся ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅, Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ связанныС с Π²Π΅Π± сСрвисами функциями. По сути, PHP являСтся ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΈΠ±ΠΊΠΈΠΌ языком с Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ классов ΠΈ Π½Π° Π½Ρ‘ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΠΎΠ΄ Π»ΡŽΠ±Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π›ΠΈΠ±ΠΎ ядро ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ бэк-энд) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ€ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ»ΡΡ ΠΎΡ‡Π΅Π½ΡŒ простой, Π° Π·Π° счСт symfony/console ΠΈ composer-Π° Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ инструмСнт для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° PHP.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ php Π² консоли

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ консоль, ΠΌΠΎΠΆΠ½ΠΎ ввСсти ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ нСпосрСдствСнно PHP-ΠΊΠΎΠ΄.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 Запуск ΠΊΠΎΠ΄Π° Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ консоли

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ консоль Ρ‚Π°ΠΊΠΆΠ΅ автодополняСт (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиши Tab) ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, констант, классов, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π²Ρ‹Π·ΠΎΠ²Ρ‹ статичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ константы классов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #2 АвтодополнСниС ΠΏΠΎ Tab

Π”Π²ΠΎΠΉΠ½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши Tab ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² дополнСния ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ список этих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:

Когда Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Tab Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ тСкст Π½Π° Ρ‚ΠΎΠΉ ΠΆΠ΅ самой строкС:

Π”ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для ΠΈΠΌΡ‘Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ сСссии:

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π°Ρ консоль Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄, для доступа ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стрСлки Π²Π²Π΅Ρ€Ρ… ΠΈ Π²Π½ΠΈΠ·. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ хранится Π² Ρ„Π°ΠΉΠ»Π΅

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ настройки php.ini Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ консоли, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ сокращСниС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #3 Установка настройки php.ini Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ консоли

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ апострофы ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ PHP-ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполнится Π² ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠΈ Π½Π° Π²Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Установка less для постраничного Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ…:

Π€Π°ΠΉΠ»Ρ‹, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΉ auto_prepend_file ΠΈ auto_append_file ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ограничСниями, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π΄ΠΎ ΠΈΡ… использования.

User Contributed Notes 14 notes

Interactive Shell and Interactive Mode are not the same thing, despite the similar names and functionality.

In Windows, press Enter after your ending PHP tag and then hit Ctrl-Z to denote the end-of-file:

echo «Hello, world!» ;
?>
^Z
Hello, world!

You can use the up and down arrows in interactive mode to recall previous code you ran.

It seems the interactive shell cannot be made to work in WIN environments at the moment.

Using «php://stdin», it shouldn’t be too difficult to roll your own. You can partially mimic the shell by calling this simple script (Note: Window’s cmd already has an input history calling feature using the up/down keys, and that functionality will still be available during execution here):

?>

Replace ‘eval’ with code to parse the input string, validate it using is_callable and other variable handling functions, catch fatal errors before they happen, allow line-by-line function defining, etc. Though Readline is not available in Windows, for more tips and examples for workarounds, see http://www.php.net/manual/en/ref.readline.php

For use interactive mode enabled on GNU/Linux on distros Debian/Ubuntu/LinuxMint you must install «php*-cli» and «php*-readline» packages from official repository.
Example:
>$sudo aptitude install php5-cli php5-readline

After that you can use interactive mode.
Example:

php >echo «hola mundo!\n»;
hola mundo!
php >

I hope somebody help it!

Just a few more notes to add.

1) Hitting return does literally mean «execute this command». Semicolon to note end of line is still required. Meaning, doing the following will produce a parse error:

php > print «test»
php > print «asdf»;

Whereas doing the following is just fine:

2) Fatal errors may eject you from the shell:

Fatal Error: call to undefined function.
name@local:

3) User defined functions are not saved in history from shell session to shell session.

4) Should be obvious, but to quit the shell, just type «quit» at the php prompt.

5) In a sense, the shell interaction can be thought of as linearly following a regular php file, except it’s live and dynamic. If you define a function that you’ve already defined earlier in your current shell, you will receive a fatal «function already defined» error only upon entering that closing bracket. And, although «including» a toolset of custom functions or a couple of script addon php files is rather handy, should you edit those files and wish to «reinclude» it again, you’ll cause a fatal «function x already defined» error.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *