php — вопросы с ответами

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

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

PHP-код хорошо организован и может быть легко встроен в HTML-код. Он работает во всех популярных операционных системах, таких как Windows, Mac OS, Unix, Linux, и поддерживает основные веб-серверы и серверы предприятий (Apache, Netscape, Microsoft и т. д.). Кроме того, в PHP легче устранять проблемы по сравнению с другими языками.

Эволюция языка

PHP был создан Расмусом Лердорфом в 1994 году и был публично выпущен в июне 1995 года. Тогда это была урезанная форма инструментов Personal Home Page. Через два года, в 1997 году, он увидел свет под названием PHP/F1 2.0. Год спустя два программиста, Зеев Сураски и Энди Гутманс, переписали базу оригинальной версии и запустили PHP 3.

PHP 4, выпущенный в 2000 году, включал в себя скриптовый движок Zend Engine, разработанный Сураски и Гутмансом. В последующие годы были выпущены еще три основные версии с некоторыми под-версиями, а последняя версия 7.0 была выпущена в 2015 году.

Спустя два десятилетия после своего появления, PHP показывает феноменальный рост популярности, а сам язык все еще продолжает развиваться. Сегодня он контролирует более 80% всех сайтов в мире. Включая таких гигантов, как Facebook, Wikipedia и WordPress.

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

Это интересно: PHP используется на 82,3% всех веб-сайтов, чей язык программирования на стороне сервера мы можем узнать. Существует более 20 миллионов веб-сайтов, разработанных с использованием PHP, что говорит об огромном влиянии этого языка на всю индустрию и, в частности, на мир программирования.

Особенности работы с PHP

PHP – один из самых любимых языков программирования фрилансеров по всему миру. Это связано с тем, что малые предприятия (или люди, не связанные с высокими технологиями) предпочитают использовать WordPress, Wix и другие популярные системы управления контентом для настройки своих веб-сайтов и корзин покупок.

PHP был разработан для интернета, и он хорошо справляется со своей задачей. Даже компания Facebook сделала серьезные инвестиции в PHP.

Дружелюбие к новичкам

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

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

Гибкость

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

Сложности с обслуживанием

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

Проблемы со скоростью обработки

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

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

Преимущества языка

  • Открытый исходный код. Техническое сообщество сильно увлекается PHP именно потому, что это свободная птица. Это проект с открытым исходным кодом, дающий всем возможность сотрудничать и работать над этим. Он разработан и поддерживается большой группой разработчиков PHP, что значительно облегчает поддержку и создание богатых библиотек расширений;
  • Эффективность. PHP может быть не самым быстрым языком программирования, но он уж точно не самый медленный. За что и высоко ценится во всем мире, и его используют разработчики, которые работают над самыми сложными проектами. Поскольку скорость является критической частью, она использует много системных ресурсов. Благодаря чему разработчики PHP могут работать быстрее и завершать свою работу вовремя;
  • Прост в освоении. Большинство разработчиков достаточно знакомы с языком C, ведь этот язык является основанием всех развивающихся языков. PHP использует синтаксис C Like, что делает его удобным для программиста, технического специалиста и сообщества в целом. Его легко освоить и затем создавать сценарии веб-сайта;
  • Деньги говорят сами за себя. PHP также предпочтительнее, потому что это экономически эффективный вариант, способный работать как на Linux, так и на серверах Windows. Еще одна хорошая вещь в PHP – это то, что он способен работать как на Linux, так и на серверах Windows. Когда речь заходит о рентабельных решениях, многие люди предпочитают использовать серверы Linux, так как они имеют нулевую плату за лицензирование, требуемую для связи с серверами. Таким образом, многие агентства предпочитают использовать его для своего развития;
  • Обработка интенсивного трафика. PHP может использоваться практически для всего, что вы можете делать со всеми другими языками веб-сценариев. Текущая версия PHP очень надежна, что дает вам возможность использовать любой язык, который, по вашему мнению, подойдет лучше всего. Последняя версия PHP имеет расширенные функции, делающие язык еще более надежным и полезным для использования в веб-программировании.

