Моя первая страница на PHP (С чего начать?)

Форум для тех кто начинает осваивать язык php.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Моя первая страница на PHP (С чего начать?)

Сообщение Slash » Ср дек 09, 2015 2:31 pm

Здравствуйте.
Мне часто приходят письма с вопросами, с чего начать изучение, как устроен PHP и какую книгу я бы рекомендовал для изучение? Сразу скажу, что я изучал язык PHP (и продолжаю изучать) не по какому то учебнику, у меня не было какой то конкретной книги, по которой бы я занимался. Во всех книгах, что я видел, я прочитал первые две страницы, там где рассказывают, как вывести на экран надпись: Привет, Мир!, ну или, что то в этом духе. Конечно это делается так:

Код: Выделить всё

<?php 
echo 
'Привет, Мир!';

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

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

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

Код: Выделить всё

$variable = 'Привет, Мир!';

То есть я забил в переменную $variable фразу Привет, Мир!, теперь проверим эту переменную функцией isset(), делаем так:

Код: Выделить всё

isset($variable)

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

Код: Выделить всё

if (/* какое то сравнение */)
{
    # Если проверка дала добро
}

Этот код вернет какой то результат, только в том случаи, если условие верно, нам же надо вернуть результат в случаи не удачи тоже, для этого в условии используется else:

Код: Выделить всё

if (/* какое то сравнение */)
{
    # Если проверка дала добро
}
else
{
    # Если проверка не дала добро
}

Подробнее почитать о условии можно в теме: Условие (if else) в PHP.
Теперь давайте соберём всё в одну кучу. Значит ещё раз, нам необходимо проверить переменную $variable, если она определена (то есть имеет значение), то выводим сообщение, что всё в порядке и само значение, если переменная не определена, выводим, сообщение об ошибке. К коду добавлю комментарии для понимания:

Код: Выделить всё

<?php # Говорим машине, что дальше будет код на PHP языке
$variable = 'Привет, Мир!'; # Забиваем переменную $variable фразой: Привет, Мир!
if (isset($variable)) # Проверяем имеет ли переменная значение
{
    echo 'Переменная определена! Её значение: ' . $variable; # Если условие дало добро
}
else
{
    echo 'Переменна не определена.'; # Сообщение на случай если переменна не определена
}

Результат на экране монитора будет таким:
Переменная определена! Её значение: Привет, Мир!

Если хотите убедиться, что проверка / условие действительно работает, удалите из кода строчку:

Код: Выделить всё

$variable = 'Привет, Мир!'; # Забиваем переменную $variable фразой: Привет, Мир!  

И результат на экране изменится:
Переменна не определена.

Ну вот пока всё! Надеюсь информация была полезной.
Спасибо за внимание.
Реклама
Аватара пользователя
pessimist
Сообщения: 47
Благодарил (а): 55 раз
Поблагодарили: 6 раз

Re: Моя первая страница на PHP (С чего начать?)

Сообщение pessimist » Вт авг 16, 2016 12:41 pm

Здравствуйте, уважаемый Slash!

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

Ну а теперь, собственно, по сабжу.

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

Вот сегодня утром, мне пришла в голову следующая мысль:

Я часто пользуюсь данными с сайта Московской биржи по итогам торгов. Стандартными интерфейсами эти данные выдают на платной основе. Бесплатные данные можно получить в рукопашную, долго и нудно выбирая на страницах цены и используя Ctrl+c и Ctrl+v. Занятие это весьма и весьма нудное, вот и возникает вопрос, нельзя-ли этот процесс автоматизировать с помощью PHP? Говоря на сленге - спарсить эти данные?

На первый взгляд задача не выглядит сложной:

1) Получить данные из вебстраницы
2) Отформатировать их нужным образом
3) Сохранить в текстовый файл

А теперь вопрос:

Можете ли Вы, уважаемый Slash и не менее уважаемые форумчане, оказать мне посильную помощь в освоении языка PHP для решения этой задачи?
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Моя первая страница на PHP (С чего начать?)

Сообщение Slash » Вт авг 16, 2016 4:15 pm

pessimist, здравствуйте! Рад Вашему присутствию! Постараюсь кратко объяснить, как можно собрать данные с одной страницы и сделать, какой то отчет в виде текстово файла.

Чтобы получить содержимое, какой то страницы, можно использовать функцию file_get_contents, данная функция получает содержимое файла в виде строки, более подробно на официальном сайте: http://php.net/manual/ru/function.file-get-contents.php. Делается это так:

Код: Выделить всё

$html = file_get_contents('url');

