Php в переводе принимали участие


Содержание

Как передать переменную из одного php файла в другой

Есть переменная $product_price, которая формируется в файле shop.browse.php
Как передать эту переменную в другой файл- addtocart_form.tpl.php и вывести ее значение через echo
пожалуйста, помогите

04.03.2015, 10:28

Передать переменную с одного файла в другой
У меня есть 2 файла pr1 и pr2, в pr1 создаю переменную $a, которой зайдаю значения rand(1,5). Как.

Как передать переменную из одного скрипта в другой?
Мне нужно просто в одном скрипте определить переменную, присвоить ей 0, а при выполнении другого.

Как передать переменную из одного скрипта в другой?
Добрый вечер. Столкнулся с проблемой маленькой. Начну по порядку. Нужно было создать html.

Как перенести переменную из одного файла в другой?
У меня есть один файл в котором я получаю последнее id, как мне эту переменную перенести в другой.

Как из php файла передать данные в переменную javascript
Обращаюсь по АПИ к стороннему сервису. В ответ получаю данные: Array ( => Array .

Php в переводе принимали участие

Предисловие переводчика.

Некоторое время назад мне потребовалось написать небольшой скрипт на языке PHP для Web-странички. Поскольку до того момента мне не приходилось встречаться с PHP, я начала искать в Интернет руководство по этому языку и первым делом, естественно, обратилась на сайт PHP Club (http://phpclub.unet.ru/index.php3?m=links). К счастью, я знала о существовании этого сайта. К моему удивлению обнаружилось, что документации по PHP на русском языке очень мало. Да что там мало, можно сказать, что ее нет вообще, ведь практически единственное русскоязычное руководство (http://www.webclub.ru/materials/php/) относится к версии 2 этого языка (а сейчас уже вышла версия 4.0.3).

Этот факт тем более удивителен, что язык PHP используется на массе серверов в Интернет. К сожалению, за неимением статистической информации не могу указать здесь точный процент, но могу привести такой факт. В ноябре 2000 г. на сайте http://nevod.ru/linux был проведен опрос на тему «На каком языке проще, быстрее и качественнее писать CGI?». В опросе приняло участие 954 респондента (по состоянию на 28.11.00). По результатам опроса PHP оказался на втором месте (после Perl) по популярности среди языков, используемых для создания CGI-скриптов. Perl набрал 334 голоса (35 процентов), а PHP — 232 голоса (24 процента). Все остальные языки, включая C, C++, Delphi и Visual Basic, набрали не более 11 процентов голосов. Конечно, тут надо сделать поправку на то, что опрос проводился на сайте, посвященном ОС Линукс, а значит, результаты опроса могут не совсем правильно отражать реальную картину использования разных языков, но все же эти результаты говорят о том, что PHP достаточно широко используется.

Среди англоязычной документации по PHP в списке ссылок на сервере PHP Club конечно было указано и полное руководство по этому языку (http://phpclub.unet.ru/manual). Но я выбрала для первоначального знакомства с PHP документ, который на PHP Club назван «наиболее удачным описанием PHP» (оригинал статьи Вы можете найти по адресу http://www.builder.com/Programming/PHPIntro/?). А поскольку документации на русском мало, я решила попутно перевести этот документ полностью. Этот перевод я и предлагаю вниманию всех, кого интересует PHP.

Кстати говоря, за то время, пока я переводила этот материал, я нашла в Интернет еще пару руководств по PHP на русском языке. Думаю, что Вам пригодятся соответствующие ссылки (для полноты я включила сюда и ссылку на упоминавшееся выше руководство Д.Брэндона ко второй версии PHP):

  • Дик Брэндон. PHP/FI Version 2.0. (http://www.webclub.ru/materials/php/) Перевод Юрия Плетнева.
  • Букварь по PHP и mySQL. (http://www.rusdoc.ru/material/web/about_php_rus_pdf.zip) — pdf-файл. Данный букварь просто поможет вам сделать первые шаги в изучении PHP и способах взаимодействия его с БД MySQL.
  • Shawn Wallace Введение в PHP. (http://spslug.sposad.ru/doc/phpintro.html) Перевод Михаила Крайнова.
  • С.Лосев. Рабочие инструменты сайтостроителя. (http://officesoft.agava.ru/index1.php3?path=articles/php1&ftype=article)
    В этом цикле статей, посвященного современному «сайтостроению», рассказывается о популярной системе MySQL и языке программирования PHP, как с их помощью можно решать задачи, с которыми сталкивается любой разработчик Интернет-сайта — подготовка и отображение новостей, ввод и отображение текстовой информации, поиск на сайте, организация дополнительных сервисов («узнавания» посетителя, форумов, опросов и т.д.).
    Часть 1. Первое знакомство с PHP и MySQL (http://officesoft.agava.ru/index1.php3?path=articles/php1&ftype=article)
    Часть 2. Кругом новости, но как их ввести и отобразить? (http://officesoft.agava.ru/index1.php3?path=articles/php2&ftype=article)
    Часть 3. Статьи для сайта (http://officesoft.agava.ru/index1.php3?path=articles/php3&ftype=article)
    Часть 4. Дополнительные сервисы (http://officesoft.agava.ru/index1.php3?path=articles/php4&ftype=article)

    Поскольку переведенный мной материал не повторяет эти руководства, надеюсь он будет полезен и читателям журнала «Мир ПК».

    PHP — это язык программирования для динамической генерации Web-страниц с помощью скриптов, запускаемых на Web-сервере. Вы создаете страницу с помощью PHP and HTML. Когда посетитель сайта открывает страницу, сервер выполняет включенные в html-код операторы PHP и посылает результат браузеру посетителя, точно так же, как это делается с помощью ASP или ColdFusion. Однако, в отличие от ASP или ColdFusion, PHP является продуктом с открытым исходным кодом (Open Source) и платформенно-независим. PHP работает на Windows NT и многих версиях Unix. Он может быть запущен как модуль в Apache или как исполняемая программа через CGI. В случае запуска в виде модуля Apache, PHP работает особенно легко и быстро. В этом случае отсутствуют накладные расходы, связанные с созданием процессов, поэтому результат выдается быстро, и не требуется настраивать mod_perl для уменьшения расходования памяти сервера.

    Кроме различных операций с содержимым Ваших страниц, с помощью PHP Вы можете формировать HTTP-заголовки, установить cookie, управлять аутентификацией и перенаправить пользователя на другую страницу. PHP предоставляет великолепные возможности по доступу к базам данных (и ODBC), а также интеграцию с различными внешними библиотеками. Это позволяет Вам делать все — от генерации PDF-документов до грамматического разбора в XML.

    Операторы PHP вставляются прямо в Ваши Web-страницы, так что нет необходимости в специальных средах разработки ( > и заканчиваете его тегом ?> . (Вы можете сконфигурировать PHP так, что будут использоваться теги в стиле ASP: или теги вида .) Все, что находится между этими тегами будет интерпретироваться как PHP-код.

    Синтаксис языка PHP подобен синтаксису C и Perl. Вы не должны объявлять переменные до их использования. Легко создаются массивы и хэши (ассоциативные массивы). PHP даже имеет какие-то зачатки объектно-ориентированного программирования, обеспечивая удобный способ организации кода и его инкапсуляции.

    Хотя PHP быстрее всего работает в том случае, когда он встроен в Apache, на Web-сайте PHP имеются инструкции по его установке на Microsoft IIS и Netscape Enterprise Server. Если у Вас еще нет копии программного обеспечения для установки PHP, Вы можете скачать ее с официального Web-сайта (http://www.php.net/). Там же Вы найдете подробное руководство, в котором описаны все функции и особенности PHP.

    Синтаксис PHP

    С основами синтаксиса PHP Вы знакомы. Следующий код

    Имена переменных обозначаются знаком $ . То же самое «Hello, World!» можно получить следующим образом:

    Что такое PHP? Пишем свою первую программу на PHP

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

    И PHP , и Javascript можно встраивать в HTML-страницы .

    Прочитав эту статью о PHP программировании, вы узнаете :

    • Что такое скриптовый язык?
    • Сценарный язык vs программный язык.
    • Как расшифровывается PHP ?
    • Что такое PHP ?
    • Синтаксис PHP .
    • Зачем нужен PHP ?
    • Для чего используется PHP и какова его доля на рынке?
    • PHP vs ASP.NET vs JSP vs CFML .
    • Файловые расширения PHP .
    • Простая программа PHP .

    Сценарный язык vs программный язык

    Программный язык Сценарный язык
    Предлагает свойства, необходимые для разработки полноценных приложений. В основном используется для выполнения рутинных задач.
    Перед исполнением код нужно компилировать. Код исполняется без компиляции.
    Необязательно встраивать в другие языки. Обычно встраивается в другие программные среды.

    Как расшифровывается PHP?

    PHP расшифровывается как Personal Home Page ( персональная домашняя страница ), но сейчас всё чаше используется Hypertext Preprocessor .

    PHP-код можно встраивать в HTML или использовать в CMS и веб-фреймворках.

    Что такое PHP?

    Основное предназначение языка программирования PHP заключается в разработке:

    • Статичных сайтов;
    • Динамических сайтов;
    • Веб-приложений.

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

    Клиентским компьютерам, осуществляющим доступ к PHP-скриптам , понадобится только браузер. PHP-файл содержит теги, и имеет расширение .php .

    PHP-синтаксис


    PHP-файл также может содержать HTML и клиентские скрипты JavaScript .

    • Знание HTML будет преимуществом при изучении PHP . Можно учить PHP и без знания HTML , но желательно знать хотя бы основы;
    • СУБД для приложений, работающих с применением БД ;
    • Для реализации более сложных задач потребуется связка JavaScript и XML .

    На рисунке, приведенном ниже, демонстрируется базовая архитектура веб-приложения и процесс обработки запросов сервером. Это важно знать при изучении PHP программирования с нуля:

    Зачем нужен PHP?

    • PHP бесплатен и предлагает открытый исходный код;
    • Изучить его проще, нежели JSP , ASP и т. д.;
    • Большое сообщество разработчиков;
    • Большинство хостингов поддерживают PHP , чего не скажешь об ASP , для которого необходима поддержка IIS ;
    • PHP постоянно обновляется;
    • PHP предлагает встроенную поддержку MySQL . Также PHP можно использовать с:
    • Postgres ;
    • Oracle ;
    • MS SQL Server ;
    • ODBC ;
    • PHP – кроссплатформенный язык. Это означает, что вы можете реализовать свое приложение на нескольких ОС , включая Windows , Linux , Mac OS и других.

    Для чего используется PHP и какова его доля на рынке?

    На основе PHP работает более 20 миллионов сайтов и веб-приложений:

    PHP vs ASP.NET vs JSP vs CFML

    ASP – Active Server Pages.
    JSP – Java Server Pages.
    CFML – Cold Fusion Markup Language.

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

    Свойство PHP ASP JSP CFML
    Обучаемость Быстро Дольше чем PHP Дольше чем PHP Дольше чем PHP
    Хостинг Поддерживается практически всеми хостерами. Необходим выделенный сервер. Относительно хорошая. Необходим выделенный сервер.
    Open Source Да Нет Да Доступны коммерческая и open source версии
    Поддержка веб-сервисов Встроенная Используется фреймворк .NET Используются дополнительные библиотеки Встроенная
    Интеграция с HTML Простая Достаточно сложная Достаточно сложная Простая
    Поддержка MySQL Нативная Потребуются сторонние драйверы Потребуются сторонние драйверы В текущей версии есть нативная поддержка. В прежних версиях используется ODBC
    Дополнение другими языками Да Нет При помощи Java-классов и библиотек Да
    Илон Маск рекомендует:  Рекомендуемые плагины

    Файловые расширения PHP

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

    PHP был разработан для работы с HTML , следовательно, его можно встраивать в HTML-код :

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

    Чтобы сервер мог отличить PHP от HTML , код всегда нужно обрамлять соответствующими тегами. PHP чувствителен к регистру. Это значит, что « VAR » — это не то же самое, что « var ».

    Сами PHP-теги не чувствительны к регистру, но настоятельно рекомендуется использовать нижний регистр:

    Мы расцениваем строки PHP-кода как выражения. Они оканчиваются точкой с запятой ( ; ). Если у вас будет только одно выражение, то точку с запятой можно опустить. Если выражений больше одного, то каждая строка должна завершаться точкой с запятой.

    PHP Hello World

    Приведённая ниже программа является простым PHP-приложением , которое выводит “ Hello World! ” в браузере.

    Резюме

    • Язык программирования PHP расшифровывается как Hypertext pre-processor ;
    • PHP выполняется на стороне сервера. Это исключает необходимость установки дополнительного программного обеспечения на устройства пользователей;
    • PHP-файлы необходимо сохранять с расширением .php ;
    • PHP распространяется с открытым исходным кодом и поддерживается на многих платформах.

    Данная публикация представляет собой перевод статьи « What is PHP? Write your first PHP Program » , подготовленной дружной командой проекта Интернет-технологии.ру

    операторы — Справочник — Что означает этот символ в PHP?

    Что это?

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

    Почему это?

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

    Примечание: с января 2013 года переполнение стека поддерживает специальные символы . Просто окружите условия поиска кавычками, например, [php] «==» vs «===»

    Что мне здесь делать?

    Если кто-то указал на вас кем-то из-за того, что вы задали такой вопрос, пожалуйста, найдите конкретный синтаксис ниже. Связанные страницы с Руководство по PHP вместе со связанными вопросами, скорее всего, ответит на ваш вопрос. Если это так, вам предлагается поднять ответ. Этот список не является заменой помощи, оказанной другими.

    Список

    Если ваш конкретный токен не указан ниже, вы можете найти его в Список токенов парсера .

    [] Массивы (короткий синтаксис начиная с PHP 5.4)

    Решение

    Они могут идти до или после переменной.

    Если поставить перед переменной, операция увеличения / уменьшения выполняется для переменной первый тогда результат возвращается. Если поставить после переменной, переменная первый возвращается, то операция увеличения / уменьшения выполняется.

    В случае выше ++$i используется, так как это быстрее. $i++ будет иметь такие же результаты.

    Предварительное увеличение немного быстрее, потому что оно действительно увеличивает переменную и после этого «возвращает» результат. Постинкремент создает специальную переменную, копирует туда значение первой переменной и только после использования первой переменной заменяет ее значение на второе.

    Тем не менее, вы должны использовать $apples— , так как сначала вы хотите отобразить текущее количество яблок, и затем Вы хотите вычесть один из них.

    Вы также можете увеличивать буквы в PHP:

    однажды z достигнут aa рядом и так далее.

    Обратите внимание, что символьные переменные можно увеличивать, но не уменьшать, и даже в этом случае поддерживаются только простые символы ASCII (a-z и A-Z).

    Сообщения переполнения стека:

    Другие решения

    Что немного? Бит представляет собой 1 или 0. В основном OFF (0) и ON (1)

    Что такое байт? Байт состоит из 8 битов, а наибольшее значение байта равно 255, что означает, что установлен каждый бит. Посмотрим, почему максимальное значение байта равно 255.

    Это представление 1 байт

    1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255 (1 байт)

    Оператор «И»: &

    Это вывело бы число 8. Почему? Хорошо, давайте посмотрим на нашем примере таблицы.

    Таким образом, вы можете видеть из таблицы, что единственный бит, которым они делятся, это 8 бит.

    Второй пример

    Два общих бита — 32 и 4, которые при сложении вместе возвращают 36.

    Оператор «Или»: |

    Это вывело бы число 11. Почему?

    Вы заметите, что у нас установлено 3 бита в столбцах 8, 2 и 1. Сложите их: 8 + 2 + 1 = 11.

    Символ подчеркивания ‘_’, как в _() это псевдоним gettext() функция.

    Добавлено в PHP 7

    оператор космического корабля это последний оператор сравнения, добавленный в PHP 7. Это неассоциативным бинарный оператор с тем же приоритетом, что и операторы равенства ( == , != , === , !== ). Этот оператор позволяет упростить трехстороннее сравнение между левым и правым операндами.

    Оператор приводит к целочисленному выражению:

    • 0 когда оба операнда равны
    • Меньше, чем 0 когда левый операнд меньше правого операнда
    • Лучше чем 0 когда левый операнд больше правого операнда

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


    До PHP 7 вы писали бы …

    Начиная с PHP 7 вы можете написать …

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

    __LINE__ : Текущий номер строки файла.

    __FILE__ : Полный путь и имя файла. Если используется внутри включения, возвращается имя включенного файла. Начиная с PHP 4.0.2, __FILE__ всегда содержит абсолютный путь с разрешенными символическими ссылками, тогда как в более старых версиях он содержал относительный путь при некоторых обстоятельствах.

    __DIR__ : Каталог файла. Если используется внутри включения, возвращается каталог включенного файла. Это эквивалентно dirname(__FILE__) , Это имя каталога не имеет косой черты, если только оно не является корневым каталогом. (Добавлено в PHP 5.3.0.)

    __FUNCTION__ : Имя функции. (Добавлено в PHP 4.3.0) Начиная с PHP 5, эта константа возвращает имя функции в том виде, в котором она была объявлена ​​(с учетом регистра). В PHP 4 его значение всегда в нижнем регистре.

    __CLASS__ : Имя класса. (Добавлено в PHP 4.3.0) Начиная с PHP 5 эта константа возвращает имя класса в том виде, в котором оно было объявлено (с учетом регистра). В PHP 4 его значение всегда в нижнем регистре. Имя класса включает пространство имен, в котором оно было объявлено (например, Foo\Bar ). Обратите внимание, что начиная с PHP 5.4 __CLASS__ работает также в чертах. При использовании в методе черт, __CLASS__ Имя класса, в котором используется черта.

    __TRAIT__ : Имя черты. (Добавлено в PHP 5.4.0) Начиная с PHP 5.4, эта константа возвращает признак в том виде, в котором он был объявлен (с учетом регистра). Имя признака включает пространство имен, в котором оно было объявлено (например, Foo\Bar ).

    __METHOD__ : Имя метода класса. (Добавлено в PHP 5.0.0) Имя метода возвращается в том виде, в котором оно было объявлено (с учетом регистра).

    __NAMESPACE__ : Имя текущего пространства имен (с учетом регистра). Эта константа определяется во время компиляции (добавлено в PHP 5.3.0).

    instanceof используется для определения того, является ли переменная PHP экземпляром объекта определенного класса.

    Приведенный выше пример выведет:

    Причина: Пример выше $a является объектом mclass так что используйте только mclass данные не экземпляр с sclass

    Пример с наследованием

    Приведенный выше пример выведет:

    Пример с клоном

    Приведенный выше пример выведет:

    Логические операторы:

    • $ а && $ b: TRUE, если $ a и $ b равны TRUE.
    • $ a || $ b: ИСТИНА, если $ a или $ b — ИСТИНА.
    • $ a xor $ b: TRUE, если $ a или $ b TRUE, но не оба.
    • ! $ a: TRUE, если $ a не TRUE.
    • $ a и $ b: TRUE, если $ a и $ b равны TRUE.
    • $ a или $ b: ИСТИНА, если $ a или $ b — ИСТИНА.

    Операторы сравнения:

    • $ a == $ b: TRUE, если $ a равно $ b после жонглирования типа.
    • $ a === $ b: TRUE, если $ a равно $ b, и они одного типа.
    • $ a! = $ b: TRUE, если $ a не равно $ b после жонглирования типа.
    • $ а <> $ b: TRUE, если $ a не равно $ b после жонглирования типа.
    • $ a! == $ b: TRUE, если $ a не равно $ b или они не одного типа.
    • $ а $ b : ИСТИНА, если $ a строго больше, чем $ b.
    • $ а = $ b : ИСТИНА, если $ a больше или равно $ b.
    • $ а $ b : Целое число меньше, равно или больше нуля, когда $ a соответственно меньше, равно или больше, чем $ b. Доступно с PHP 7.
    • $ a? $ b: $ c : если $ a вернуть $ b, иначе вернуть $ c (троичный оператор)
    • $ a ?? $ с : Так же, как $ a? $ a: $ c (нулевой оператор объединения — требует PHP> = 7)

    Арифметические операторы:

    • -$ а : Напротив $ a.
    • $ a + $ b : Сумма $ a и $ b.

    • $ a — $ b : Разница между $ a и $ b.
    • $ a * $ b : Произведение $ a и $ b.
    • $ a / $ b : Частное от $ a и $ b.
    • $ a% $ b : Остаток от $ a, деленный на $ b.
    • $ a ** $ b : Результат повышения $ a до $ b’th power (введено в PHP 5.6)

    Операторы увеличения / уменьшения:

    • ++$ а : Увеличивает $ a на единицу, а затем возвращает $ a.
    • $ А ++ : Возвращает $ a, затем увеличивает $ a на единицу.
    • —$ а : Уменьшает $ a на единицу, затем возвращает $ a.
    • $ a— : Возвращает $ a, затем уменьшает $ a на единицу.

    Битовые операторы:

    • $ а & $ б : Биты, которые установлены как в $ a, так и в $ b, установлены.
    • $ a | $ б : Биты, которые установлены в $ a или $ b, установлены.
    • $ a ^ $ b : Биты, которые установлены в $ a или $ b, но не оба установлены.

    $ a : Биты, которые установлены в $ a, не установлены, и наоборот.

  • $ а > $ b : Сдвиньте биты шагов $ a $ b вправо (каждый шаг означает «делить на два»)
  • Строковые операторы:

    • $ a. $ б : Объединение $ a и $ b.

    Операторы массива:

    • $ a + $ b : Объединение $ a и $ b.
    • $ a == $ b : TRUE, если $ a и $ b имеют одинаковые пары ключ / значение.
    • $ a === $ b : TRUE, если $ a и $ b имеют одинаковые пары ключ / значение в одном и том же порядке и одинаковых типов.
    • $ a! = $ b : ИСТИНА, если $ a не равно $ b.
    • $ а <> $ b : ИСТИНА, если $ a не равно $ b.
    • $ a! == $ b : ИСТИНА, если $ a не совпадает с $ b.

    Операторы присваивания:

    • $ a = $ b : Значение $ b присваивается $ a
    • $ a + = $ b : То же, что $ a = $ a + $ b
    • $ a — = $ b : То же, что $ a = $ a — $ b
    • $ a * = $ b : То же, что $ a = $ a * $ b
    • $ a / = $ b : То же, что $ a = $ a / $ b

    • $ a% = $ b : То же, что $ a = $ a% $ b
    • $ a ** = $ b : То же, что $ a = $ a ** $ b
    • $ a. = $ b : То же, что $ a = $ a. $ б
    • $ а &= $ b : То же, что $ a = $ a & $ б
    • $ a | = $ b : То же, что $ a = $ a | $ б
    • $ a ^ = $ b : То же, что $ a = $ a ^ $ b
    • $ а > = $ b : То же, что $ a = $ a >> $ b

    Заметка

    and оператор и or оператор имеет более низкий приоритет, чем оператор присваивания = ,

    Это означает, что $a = true and false; эквивалентно ($a = true) and false ,

    В большинстве случаев вы, вероятно, захотите использовать && а также || , которые ведут себя так, как известно из языков, таких как C, Java или JavaScript.

    ГЛАВА 1 Знакомство с PHP

    Последние пять лет ознаменовались фантастическим развитием Интернета и новых способов общения между людьми. На переднем крае этого явления находится World Wide Web (WWW). Ежедневно в этой новой коммуникационной среде открываются тысячи новых сайтов, а потребителям предлагаются новые виды услуг. Вместе с бурным развитием рынка появился огромный спрос на новые технологии и разработчиков, владеющих ими. Если вы читаете этот абзац, вероятно, вы уже являетесь или скоро станете web-разработчиком. Впрочем, какой бы ни была ваша профессия, вы выбрали эту книгу потому, что слышали о замечательной новой технологии — PHP.

    В этой главе вы познакомитесь с языком PHP, получите представление о его истории и возможностях, а также основную информацию, необходимую для разработки сайтов с поддержкой PHP. Надеюсь, приведенные примеры пробудят ваш энтузиазм и наглядно покажут, какие перспективы PHP открывает перед вами и вашей организацией. Вы узнаете, как установить и настроить программное обеспечение PHP на компьютерах с Linux/UNIX или Windows и как внедрить PHP в HTML. К концу главы вы будете готовы к тому, чтобы углубленно заняться изучением других важных аспектов языка PHP. Итак, зажигайте свет, включайте свою любимую музыку и устраивайтесь поудобнее. Пришла пора познакомиться с тем, что станет одним из важнейших пунктов в вашем резюме, — с программированием на PHP.

    Краткая история

    История PHP начинается с 1995 года, когда независимый программист-контрактник по имени Расмус Лердорф (Rasmus Lerdorf) написал сценарий Perl/CGI для подсчета количества посетителей сайта, прочитавших его онлайновое резюме. Его сценарий решал две задачи: регистрацию данных посетителя и вывод количества посетителей на web-странице. Развитие WWW еще только начиналось, никаких специальных средств для решения этих задач не было, и к автору хлынул поток сообщений с вопросами. Лердорф начал бесплатно раздавать свой инструментарий, названный Personal Home Page (PHP) или Hypertext Processor (гипертекстовый процессор).

    Шумный успех инструментария PHP заставил Лердорфа приступить к разработке расширений PHP. Одно из расширений преобразовывало данные, введенные на форме HTML, в символические переменные, что позволяло экспортировать их в другие системы. Чтобы добиться поставленной цели, Лердорф решил в дальнейших разработках перейти с Perl на С. Расширение существующего инструментария PHP привело к появлению PHP 2.0, или PHP-FI (Personal Home Page — Form Interpretator). В усовершенствовании версии 2.0 принимали участие программисты со всего мира.

    Новая версия PHP пользовалась исключительной популярностью, и вскоре образовалась основная команда разработчиков. Они сохранили исходную концепцию внедрения программного кода прямо в HTML и переписали заново механизм лексического анализа, что привело к появлению PHP 3.0. К моменту выхода версии 3.0 в 1997 году свыше 50 000 пользователей применяли PHP для улучшения своих web-страниц.

    В 1997 году было решено, что сокращение PHP должно означать не «Personal Home page», а «PHP Hypertext Processor»

    В течение следующих двух лет стремительное развитие PHP продолжалось. В язык добавлялись сотни новых функций, а количество пользователей стремительно росло. В начале 1999 года служба Netcraft (http://www.netcraft.com) сообщила о том, что, по минимальным оценкам, число пользователей PHP превысило 1 000 000, в результате чего PHP стал одним из самых популярных сценарных языков в мире.

    В начале 1999 года было объявлено о предстоящем выходе PHP 4.0. Хотя одной из сильнейших сторон PHP была эффективность выполнения сценариев, при первоначальных разработках не предполагалось, что на базе PHP будут строиться крупномасштабные приложения. По этой причине была начата работа над более устойчивым механизмом лексического анализа, больше известным под названием Zend (http://www.zend.com). Работа шла быстро и завершилась 22 мая 2000 года выпуском PHP версии 4.0.

    Кроме лексического анализатора Zend, компания Zend Technologies (Израиль) распространяет оптимизатор Zend, который повышает выигрыш в быстродействии от применения лексического анализатора Zend. Тесты показывают, что ускорение работы программы в результате использования оптимизатора составляет от 40 до 100 %. За дополнительной информацией обращайтесь на сайт Zend.

    На момент написания этой книги, по данным Netcraft (http://www.netcraft.com), программное обеспечение PHP было установлено более чем в 3,6 миллиона доменов. Будущее PHP выглядит светлым, поскольку продукт продолжает активно использоваться как на крупных web-сайтах, так и на компьютерах отдельных пользователей.

    PHP лучше всего охарактеризовать как работающий на стороне сервера встроенный язык сценариев Web, позволяющий разработчикам быстро и эффективно строить динамические web-приложения. С позиций грамматики и синтаксиса PHP напоминает язык программирования С, хотя разработчики не постеснялись включить в него средства из других языков, в том числе из Perl, Java и C++. Среди ценных заимствованных возможностей — поддержка регулярных выражений, мощные средства работы с массивами, объектно-ориентированная методология и обширная поддержка работы с базами данных.

    При написании приложений, выходящих за рамки традиционной, статической методологии разработки web-страниц (то есть HTML), PHP также может послужить ценным инструментом для создания и управления динамическим содержанием, который используется наряду с JavaScript, стилями, WML (Wireless Markup Language) и другими полезными языками. Благодаря наличию сотен стандартных функций PHP в состоянии решить практически любую задачу, которая может придти в голову разработчику. В нем имеется обширная поддержка создания графики и операций с ней, математических вычислений, средств электронной коммерции и таких популярных технологий, как XML (Extensible Markup Language), ODBC (Open Database Connectivity) и Macromedia Shockwave. Широкий выбор возможностей избавляет от необходимости рутинной и непростой работы по подключению сторонних модулей, поэтому многие разработчики со всего мира останавливают свой выбор на PHP.

    Одним из главных достоинств PHP является тот факт, что он внедряется прямо в HTML-код, поэтому программисту не приходится писать программу с множеством команд для простого вывода HTML. Код HTML и PHP можно чередовать по мере необходимости. PHP позволяет написать фрагмент следующего вида:

    Сообщение «Hello world!» выводится в заголовке web-страницы. Интересно то, что команда print внутри конструкции, которая обычно называется экранирующими последовательностями PHP ( ), представляет собой законченную программу. Ни длинного кода инициализации, ни включения библиотек — программа состоит лишь из того кода, который непосредственно решает поставленную задачу!

    Конечно, для выполнения сценариев PHP необходимо предварительно установить и настроить программное обеспечение PHP на сервере. Этот процесс описан в разделе «Загрузка и установка PHP/Apache» настоящей главы. Разделу предшествуют фрагменты из отзывов нескольких пользователей, выступающих в пользу PHP, с кратким обзором языка и его истории. Но прежде чем браться за процесс установки, мы познакомимся с некоторыми характеристиками PHP. Этой теме посвящен следующий раздел.

    Характеристики PHP

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

    • традиционностью;
    • простотой;
    • эффективностью;
    • безопасностью;
    • гибкостью.

    Существует еще одна «характеристика», которая делает PHP особенно привлекательным: он распространяется бесплатно!

    Традиционность

    Язык PHP кажется знакомым программистам, работающим в разных областях. Многие конструкции языка позаимствованы из Си Perl, а нередко код PHP практически неотличим от того, что встречается в типичных программах С или Pascal. Это заметно снижает начальные усилия при изучении PHP.

    Простота

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

    Эффективность

    Эффективность является исключительно важным фактором при программировании для многопользовательских сред, к числу которых относится и WWW. В PHP 4.0 был реализован механизм выделения ресурсов и обеспечена улучшенная поддержка объектно-ориентированного программирования, а также средства управления сеансом. В последней версии появился и механизм подсчета ссылок (reference counting), предотвращающий выделение лишней памяти.

    Безопасность

    PHP предоставляет в распоряжение разработчиков и администраторов гибкие и эффективные средства безопасности, которые условно делятся на две категории: средства системного уровня и средства уровня приложения.

    Средства безопасности системного уровня


    В PHP реализованы механизмы безопасности, находящиеся под управлением администраторов; при правильной настройке PHP это обеспечивает максимальную свободу действий и безопасность. PHP может работать в так называемом безопасном режиме (safe mode), который ограничивает возможности применения PHP пользователями по ряду важных показателей. Например, можно ограничить максимальное время выполнения и использование памяти (неконтролируемый расход памяти отрицательно влияет на быстродействие сервера). По аналогии с cgi-bin администратор также может устанавливать ограничения на каталоги, в которых пользователь может просматривать и исполнять сценарии PHP, а также использовать сценарии PHP для просмотра конфиденциальной информации на сервере (например, файла passwd).

    Средства безопасности уровня приложения

    В стандартный набор функций PHP входит ряд надежных механизмов шифрования. PHP также совместим с многими приложениями независимых фирм, что позволяет легко интегрировать его с защищенными технологиями электронной коммерции (e-commerce). Другое преимущество заключается в том, что исходный текст сценариев PHP нельзя просмотреть в браузере, поскольку сценарий компилируется до его отправки по запросу пользователя. Реализация PHP на стороне сервера предотвращает похищение нетривиальных сценариев пользователями, знаний которых хватает хотя бы для выполнения команды View Source.

    Тема безопасности настолько важна, что ей посвящена целая глава. За подробной информацией о средствах безопасности PHP обращайтесь к главе 16.

    Гибкость

    Поскольку PHP является встраиваемым (embedded) языком, он отличается исключительной гибкостью по отношению к потребностям разработчика. Хотя PHP обычно рекомендуется использовать в сочетании с HTML, он с таким же успехом интегрируется и в JavaScript, WML, XML и другие языки. Кроме того, хорошо структурированные приложения PHP легко расширяются по мере необходимости (впрочем, это относится ко всем основным языкам программирования).

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

    Поскольку PHP не содержит кода, ориентированного на конкретный web-сервер, пользователи не ограничиваются определенными серверами (возможно, незнакомыми для них). Apache, Microsoft IIS, Netscape Enterprise Server, Stronghold и Zeus — PHP работает на всех перечисленных серверах. Поскольку эти серверы работают на разных платформах, PHP в целом является платформенно-незави-симым языком и существует на таких платформах, как UNIX, Solaris, FreeBSD и Windows 95/98/NT.

    Наконец, средства PHP позволяют программисту работать с внешними компонентами, такими как Enterprise Java Beans или СОМ-объекты Win32. Благодаря

    этим новым возможностям PHP занимает достойное место среди современных технологий и обеспечивает масштабирование проектов до необходимых пределов.

    Бесплатное распространение

    Стратегия Open Source наделала немало шуму в программной отрасли. Распространение исходных текстов программ в массах оказало несомненно благотворное влияние на многие проекты, в первую очередь — Linux, хотя и успех проекта Apache сильно подкрепил позиции сторонников Open Source. Сказанное относится и к истории создания PHP, поскольку поддержка пользователей со всего мира оказалась очень важным фактором в развитии проекта PHP.

    Принятие стратегии Open Source и бесплатное распространение исходных текстов PHP оказало неоценимую услугу пользователям. Вдобавок, отзывчивое сообщество пользователей PHP является своего рода «коллективной службой поддержки», и в популярных электронных конференциях можно найти ответы даже на самые сложные вопросы.

    В следующем разделе «Рекомендации пользователей» приведены свидетельства трех видных профессионалов в области web-разработок. Из них становится ясно, почему они считают PHP такой замечательной технологией.

    Рекомендации пользователей

    «Мы в течение долгого времени поддерживали личные контакты с некоторыми разработчиками PHP и вели с ними обширную переписку. Когда у разработчиков PHP возникали какие-то проблемы, относящиеся к MySQL, мы всегда были готовы помочь им в поиске решения. Кроме того, мы включили в MySQL несколько новых возможностей лишь для того, чтобы улучшить его интеграцию с PHP. Результатом наших усилий стало то, что MySQL превосходно работает с PHP, — и мы позаботимся о том, чтобы это положение сохранилось и в будущем!»

    Майкл «Монти» Видениус (Michael «Monty» Widenius),

    «Выбор PHP для реализации mp3.lycos.com был обусловлен несколькими причинами. Главной причиной стали сжатые сроки работы над проектом — ведь PHP ускоряет процесс разработки. Другой причиной была высокая эффективность — мы перешли от 0 к 1,4 миллиона посещений в сутки, и PHP с этим прекрасно справился. Третья причина заключалась в том, что я твердо знал: если на стадии тестирования с повышенной нагрузкой в PHP обнаружатся какие-либо ошибки, я смогу их самостоятельно исправить, поскольку PHP распространяется вместе с исходными текстами».

    Стиг Баккен (Stig Bakken),

    FAST Search & Transfer ASA

    «Я использовал PHP с первых дней, еще с версии PHP/FI 1.x. Мне понравилось, что я могу обрабатывать формы и настраивать страницы «на ходу» при помощи такого простого языка. Вместе с потребностями моей компании развивался и PHP.

    В наши дни PHP обладает исключительно богатыми возможностями. Мы используем его практически во всех создаваемых web-сайтах, включая 32bit.com и DevShed.com. Мы даже воспользовались им в Info West для реализации службы поддержки, управления учетными записями и отслеживания портов.

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

    Рэнди Косби (Randy Cosby),

    президент nGenuity, Inc. DevShed

    Вводный пример

    Пример, приведенный в листинге 1.1, наглядно показывает, как легко PHP интегрируется с HTML-кодом.

    Листинг 1.1. Создание динамической страницы PHP

    PHP – как перевести веб-сайт на несколько языков?

    У меня есть веб-сайт, который в настоящее время находится на английском языке; Я хочу иметь возможность переключаться на другой язык, когда пользователь нажимает на другой язык (на сайте есть небольшие значки флагов страны). То, как я сейчас пытаюсь, это массивы, например:

    Как вы можете видеть, если бы я сделал это для каждой отдельной страницы на отдельном языке, это было бы безумным количеством кода. Какой еще метод я могу попробовать?

    Учитывая, что вы ищете полную поддержку i18n, которая в конечном итоге приведет к поддержке l10n, я бы предложил написать вашу страницу в фреймворке, который поддерживает эти вещи из коробки.

    Лично я только делал переводы с помощью системы Symfony. Они используют комбинацию расширения таблицы i18n в БД для контента и XLIFF-файлы для перевода интерфейса. Он был достаточно прозрачным после его установки, и использование фреймворка позволяет избежать необходимости писать всю эту поддержку вручную.

    Я также знаю, что i18n поддерживается в Zend, CakePHP и Code Igniter.

    • Контентная база данных (или файл, я думаю)
    • Запись на страницу для каждого языка
    • Язык, на который ссылается идентификатор
    • Идентификатор, установленный в переменной $ _SESSION
    • Необязательно запоминается в cookie для последующих посещений

    Я использовал эту систему с пользовательским CMS @ http://www.grandhall.eu . Это особенно интересно, когда вам нужно принимать во внимание такие вещи, как брошюры и другие загрузки.

    Я бы предложил подключить ваш сайт к API Windows Live или API Google Translate. Я не знаю о Google, но API Windows Live кажется очень простым в использовании.

    Это, или вы можете выписать весь контент на странице на двух языках, сохранить их как в разных таблицах в базе данных «контент», а затем изменить, какая таблица загружается, когда пользователь нажимает кнопку смены языка. Теперь большая часть вашей тяжелой работы будет заключаться в переписывании контента на обоих языках.

    Вы можете просто использовать Google translate api:

    Он содержит множество документации, и есть примеры того, как использовать его на игровой площадке Google.

    PHP: Приведение типов

    Приведение типа — это преобразование значения одного типа в значение другого типа.

    Есть два вида приведения типов:

    Неявное приведение типа выполняется интерпретатором автоматически, без непосредственного участия программиста. Например, значение будет автоматически преобразовано, если оператор ожидает, числовые операнды:

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

    Запись имени типа в круглых скобках называется оператором приведения типа. Допускаются следующие операторы приведения типов:

    • (int), (integer) — приведение к integer .
    • (bool), (boolean) — приведение к boolean .
    • (float), (double), (real) — приведение к float .
    • (string) — приведение к string .
    • (array) — приведение к array .
    • (object) — приведение к object .
    • (unset) — приведение к NULL .

    Приведение к целому числу

    При приведении bool в integer , FALSE преобразуется в 0 (нуль), а TRUE — в 1 (единицу). При приведении float в integer , дробная часть будет округлена в сторону нуля. Значение NULL преобразуется в 0:

    Строки преобразуются по следующим правилам:

    • Если первый символ строки является цифрой, знаком + или — , то интерпретатор переходит к анализу второго символа, если второй символ строки является цифрой, то интерпретатор переходит к анализу третьего символа и так до тех пор, пока не будет обнаружен символ отличный от цифры, после этого интерпретатор возвращает полученное целое число.
    • Если строка пустая или первый символ строки не является цифрой, знаком + или — , она преобразуется в 0.

    Для других типов поведение преобразования в integer не определено. Поэтому не нужно полагаться на любое наблюдаемое поведение, так как оно может измениться без предупреждения.

    Приведение к числу с плавающей точкой

    Строки преобразуются по следующим правилам:

    • Если первый символ строки является цифрой, точкой, знаком + или — , то интерпретатор переходит к анализу второго символа, если второй символ строки является цифрой, точкой (если перед этим была цифра), буквой e или E (если перед этим была цифра или точка), то интерпретатор переходит к анализу третьего символа и так до тех пор, пока не будет обнаружен символ, который не может быть преобразован в числовое значение, после этого интерпретатор возвращает полученное число с плавающей точкой.
    • Если строка пустая или первый символ строки не является цифрой, точкой, знаком + или — , она преобразуется в 0.

    Значения других типов сначала преобразуются в integer , а затем уже из integer происходит преобразование в тип float .

    Приведение к булеву типу

    Следующие значения в результате преобразования дают значение FALSE :

    • само значение FALSE
    • 0 и 0.0 (нуль)
    • пустая строка, и строка «0»
    • массив без элементов
    • NULL
    • Объекты SimpleXML , созданные из пустых тегов

    Все остальные значения при преобразовании дают в результате значение TRUE . Значение FALSE и шесть значений, которые при преобразовании приводятся к этому значению, обычно называют ложными значениями, а все остальные — истинными:

    В любом контексте, когда интерпретатор PHP ожидает получить булево значение, ложные значения интерпретируются как FALSE , а истинные значения — как TRUE .

    Приведение к строке

    Булево значение TRUE преобразуется в строку «1», а значение FALSE преобразуется в «» (пустую строку):

    Целое число или число с плавающей точкой преобразуется в строку, состоящую из цифр числа:

    Массивы всегда преобразуются в строку «Array» :

    NULL всегда преобразуется в пустую строку:

    Resource всегда преобразуется в строку вида «Resource id #1» .

    Для преобразования объекта в строку, объект должен иметь метод __toString() :

    Если объект не имеет метод __toString() , то в результате преобразования будет вызвана фатальная ошибка:

    Приведение к NULL

    Приведение к типу NULL не удаляет переменную и её значение, а лишь возвращает значение типа NULL :

    PHP: Транслит русских слов в английские и обратно

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

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

    Ниже примеры используемых мной функций:

    Из Русского в Латиницу

    Обратно — из Латиницы в Русский язык

    или такой вариант

    Согласно ГОСТам:

    Для генерации логина лучше использовать эту функцию:

    В соответствии с ГОСТ 7.79-2000 схема Б:

    В соответствии с ISO 9 – 1995:

    PHPTIME

    Прямой эфир

    adogay 9 января 2020, 13:49

    pechen 5 декабря 2020, 06:39

    clod 2 февраля 2020, 18:28

    isudakoff 19 марта 2020, 07:55

    pantsarny 23 апреля 2015, 10:40

    Adik88 10 марта 2015, 19:43

    JudKavel 2 февраля 2015, 23:11

    rmrevin 4 декабря 2014, 20:55

    Grover 13 октября 2014, 16:48

    amor_amore 15 сентября 2014, 13:59

    rmrevin 3 сентября 2014, 13:51

    Adik88 2 сентября 2014, 13:13

    rmrevin 2 сентября 2014, 13:12

    rmrevin 16 июня 2014, 19:27

    hui_nana 28 мая 2014, 13:33

    Grover 26 мая 2014, 11:42

    Grover 26 мая 2014, 11:41

    hui_nana 23 мая 2014, 10:26

    Принцип открытости/закрытости

    Должен признаться, когда впервые увидел академическое определение принципа открытости/закрытости, его смысл был для меня удивительно ясен. Я отбросил из определения весь технический жаргон, и принцип читался как заклинание, которое мы слышали раньше много раз: «Не ломай ядро».
    Ну, правда, здесь существует некоторая двусмысленность высказывания, так как есть по крайней мере два общих подхода к поддержанию «ядра» в полной сохранности, позволяющие аккуратно расширять его функциональные возможности. Первый подход (вот почему я использовал намеренно термин «расширение») — Наследование. Наследование является, пожалуй, самым переоцененным приемом для повторной реализации. Такой процесс легко осуществим, но здесь существует определенный риск разрушить хрупкую иерархию моделей. Второй подход называется Композиция. Подход не так прост, как наследование, но это тоже довольно аккуратный способ расширить программный модуль, не меняя его.

    Php в переводе принимали участие

    принимать участие — См. заботиться, покровительствовать … Словарь синонимов

    Принимать участие — в ком. ПРИНЯТЬ УЧАСТИЕ в ком. Устар. Проявлять внимание к кому либо, сочувствуя, помогая ему. Она очень добрая, принимает в вас участие и в силах вам помочь, как никто другой (Лесков. Шерламур) … Фразеологический словарь русского литературного языка

    принимать участие — Syn: участвовать … Тезаурус русской деловой лексики

    нежелание принимать участие — сущ., кол во синонимов: 2 • лес рук (1) • неучастие (5) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов

    заставлявший принимать участие — прил., кол во синонимов: 1 • припрягавший (8) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов

    побуждавший принимать участие — прил., кол во синонимов: 2 • вовлекавший (21) • привлекавший (56) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов

    УЧАСТИЕ — Старославянизмы не только вступали в полные или частичные омонимические соотношения с восточнославянскими словами, но и часто составляли с ними сложные пересекающиеся сферы сл овообразовательных различий и вместе с тем параллельных синонимических … История слов

    ПРИНИМАТЬ — Принимать во сне какое то важное решение означает, что впереди вас ждет переломный момент в вашей жизни и от того, как вы себя проявите, во многом будет зависеть ваша дальнейшая судьба. Принимать во сне ванну предвещает вам большие… … Сонник Мельникова

    участие — См. покровительство принимать участие, принимающий участие. Словарь русских синонимов и сходных по смыслу выражений. под. ред. Н. Абрамова, М.: Русские словари, 1999. участие интерес, забота, беспокойство, сочувствие; причастность, отношение,… … Словарь синонимов

    принимать — доклад принять • действие, получатель закон принять • реализация, согласие меры принимать • реализация меры принять • реализация предложение принять • реализация, согласие приглашение принять • действие, получатель, реализация, согласие принимать … Глагольной сочетаемости непредметных имён

    участие — предусматривать участие • необходимость, модальность принимать активное участие • действие принимать большое участие • действие принимать деятельное участие • действие принимать живейшее участие • действие принимать живое участие • действие… … Глагольной сочетаемости непредметных имён

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