5 советов начинающим разработчикам PHP

  1. Осознайте свой проект. Мастер не может нарисовать то, чего не видел раньше. Вокалист не может спеть мелодию, которую он не слышал ранее. Вы не можете написать задачу, которую вы не смогли полностью осознать. Если вы не понимаете, что именно нужно делать и как это нужно, вы точно потратите свое время впустую.
  2. Используйте Фреймворки. Они помогут вам решать утомительные задачи, хотя для этого вам придется сначала изучить, как они функционируют. Это единственный реальный компромисс для упрощения некоторых видов работы.. Кроме того, у вас будет меньше шансов написать плохой код, если кто-то другой уже написал большую его часть за вас.
  3. Используйте встроенные в PHP функции. Вы хотите посчитать количество ключей в массиве? Можно перебирать массив и просто увеличивать значение для каждой итерации, верно? Или, с другой стороны, вы можете просто использовать неочевидную PHP-функцию tally (), которая занимается именно тем, что облегчает вам жизнь. В PHP есть много встроенных функций, для их изучения можно воспользоваться руководством.
  4. Защищайте свою базу данных. Лучший способ для этого – использовать mysql_real_escape_string () для каждой базы данных перед ее добавлением. Данная функция делает все строки безопасными с точки зрения кавычек и других функций, которые наносят вред вашей базе данных или содержат вредоносный код. Еще одна вещь, которую вы можете сделать, это подтвердить все строки GET и POST, не использовать $ _REQUEST, убедиться, что все отправленные данные имеют правильный тип и значение, прежде чем добавлять их в запрос к базе данных. Что еще вы можете сделать, так это одобрить все строки POST и GET, никогда не использовать $ _REQUEST и убедиться, что вся предоставленная информация о форме имеет правильный вид и значение перед добавлением ее в запрос к базе данных.
  5. Используйте объектно-ориентированное программирование. ООП прост, быстр и несложен в отладке, использует меньше кода, меньше ресурсов сервера, ускоряет загрузку и более логичен в работе, как только вы выясните его основные принципы. ООП – это техника для программирования с использованием объектов или классов, которые соединяют вещи, исключают необходимость повторения кода и разыгрывают основные задания программы. Объекты – это классы, которые собирают вместе несколько функций и помещают их в оболочку, которую можно использовать снова и снова без необходимости изменять полезность или систему каждый раз, когда вам нужно что-то выполнить.

Будущее

Популярность PHP немного упала из-за небольших проблем с дизайном языка, а также с появлением Ruby on Rails и платформы Node.js. Впрочем, недавно выпущенный PHP 7 избавился от большинства проблем, в которых он обвинялся (несогласованность, медлительность и т. д.). Facebook вложил огромные средства в PHP, что, вероятно, сохранит его актуальность, поэтому было бы интересно посмотреть, как все это скажется на популярности PHP в будущем. Laravel, PHP-фреймворк, похоже, поддерживает здоровый уровень интереса со стороны разработчиков.