Вместо url пишем адрес файла или страницы в кавычках. Функция прочитает документ и сохранит его содержимое в переменную $html, в нашем случаи это будет HTML теги, то есть структура страницы. Когда у нас есть структура, какой то страницы, мы можем отделить (или вытащить) любую, нужную нам информацию, что находится среди этих тегов (в переменной $html). Например, получаем цену, которая находится между тегами <span class="price"> и </span>, делаем так:

Код: Выделить всё

preg_match('|<span class="price">(.*?)</span>|', $html, $price);

Тут мы использовали функцию preg_match, чье предназначение выполнять проверку на соответствие регулярному выражению, подробнее об этой функции тут: http://php.net/manual/ru/function.preg-match.php. В строчке кода видно, что нас появилась новая переменная $price, правильнее будет сказать массив, а не переменная. Чтобы воспользоваться элементом массива, где будет нужная нам цена, пишем так $price[1]. Теперь необходимо полученную цену записать в текстовый файл, для этого будем использовать функции:
Открывать файл будем с режимом w, в этом режиме текстовый файл будет создан, если его нет. Пишем код:

Код: Выделить всё

$fopen = fopen('report.txt', 'w');  # Создаем и открываем файл report.txt
$write = fwrite($fopen, $price[1]); # Записываем цену в новый файл
fclose($fopen);                     # Закрываем файл       

Готово!

Еще: если на странице несколько объектов с тегом <span class="price"> и все надо получить, имеет смысл использовать функцию preg_match_all (http://php.net/manual/ru/function.preg-match-all.php), она получит все элементы в массив:

Код: Выделить всё

preg_match_all('|<span class="price">(.*?)</span>|', $html, $prices);

Затем через цикл, например foreach создаем структуру нашего отчета:

Код: Выделить всё

$report null;
$count  0;
foreach (
$prices[1] as $price)
{
    
$count++;
    
$report .= 'Цена №' $count ': ' $price "\n";

Затем переходим к записи переменной $report в файл, как показано выше.

Вот еще одна интересная тема: Быстрое копирование информации с web-страницы (Парсинг).
Аватара пользователя
pessimist
Сообщения: 47
Благодарил (а): 55 раз
Поблагодарили: 6 раз

Re: Моя первая страница на PHP (С чего начать?)

Сообщение pessimist » Вт авг 16, 2016 6:16 pm

Во первых, огромное спасибо Slash за столь оперативный и подробный ответ!

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

С темой "Быстрое копирование информации с web-страницы (Парсинг)." я ознакомился, но понял оттуда, что речь идет об использовании готовых функций некоторой библиотеки специализированной именно для парсинга. Думаю, что к этой теме я вернусь несколько позже, когда немного познакомлюсь с азами.

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

А пока у меня возник первый вопрос:

Язык PHP "встраивается" в HTML код. Для этого служат две операторные скобки: открывающая: <?php и закрывающая: ?>

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

Файлы содержащие смесь кода PHP и HTML имеют расширение php. То есть, интерпретатору должно быть понятно из расширения, что он имеет дело с языком PHP. Значит ли это, что если файл с расширением php не содержит в себе HTML кода, то и открывающую операторную скобку указывать необязательно?

На дружественном форуме по проблеме безопасности связанной с использованием ?> в конце файла Вы писали следующее:

Spoiler: Показать
Допустим, вы набираете код, ставите закрывающий тег и случайно делаете пробел после закрывающего тега ("?> "), этот файл инклюдится к вызываемому файлу. Пользователь при обращению к файлу может получить вместо результата сценария, исходный код файла, где стоит пробел после закрывающего тега. Этого может и не произойти, как вам повезет. Но представьте, что пользователь получит исходник вашего конфига, где записаны данные доступа к БД. Обычному пользователю все ровно, он посчитает, что сайт на реконструкции или ещё чего и закроет страницу с исходником. А кто-та может воспользоваться моментом и сотворить с вашей базой, все, что ему вздумается...

Отсюда возникает еще один вопрос:

Что все-таки грамотнее в целях безопасности и интерпретирования кода PHP:

1) Не ставить в конце файла ?>
2) Ставить в конце файла ?>, но при этом внимательно следить, чтбы после ?> не было никаких символов

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

На сегодня пока все. Вечером планирую приступить к освоению кода, который уважаемый Slash любезно предоставил в предыдущем посте.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Моя первая страница на PHP (С чего начать?)

Сообщение Slash » Вт авг 16, 2016 8:59 pm

Закрывать или нет (?>), это, как Вам удобно. Если после php кода у Вас идут HTML теги, то писать ?> надо, если нет, то в этом нет необходимости, я его не использую. Но если после программы ни чего нет и Вы его закрываете, то проследите, чтобы не было ни каких невидимых или видимых символов. А вот писать <?php - обязательно. К слову, я не использую короткий тег (<?), только полный (<?php).
Аватара пользователя
pessimist
Сообщения: 47
Благодарил (а): 55 раз
Поблагодарили: 6 раз

Re: Моя первая страница на PHP (С чего начать?)

Сообщение pessimist » Вт авг 16, 2016 10:48 pm

Итак, первый блин - комом :)

Создал файл по адресу: paz.su/test/first_page.php

Добавил туда первую функцию. Чтобы проверить ее работу, результат функции вывел на экран. Вот такой маленький код получился для моей первой страницы на PHP:

Код: Выделить всё

<?php
$prima_variable 
file_get_contents('http://moex.com/ru/marketdata/#/secid=FXRB&boardgroupid=57&mode_type=history&mode=instrument&date_from=2016-08-09&date_till=2016-08-15');
echo 
$prima_variable;
?>

К сожалению, я не увидел на экране цен на акции, подобно тому, как если ссылку просто скопировать в окно браузера и нажать Enter.
Я подумал, что неправильно написал какую-нибудь букву в коде и решил создать еще один файл с адресом paz.su/test/first_page_r1.php и подставить адрес своего блога вот так:

Код: Выделить всё

<?php
$prima_variable 
file_get_contents('http://www.begomotbed.ru');
echo 
$prima_variable;
?>

На экране вытащилась вся моя главная страница и даже запустилась реклама Адсенса, видимо скрипты все переехали в переменную в целости и сохранности.

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

Кто подскажет, уважаемые форумчане?
cefp
Сообщения: 333
Поблагодарили: 3 раза

Re: Моя первая страница на PHP (С чего начать?)

Сообщение cefp » Вт авг 16, 2016 11:14 pm

Я недавно обновлял браузер, поэтому у меня не сохранились кукисы с сайта московской биржи. Когда я набрал указанный адрес биржи у меня выскочила страница с пользовательским соглашением. Может быть сайт проверяет, авторизован ли Ваш сервер на этом сайте. А на ПАЗ СУ есть такая строка "Для тех кто уже имеет доступ просьба авторизоваться на сайте. " - может быть это подсказка? :)

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

Если с локального компьютера получится авторизоваться, то можно подумать как авторизовать настоящий сервер.
d o h o d - s - n u l y a .ru - идеи бизнеса.
Аватара пользователя
pessimist
Сообщения: 47
Благодарил (а): 55 раз
Поблагодарили: 6 раз

Re: Моя первая страница на PHP (С чего начать?)

Сообщение pessimist » Вт авг 16, 2016 11:29 pm

Здравствуйте, cefp!

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

Адрес скрипта я набираю в том же браузере, где есть кука биржи. Просто вместо таблицы с данными он мне выводит:
Моя первая страница на PHP С чего начать?  - screenshot.png
 

Еще одно наблюдение. Я открыл в браузере Гугл Хром загруженную таблицу с ценами в режиме "Просмотр кода страницы" и не нашел ни одного значения цены, хотя на экране я их вижу...

Зато очень много текста кода на языке похожем на Яву, ажно в глазах зарябило...
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Моя первая страница на PHP (С чего начать?)

Сообщение Slash » Ср авг 17, 2016 6:21 am

pessimist писал(а):Я открыл в браузере Гугл Хром загруженную таблицу с ценами в режиме "Просмотр кода страницы" и не нашел ни одного значения цены, хотя на экране я их вижу

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

Подозреваю, что этими скриптами и генерируется цена, когда страница загружена полностью в браузер.
Аватара пользователя
pessimist
Сообщения: 47
Благодарил (а): 55 раз
Поблагодарили: 6 раз

Re: Моя первая страница на PHP (С чего начать?)

Сообщение pessimist » Ср авг 17, 2016 8:19 pm

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

Теперь и я подозреваю, что средств одного PHP будет недостаточно для решения поставленной учебной задачи. Почему я так подозреваю?

PHP - это серверный язык, то есть программа на этом языке выполняется на стороне сервера;
JAVA - это клиентский язык, то есть программа на этом языке выполняется на стороне клиента.

Таким образом, чтобы разобраться во взаимодействии сайта биржи с сервером и клиентом, следует, как минимум, владеть обоими языками. Я же, не знаю ни одного - получается уравнение с двумя неизвестными.

Как решается уравнение с двумя неизвестными? Надо "помножить на ноль" второе неизвестное и выбрать область решений для первого неизвестного. Затем "помножить на ноль" первое неизвестное и выбрать область решений для второго. Пересечение найденных областей и будет областью решений уравнения с двумя неизвестными.