15 ответов
Каковы технические причины того, почему нельзя использовать функции mysql_*? (например, mysql_query(), mysql_connect() или mysql_real_escape_string())? Почему я должен использовать что-то еще, даже если они работают на моем сайте? Если они не работают на моем сайте, почему я получаю такие ошибки, ка...
database
12 окт. 2012, в 12:33
7 ответов
Позвольте мне префикс этого, сказав, что я знаю, что foreach есть, и как его использовать. Этот вопрос касается того, как он работает под капотом, и мне не нужны ответы по строкам "это то, как вы зацикливаете массив с помощью foreach". Долгое время я предполагал, что foreach работал с самим массивом...
loops
foreach
iteration
php-internals
07 апр. 2012, в 19:12
9 ответов
Время от времени я слышу совет "Использовать bcrypt для хранения паролей в PHP, правила bcrypt". Но что такое bcrypt? PHP не предлагает таких функций, Wikipedia болтает о утилите шифрования файлов и веб-поиске, просто раскрывает несколько реализаций Blowfish в разных языки. Теперь Blowfish также дос...
cryptography
passwords
bcrypt
password-protection
25 янв. 2011, в 13:51
39 ответов
Рассмотрим: $a = 'How are you?'; if ($a contains 'are') echo 'true'; Предположим, что у меня есть код выше, каков правильный способ написать оператор if ($a contains 'are')?
string
contains
substring
string-matching
06 дек. 2010, в 13:28
19 ответов
Что это? Это набор вопросов, которые время от времени возникают о синтаксисе в PHP. Это также Вики сообщества, поэтому все желающие могут принять участие в ведении этого списка. Почему это? Раньше было сложно найти вопросы об операторах и других синтаксических токенах. Основная идея состоит в т...
operators
symbols
php-5.3
17 сен. 2010, в 18:22
29 ответов
Как можно разобрать HTML/XML и извлечь из него информацию?
xml-parsing
parsing
html-parsing
26 авг. 2010, в 18:44
25 ответов
Если у меня есть URL-адрес видео YouTube, есть ли способ использовать PHP и cURL для получения связанного эскиза из API YouTube?
curl
youtube
youtube-api
youtube-data-api
14 янв. 2010, в 23:53
26 ответов
Я проверил мой файл PHP ini, и отображаются ошибки отображения, а также сообщение об ошибках E_ALL. Я перезапустил веб-сервер Apache. Я даже поставил эти строки в верхней части моего script, и он даже не улавливает простые ошибки синтаксического анализа. Например, я объявляю переменные с "$", и я не...
27 июнь 2009, в 19:58
30 ответов
Как я могу написать две функции, которые берут строку и возвращаются, если она начинается с указанного символа/строки или заканчивается им? Например: $str = '|apples}'; echo startsWith($str, '|'); //Returns true echo endsWith($str, '}'); //Returns true ...
string
07 май 2009, в 12:44
14 ответов
В настоящее время говорят, что MD5 является частично небезопасным. Принимая это во внимание, я хотел бы знать, какой механизм использовать для защиты паролем. Этот вопрос, Является ли "двойной хэширование" паролем менее безопасным, чем просто его хеширование? предполагает, что хеширование несколько ...
security
hash
passwords
protection
30 дек. 2008, в 22:46
34 ответа
У меня есть HTML (не XHTML) документ, который отлично отображает Firefox 3 и IE 7. Он использует довольно простой CSS для его стилизации и рендеринга в HTML. Теперь я перехожу к PDF файлу. Я пробовал: DOMPDF: у него были огромные проблемы с таблицами. Я укомплектовал свои большие вложенные таблицы,...
pdf
pdf-generation
24 дек. 2008, в 08:00
35 ответов
Есть ли простой способ удалить элемент из массива с помощью PHP, чтобы foreach ($array) больше не включал этот элемент? Я думал, что установка его на null будет делать это, но, видимо, это не работает.
arrays
15 дек. 2008, в 19:16
16 ответов
Я настраиваю новый сервер и хочу полностью поддерживать UTF-8 в моем веб-приложении. Я пытался сделать это в прошлом на существующих серверах, и мне всегда приходилось прибегать к ISO-8859-1. Где именно мне нужно установить кодировку/кодировки? Я знаю, что мне нужно настроить Apache, MySQL и PHP д...
10 нояб. 2008, в 19:45
22 ответа
В PHP 5, в чем разница между использованием self и $this? Когда каждый из них подходит?
class
scope
30 сен. 2008, в 06:00
28 ответов
Если пользовательский ввод вставлен без изменения в SQL-запрос, приложение становится уязвимым для SQL-инъекции, как в следующем примере: $unsafe_variable = $_POST['user_input']; mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')"); Это потому, что пользователь может ввести ч...
security
sql-injection
13 сен. 2008, в 00:47
Наверх
Меню