Придется для начала "помножить на ноль" JAVA и вернуться к изучению PHP. А иными словами: придумать учебную задачу для первой страницы на PHP такую, чтобы она решалась его средствами.

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

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

Позже обязательно отпишусь, что у меня из этой затеи вышло.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Моя первая страница на PHP (С чего начать?)

Сообщение Slash » Чт авг 18, 2016 8:31 am

pessimist писал(а):попробую использовать информацию из поста Slash, чтобы выбрать с главной страницы блога все ссылки и сохранить их в файл

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

Код: Выделить всё

$url = 'http://danfa.org';                      # Указать адрес страницы
$html = file_get_contents($url);                # Получаем исходный код страницы
preg_match_all('|<a(.*?)</a>|', $html, $links); # Выбираем все ссылки

$report = null;               # Создаем переменную со значением null
foreach ($links[1] as $link)  # Перебираем все получинные адреса ссылок
{
    preg_match('|\>(.*?)$|', $link, $anchor);   # Получаем анкор ссылки
    preg_match('|href="(.*?)"|', $link, $www);  # Получаем адрес ссылки (атребут href)
    if (isset($www[1]) && $www[1] != '#')       # Проверка: есть ли адрес, не является ли адрес одной решеткой
    {
        $text    = strip_tags($anchor[1]);                # Удаляем все теги из анкора
        $text    = trim($text);                           # Удаляем пробелы в начале и в конце анкора
        $text    = !empty($text) ? $text : 'Без анкора';  # Проверка: есть ли анкор
        $report .= $text . ': ' . $www[1] . "\n";         # Забиваем полученные адреса в переменную
    }
}

$fopen = fopen('report.txt', 'w');  # Создаем и открываем файл report.txt
$write = fwrite($fopen, $report);   # Записываем все адреса в новый файл
fclose($fopen);                     # Закрываем файл     

Замените адрес сайта на свой, в первой строчке сценария:

Код: Выделить всё

$url = 'http://danfa.org';                      # Указать адрес страницы     

Залейте на сервер, запустите и получите файл report.txt, примерно такого содержимого:

Код: Выделить всё

Без анкора: ./?sid=30b534b1a739a4a69717cd2b6e8b9f0a
Пропустить
: #start_here
Расширенный поиск: ./search.php?sid=30b534b1a739a4a69717cd2b6e8b9f0a
Темы без ответов
: ./search.php?search_id=unanswered&amp;sid=30b534b1a739a4a69717cd2b6e8b9f0a
Активные темы
: ./search.php?search_id=active_topics&amp;sid=30b534b1a739a4a69717cd2b6e8b9f0a
Поиск
: ./search.php?sid=30b534b1a739a4a69717cd2b6e8b9f0a
Наша команда
: ./memberlist.php?mode=team&amp;sid=30b534b1a739a4a69717cd2b6e8b9f0a
Топлист сообщений
: /app.php/toplist?sid=30b534b1a739a4a69717cd2b6e8b9f0a
Благодарности
: /app.php/thankslist?sid=30b534b1a739a4a69717cd2b6e8b9f0a
FAQ
: ./faq.php?sid=30b534b1a739a4a69717cd2b6e8b9f0a
Вход
: ./ucp.php?mode=login&amp;sid=30b534b1a739a4a69717cd2b6e8b9f0a
Регистрация
: ./ucp.php?mode=register&amp;sid=30b534b1a739a4a69717cd2b6e8b9f0a
Список форумов
: ./?sid=30b534b1a739a4a69717cd2b6e8b9f0a

Код рабочий, но написан он исключительно для примера, для серьезного применения его надо допиливать.

Надеюсь настрой не сбил!
Аватара пользователя
pessimist
Сообщения: 47
Благодарил (а): 55 раз
Поблагодарили: 6 раз

Re: Моя первая страница на PHP (С чего начать?)

Сообщение pessimist » Чт авг 18, 2016 5:16 pm

Slash писал(а):Код рабочий, но написан он исключительно для примера, для серьезного применения его надо допиливать.

Здравствуйте Slash!

Я как раз и зарегистрировался у Вас, чтобы пилить, а не чтобы кто-то за меня полезное чего-нибудь напилил. Но, для этого пиления мне поучиться требуется. Поэтому огромное спасибо за Ваш листинг кода с подробными комментариями.

Slash писал(а):Надеюсь настрой не сбил!

Даже, скорее, наоборот - вдохновили! Хотя, я вчера пол вечера потерял, пытаясь методом профессора научного тыка правильно написать шаблон для функции preg_match. Если бы я знал, что утром Вы напишите его так как мне нужно, а именно:

Код: Выделить всё

'|<a(.*?)</a>|'

я бы потратил время на что-нибудь другое :)

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

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

Собственно, вот первая шпаргалка:
Моя первая страница на PHP С чего начать?  - Ris_1.png
 

А теперь о том, что вызвало у меня затруднения и чего я не знаю дальше...

Внешняя или внутренняя ссылка, размещенная в странице HTML всегда заключается в тег <a></a>. И казалось, бы, что может быть проще, чем выбрать из кучи текста все ссылки. Выбирай содержимое тега <a></a> и будь счастлив! Но, у тега <a></a> есть атрибуты и для каждой ссылки - они разные.

Значит, шаблон для функции preg_match должен содержать некую маску, как, например, при поиске файлов символом "*" можно обозначить любой набор букв. Ну, например, нам требуется найти файл с именем moy_plan.doc, мы знаем, что на компьютере он есть, но не совсем точно помним название файла полностью. Помним, что в названии было слово plan. Тогда в поиске мы используем маску и ищем файл с именем *plan.*. Будут найдены пути ко всем файлам, которые содержат в своем имени слово plan.

В своем коде, уважаемый Slash, Вы использовали подобную маску для шаблона.

Код: Выделить всё

'|<a(.*?)</a>|'

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

Надеюсь, что мне удалось объяснить в чем заключался мой вчерашний "затык".

Пользуясь случаем, еще раз хочу сказать спасибо, Вам Slash, за Ваши уроки.
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Моя первая страница на PHP (С чего начать?)

Сообщение Slash » Чт авг 18, 2016 6:25 pm

О метасимволах регулярного выражения можно почитать на оф сайте: http://php.net/manual/ru/regexp.reference.meta.php
Возможно будет интересно ознакомиться со всем: http://php.net/manual/ru/reference.pcre ... syntax.php http://php.net/manual/ru/book.pcre.php

На счет шпаргалок, я только рад! Классная идея!
Аватара пользователя
pessimist
Сообщения: 47
Благодарил (а): 55 раз
Поблагодарили: 6 раз

Re: Моя первая страница на PHP (С чего начать?)

Сообщение pessimist » Чт авг 18, 2016 8:20 pm

Здравствуйте Slash!

Язык изложения на официальном сайте для новичка - полная тарабарщина. Так и пестрит незнакомыми терминами :) Благодаря Вашим ссылкам - научусь читать первоисточник. Без Вашей рекомендации - ни за что не полез бы читать официоз. "Волшебный пендель" - это всегда хорошо для саморазвития :)

У меня к Вам просьба, если не трудно конечно, проглядывать мои шпаргалки на предмет неверного толкования изучаемой информации.
Slash писал(а):Возможно будет интересно ознакомиться со всем:

Скорее нужно, чем интересно. Я поэтому книжки и не люблю читать, потому что там все и сразу :) А я медленно усваиваю новую информацию, как черепаха. Но - вода камень точит...

Подготовил вторую шпаргалку:
Моя первая страница на PHP С чего начать?  - Ris_2.png
 

Пока ее рисовал, вот о чем подумалось...

Анекдот вспомнил:
Настоящий программист, когда ложиться спать, всегда ставит на тумбочку два стакана. Один с водой и один пустой. С водой - ставит на тот случай если проснется и захочет попить. А пустой стакан ставит на тот случай, если проснется и не захочет попить.

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

Ну про фигу в официальном описании функции все наверняка написано. А вот в какой момент правильно эту фигу контролировать? Сразу после выполнения функции или на следующем шаге заглядывать в переменную $html и пытаться посмотреть, что там лежит - ожидаемый контент или фига?
Аватара пользователя
Slash
Администратор
Сообщения: 2029
Поблагодарили: 62 раза

Re: Моя первая страница на PHP (С чего начать?)

Сообщение Slash » Чт авг 18, 2016 10:01 pm

Если попытаться прочитать функцией file_get_contents файл|страницу, которой на самом деле нет, можно получить ошибку такого вида:
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in xxx/xxx
Warning: file_get_contents(url): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in xxx/xxx

pessimist писал(а):Вот я и подумал, а что будет если в момент выполнения первой программы на PHP мой блог вдруг станет недоступным в результате сбоя на хостинге.

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

Код: Выделить всё

$html = @file_get_contents($url);
if ($html)
{
    # Тут код для выполнения необходимых операций с полученным контентом
    # В случаи если файл | страница доступны
}
else
{
    # Файл | Страница не доступна
    exit('Файл | Страница не найдена.');
}

Вернуться в «PHP»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя