Php программирование с нуля. Объекты в PHP. Что такое PHP? Краткая справка

1 голос

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

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

Список файлов из папки

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

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

Что же такое PHP?

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

Вставка комментариев в код

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

Методология программы и обучения

Мастер в области веб-разработки - чрезвычайно удобный путь для решения проблем. Хорошо известно, что хорошее обучение связано с решением проблем. Лучшие достижения будут собраны в разделе «Студенческое портфолио» нашего сайта и будут видны компаниям-партнерам, которые ищут квалифицированных кандидатов.


Говоря простыми и доступными словами, php это язык программирования, специально разработанный для создания сценария веб-приложения, который исполняется на web-сервере. Это достаточно востребованный язык программирования, так как 85% веб-сайтов используют его.

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

Ваше профессиональное обучение.


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

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

Обучаемся эффективно

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



  • Сколько времени требуется, чтобы узнать, как его использовать?
  • Что используется для работы Когда вы находитесь на работе?
  • Есть руководства, руководства, руководства для запуска.
Зачем начинать с этого языка? Вы догадываетесь, что он сделал последние 45 лет после его рождения?

Он занимает 2-е место среди самых популярных языков в мире. Это дает представление о том, насколько он прочен и силен, как говорит нам дядя Бен Бродяга: «От великой силы возникают большие последствия ответственности». И вскоре мы узнаем, что это за «последствия».


Затем нам нужно скачать компилятор. Это программа, которая построчно считывает ваш скрипт как инструкцию и исполняет ее.

Наиболее распространенный компилятор это denver – простой и бесплатный пакет нужных программ, с помощью которых вы сможете писать скрипты. Если вы спросите мое мнение, то я бы посоветовал вам скачать Open Server. Он сейчас набирает обороты. Он на голову выше денвера и в нем вам будет удобнее работать.

Выполняйте функции вне циклов

Сначала давайте сделаем шаг назад: вы когда-нибудь изучали латынь в школе? Да, потому что вы должны знать, что латынь, даже если это мертвый язык, заложила основу для многих общеупотребительных языков в Европе. Следовательно, знание этого поможет вам лучше понять не только итальянский язык, но и большинство европейских языков.



Это как выпить стакан воды или это как подняться на гору голыми руками, чтобы утолить источник? Здесь мы приходим к мучительному языковому ключу. И именно эта функция затрудняет изучение и использование. По сравнению с другими языками программирование сложнее, потому что оно предоставляет инструменты, которые нелегко освоить, особенно для новичков. Бесполезно повторять, сколько С «сложно», сначала показать это!

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


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

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

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

Книги для обучения

Скажу сказу, я не фанат книг. Когда речь идет о интернет-технологиях. Это все равно что объяснять человеку из племени Масаи что такое wi-fi. Никакие рисунки не помогут нормально все понять. И тем не мене, я хочу предоставить вам небольшой список книг по php для чайников, которые котируются среди профессионалов.

Встроенные системы



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

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

PHP и MySQL. Разработка Web-приложений – отличная книга которая подойдет новичку. Первым делом автор покажет как настроить Apache (HTTP-сервер), PHP и MySQL (база данных), затем подскажет, как выбрать редактор кода. В книге рассматривается: синтаксис языка, самые полезные функции, создание собственного движка и ряда других функций.

Составители других языков

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

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



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

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

Уже создать самую систему баз данных! Но как мы становимся техническими специалистами по этим темам? Здесь мы приходим к самому блестящему из всех: веб-серверы! Мы говорим о сети, и это легко, но это также сервер, и, возможно, это сложнее. Но для чего нужен такой компьютер? Ладно, спокойно, мы сейчас придем.

HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера – Это более детальный учебник по изучению php. В нем затрагиваются несколько других полезных , без которых полноценное создание веб приложений невозможно.

Читается достаточно легко, подходит для самостоятельного изучения и обучения студентов. Автор затрагивает такие темы как: основы php, динамическое формирования страницы при помощи CSS (каскадная таблица стилей), администрирование баз данных, создания динамических страниц при помощи JavaScript.

Не ставьте phpinfo() в свой Webroot

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

99% ваших компьютерных программ

Затем перейдите на веб-адрес, когда появится главная страница сайта. Веб-серверы позаботятся об этом.

Подождите! Это не значит, что это лучший выбор, ведь это совсем не так! Вам нужно будет идти медленнее, и вы скоро дойдете до конца после скуки и разочарования. Такой язык определенно необходим в мире труда, но с очень продвинутым уровнем опыта.



Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5 – данную книгу я бы посоветовал более продвинутым читателям, которые уже обладают основными навыками HTML верстки. Если вы когда-либо изучали это, и еще помнете основные принципы тогда эта книга для вас.

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

В Италии, сколько рабочих мест будет для этой высокоспециализированной механики? Мы всегда говорим о «механике», но с совершенно другой тренировкой от того парня, который живет рядом с вашим домом, который настраивает машины, но они оба механические. Вот почему мой голос настолько низок.



PHP и MySQL. От новичка к профессионалу – и завершает наш обзор книга Кевина Янка, в ней автор делает сильный уклон на создание веб-приложений с базой данных.



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

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

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

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

Видео с YouTube

По своему опыту скажу что, обучатся php по роликам из ютуба достаточно сложно. Хоть они и кажутся простыми. В отличии от уроков по фотошопу, которые я обожаю, изучать языки программирования в ютубе просто невозможно. Даже видео длиной всего в 15 – 20 минут вызывает массу неудобств.

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

Первый шаг: определение целей

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

Такие видео могут отбить желание самому набирать код. Зачем, если за вас уже все сделал автор: набрал, запустил, показал на конкретном примере как все работает? В результате запомнить что-то практически невозможно.

Обучающий курс

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

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

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

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

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



Если вы мечтаете о том, чтобы научиться создавать сайты без , сами и на php, то это лучший для вас вариант.


alexperec » 31 июл 2011, 10:51

Вот решил написать небольшое пособие, по основам программирования на php с нуля, в помощь новичкам, для изучения азов программирования.

Как это относится к сео? Да очень даже прямо. Порой бывает нужно выполнить груду однотипной рутинной работы, и не большой скриптик мог бы очень помочь и сэкономить кучу времени. Я уже не говорю за то, что порой бывают, нужны более серьезные модули или программы, заказывать которые стоит порой не по карману. Но это уже более сложные задачи, которые тут мы рассматривать не будем. Если вы действительно заинтересуетесь, то в Интернет полно умных книжек, которые так и просятся чтоб их прочли) Здесь же мы рассмотрим только основы, помогающие вникнуть в суть и перейти к самостоятельному обучению более сложных этапов.

Речь пойдет о программировании на языке PHP.
Ну приступим…

Что же такое программирование? Чем оно отличается, например от языков разметки?
Разметка – это правила, применяемые к содержимому тега.
< a href="">текст
Т.е. правила показывает браузеру, что содержимое тега - ссылка. И оформлять и выводить пользователю её следует тоже как ссылку.
Языком разметки мы можем только применять какие любо правила, но не можем динамически изменять данные. Т.е. мы меняем только одежду, но сделать из человека обезьяну мы не можем.

Программирование же – это написание скриптов, или иначе сценариев. Сценариев по которым будут обрабатываться входящие данные (данные которые мы предоставим программе). Писать сценарии намного сложнее чем форматировать текст. Ведь для этого мало знать синтаксис языка, нужно самому этот сценарий спланировать и реализовать средствами языка.

Перед началом изучения, нам нужно обзавестись веб сервером, с установленным PHP интерпритатором. Интерпретатор – это программа, которая читает наш код и «переводит» его на машинный язык. В качестве сервера может быть хостинг. А лучше скачать и установить денвер, тот тот же хостинг только локальный (доступен только вашему компьютеру, или вашей локальной сети). Скачать можно тут там же почитать про установку и инструкцию по работе с ним.

Теперь перейдем к началу изучения PHP.

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

Переменные
– переменная это участок памяти, где хранится какая-либо информация. Переменная имеет имя, по которому к ней обращаются, что бы прочитать или изменить её содержимое. По самому названию «переменная» можно догадаться что данные в ней можно изменять в ходе выполнения программы. Переменные бывают разных типов: числовые, строковые, массивы и т.д. Чтобы показать интерпретатору что данный символ(ы) являются именем переменной используется знак доллара $.

$peremennaya –это переменная
peremennaya –а это просто бессмысленный набор символов

Переменные чувствительны к регистру (заглавным и строчным символам). Т.е. $a и $A совсем разные вещи. Тип переменной PHP определяет сам, поэтому во избежание путаницы не делайте действий с переменными разных типов. Например не прибавляйте число к массиву, ибо результат не предсказуем.

Константы – постоянные. Смысл тот же что и переменная, только константы нельзя изменять. Т.е. то что в них один раз записали, то там и будет. Этими данными можно только пользоваться.

Операторы – действия. Например: +, -, *, /, = и т.д. Полный список можно почитать справочник. Следует заметь что выражение:

Означает не то, что значение переменной «а» равно значению переменной «b». А то что значению переменной «a» присвоили значение «b». То есть если было:
Код: $a = 1;
$b = 2;
$a = $b;
То в итоге выполнения этой программы значение $a будет равно 2.

А для сравнивания есть другие операторы: == и ===

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

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

Объекты .Так же есть еще объекты, но это уже намного сложнее, и для начала совсем не обязательно.

Есть еще переменные окружения . Эти переменные пользователю изменять нельзя. Можно только пользоваться данными. Их значение изменяет сам интерпретатор. Для получения данных из таких переменных есть специальная функция getenv(). Переменная SERVER_ADDR содержит айпи адрес пользователя исполняющего сценарий, например просматривающего например сайт. Например мы хотим чтоб на нашем сайте пользователи могли видеть свой IP, то мы создадим «модуль» примерно такого содержания:

Код: $ip = getenv("SERVER_ADDR");
echo "ваш IP: $ip";

мы сначала присвоили переменной $ip значение IP адреса пользователя, а потом его вывели на экран с помощью оператора.

В функции getenv() имя переменной нужно указывать в кавычках, как в примере.

Таких переменных очень много, найти можно в справочниках.

Теперь еще хотел бы сказать отдельно за переменные типа массив. Массив это как бы таблица.
В одной строке которой содержаться индексы (номера или имена ячеек), в во второй строке соответственно значения.

Создать такой массив можно с помощью функции array(), назовем его mass:
Код: $mass = array ("привет", "пока",2+3, $ip = getenv("SERVER_ADDR") , cos($a));
Массивы можно создавать и непосредственно присвоением значений элементам (читайте дополнительную лит.ру). Только в случае, если содержимое - выражение или функция как в ячейках 2, 3 и 4 кавычки не пишутся. Иначе это уже будет не выражение а просто строка.

Как мы видим элементы массива могут содержать в себе разные типы данных: строки текста, выражения, функции. Могут даже содержать даже массивы. Т.е. получится таблицы внутри таблицы.

Элементы массива нумеруются с нуля. Не один, два,три. А ноль, один, два и т.д.

Обращаться к элементам массива можно так:
Код: Echo $mass;
На экран будет выведено значение косинуса, а не строка «cos($a);».

Существуют так же ассоциативные массивы, где вместо нумерации можно задавать ячейкам свои имена.
Массивы иногда очень удобно использовать. Например, есть функция file(), она читает файл построчно (строками) и создает массив, каждый элемент которого содержит все строки файла.

Например в файле test.txt у на такое содержание:
Код: Вася
Пошел
В магазин

$text = file("text.txt");

Переменная $text становится массивом из трех элементов. Элемент с индексом 0, содержит «вася», с индексом 1 «пошел», и 2 «в магазин». Функции file() мы передаем путь к файлу. Путь должен быть верным! Данный путь действителен, только если файл лежит в одной папке со скриптом!

Вроде бы все..

Теперь давайте рассмотрим пару небольших примеров реального применения наших знаний.

Пример 1.

На днях я столкнулся с небольшой проблемой. Мне нужно было скачать все изображении со страницы . их там очень много. По одной я бы сидел очень долго. С учетом моей скорости интернета. Подумав как можно автоматизировать задачу, вспомнил что в тоталкомандере можно автоматически загружать файлы по списку ссылок. Но опять загвоздка, как этот список от сюда вытащить. Сидеть выделять столько ссылок мышкой из исходного кода мучительно, в конце обязательно на нервах рука дрогнет и все насмарку. Посмотрев исходный код мы видим что содержание страницы – таблица. А значит, зажав кнопку ctrl мы сможем выделить столбец. Нас больше интересует столбец имен файлов.

Предварительно наведя на имя(ссылку) мы видим что имена совпадают с именами на сервере. Это уже очень хорошо. Теперь скопировав столбец имен в блокнот, получаем текстовый файл, где с каждой строки имя файла с расширением. Сохраняем файл к примеру text.txt. все фотки находятся в одном каталоге, что уже облегчает работу. Теперь нам нужно понять что же нам надо дальше делать. А делать надо следующее, с помощью функции file() мы прочитаем документ и имя каждого файла окажется в своей ячейке. потом с помощью цикла в каждый элемент массива в начало допишем адрес докаталога, и получим массив с готовыми ссылками. А потом опять циклом этот массив выведем на экран. И у нас готов список ссылок на загрузку! В блокноте глянем сколько получилось имен (строк). Их 137. И приступим.

Кстати, пока не забыл, двумя слешами // обозначаются комментарии, т.е.

Код: echo "это код, который исполняется интерпретатором" ; // а это просто комментарий

И после каждой строки, кроме операторов правилами которых этого не предусмотрено должна ставиться точка с запятой - ;

Писать код можно в блокноте или специальных программах с подсветкой синтаксиса. Файл должен быть с расширением.php Начинаться и заканчиваться код должен так:

Код: Наш код;
?>

Теги показывают границы нашего кода. Все что вне них, интерпретатор выполнять не будет и просто выведет их на экран текстом.
Код с комментариями:
Код:
for ($i=0; $i<=136; $i++) { // оператор <= значит меньше или равною. 136, то что массив начинается с 0, а не единицы. и последний элемент равен кол-во элементов минус один. а оператор ++ прибавляет единицу. в циклах использовать +1 некорректно
}
for ($i=0; $i<=136; $i++) {

echo "
" ; // выводим тег

}
echo "

?>

Данную программу можно немного оптимизировать, убрав лишний цикл. Т.к. оба цикла выполняют одну и туже работу, мы все действия перенесем в первый цикл, а второй удалим:
Код: $name=file("base.txt"); // создали массив имен
for ($i=0; $i<=136; $i++) { // оператор <= значит меньше или равною. 136, то что массив начинается с 0, а не единицы. и последний элемент равен кол-во элементов минус один. а оператор ++ прибавляет единицу. в циклах использовать +1 некорректно
$name[$i]="http://www.volgograd.org.ru/maps/maps/rostov/$name[$i]"; //обращаемся к каждому элементу по порядку, в качестве индекса используем счетчик $i. и дописываем в начало путь к каталогу.
echo $name[$i]; //выводим поочередно каждый элемент массива
echo "
" ; // выводим тег
, чтобы каждая ссылка была с новой строки
}
echo "
Готово! А все оказывается просто!"; // от себя добавил))
?>

в итоге за считанные секунды я получил список урлов, поставил их на загрузку, а сам пошел пить кофе и заниматься другими делами

файлы программы можете скачать тут
можете запустить её и убедиться, что все работает.

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

Во втором примере я опишу как я писал свой модуль . Он уже имеет самое что именно есть прямое отношение к сео и оптимизации. Но это чуть позже, а то утомился

Помните порой легче создать свой "мини сео софт", чем искать готовое. Его кстати может и не существовать вовсе

Если вы действительно заинтересовались программированием на PHP, советую почитать книгу "PHP 5/6 и MySQL 6. Разработка Web-приложений" Дениса Колисниченко. Там очень много хорошего материала. Все понятно излагается. Читайте справочники, и главное учитесь думать и все себе представлять, и будет вам счастье! А все остальное как говорится придет с опытом

Буду ждать комментариев

Innulia » 31 июл 2011, 20:00

Мануал получился достаточно простенький, этих основ вполне достаточно для создания скриптов.
Есть только несколько вопросов: вы указали пример цикла с счетчиком. Данный тип циклов часто бывает неудобным для выполнения программ, чаще используются с условием и постусловием. Почему вы выбрали для описания именно цикл со счетчиком?
про массивы: вы указываете, что в массиве могут содержаться разные значения. Обычно массив содержит однотипную информацию: только символы, только числа, только текстовая инфа и тд. У вас в примере данные разных типов - это особенность массивов в php? То есть можно в один массив пихать разные данные?

У меня все

Вы указали в тексте, что такое функции. Почему не были описаны процедуры? Они часто бывают намного удобнее. Есть ли процедуры в php?

У меня все

Innulia , давайте по порядку)

Цикл со счетчиком на мой взгляд, наоборот намного приминимее. Например для перебора массивов и много еще для чего) Да и его синтаксис, и действия несколько сложнее для понимания, на мой взгляд, нежели циклы с условиями. И если понять цикл for, то остальные понять уже не составит труда ИХМО

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

процедуры? такого в php нет. или возможно оно носит какое-то другое название

Я не описывал классы и объекты, т.к. это уже более сложно и не каждый это сразу поймет. Но все же упомянул что такое есть)

alexperec » 02 авг 2011, 07:11

Вот дошли руки до описания второго примера.

Скачать его можно в этой ветке там же инструкция по установке.

Это, в отличии от первого примера, уже полноценный модуль для сайтов на движке DLE. У данного модуля есть админка.

В установку модуля и специфику движка я вдаваться не буду, если администрация не против дам ссылку, где все это описывается

Немного истории. Суть проблемы заключалась в том, что мне нужно было чтобы для каждой категории новостей было свое «меню категории», где бы были ссылки на материалы именно этого раздела сайта. И при том, на корневых страницах самого раздела чтоб можно было написать статичный неизменяемый текст, оптимизированный под свой ключ. Т.к. обычно бывает так, что разделы содержат краткие описания новостей, и постоянно изменяются из-за того что новые новости публикуются, а старые уходят вниз. А ведь ИХМО у сайта должна прослеживаться иерархия страниц. Ведь у разделов больше шансов подняться по конкурентному ключу, чем у обычных страниц, ведь УВ разделов ниже. А значит важность выше в глазах поисковиков. И этим надо пользоваться. Да и к тому же так можно добиться своего рода постоянства, т.к. у раздела содержание меняться не будет, значит и в выдаче он должен сидеть ровнее.

Теперь о попытках решения задачи. Как часто бывает, то что видится легким, на самом деле в сто раз сложнее. Тогда писать модули на ДЛЕ я еще не умел, и мне казалось что решать проблему программно – это очень тяжко. И ломал голову как сделать это с помощью огромной системы шаблонов. Но в любом случае чем-то приходилось жертвовать, все и сразу сделать не получалось. Благо, я хоть не додумался действительно сидеть и эту груду шаблонов делать, все ограничилось теорией Потом я наткнулся на материал по созданию модулей и привязке их к движку (см. выше). Ведь главной загвоздкой для меня было не сколько как написать модуль, а как его интегрировать в движок.

Суть работы модуля. А суть такова, что мы, с помощью переменной окружения получим урл адрес текущей страницы, просматриваемой пользователем. Далее этот урл будем сравнивать со всеми имеющимися страницами сайта, при помощи оператора switch case, при обнаружении совпадения, загрузим нужный нам файл с меню.

Как работает оператор switch case:
Код: switch ($url) { // в скобках указываются данные которые мы будем искать. в данном случае это данные из переменной.
case "": // то что в кавычках это данные которые мы будем проверять на совпадения. те с которыми мы будем сравнивать
код; // код который будет выполнятся в случае если данные из switch, совпали с данными из этого case
break; // не обязательный оператор, он как бы относится к коду оператора case. но я его выделил отдельно специально чтоб обратить внимание. оператор break означает остановку. т.е. дальше искать совпадения мы не будем. если оператор не указать, то будут проверены все предложенные варианты.

Default: // default - это действия по умолчанию, т.е. те действия которые мы выполним если не будет найден искомый оператор case
код; // код который будет выполнятся
break;
}

Следует заметить что операторов case в одной конструкции switch case может быть бесконечно много, а может и не быть совсем, например только default (Но так делать смысла нет, но все же чтоб вы знали).

Теперь разберем сам код исполняющего скрипта:
Код: if(!defined("DATALIFEENGINE")){ //условный оператор, проверяет как мы подключились к скрипту. не взломщики ли мы:) Это присуще всем файлам в движке DLE
die("Hacking attempt!"); // die останавливает работу скрипта, и выводит сообщение из скобок. там обычно указывают причину остановки. в данном случае скипт остановится в случае подозрения на взлом
}

$url=$_SERVER["REQUEST_URI"]; // переменной $url присваиваем значение текущего адреса страницы без домена. его содержит переменная окружения REQUEST_URI. обратиться к ней мы могли бы и так как я писал в уроке, там описывается универсальный вариант, если мы не знаем чему так сказать эта переменная принадлежит. все глобальные (доступные в любом месте сценария без объявления и присвоения значений) переменные есть элементы глобальных массивов. в данном случае это элемент ассоциативного $_SERVER, к нему мы и обращаемся.

switch ($url) { // будем искать нужное выражение (в данном случае выводящее нужный блок) для текущего урла
case "": // в одинарных кавычках следует записать урл адрес страницы, без домена. т.к. в переменной $url так же содержится адрес без домена, чтобы совпадение вообще могла быть возможным.
$tpl->load_template(""); // это обращение к объекту класса. про классы я не писал ибо это очень очень много и всего я сам не знаю. $tpl - это объект стандартного класса DLE для работы с шаблонами (шаблонизатора). вообще классы это как бы набор функций, и их смысл примерно тот же, только больше возможностей. load_template загружает файл шаблона. он должен быть.tpl формата. В данном случае мы его немного обманули, там у нас не шаблон а код нашего меню:) в кавычки надо указать путь к файлу.tpl относительно корневой папки шаблона сайта
$tpl->compile("menu"); // compile обрабатывает наш файл загруженный через load_template. в скобках по всей видимости указывается его идентификатор, я точно сам не знаю. но обычно он совпадает с название модуля или файла шаблона.
break; // останавливаем поиск, ведь мы уже нашли что нам надо.

Default: // меню для всех остальных страниц сайта, не указанных в операторах case
$tpl->load_template("");
$tpl->compile("menu");
break;
}

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

Теперь файл админки (он посложнее, и тут я применял несколько более широкий функционал PHP, нежели описано в мануале). В админке мы можем редактировать файл модуля menu.php. Сделал я это просто для удобства.

Смысл работы. У нас есть хтмл форма. Данные из форм получаем методом POST. Есть два метода POST и GET. POST это значит что данные будут передаваться как бы скрыто, а GET через адресную строку. Например адрес админки /admin.php?mod=menu мы файлу admin.php методом GET передали значение переменной mod. Теперь переменная mod равняется menu и движок загрузил нам необходимую страницу. GET используется для передачи вот таких коротких незначительных данных. А для передачи файлов, ПАРОЛЕЙ, текста и т.д. используется POST.

Рассмотрим форму. У нас есть текстовая область, туда мы вначале загружаем содержимое из файла /modules/menu.php, а потом при нажатии кнопки отправляем содержимое области, скрипту который перезапишет это все в тот же файл /modules/menu.php. Так же в форме есть независимый переключатель. Если стоит галочка, то он передаст скрипту переменную is со значением yes (name=is value=yes) имя переменной и значение произвольны. Для нас главное чтоб переменная была передана, т.е. существовала. С помощью нее скрипт будет знать что ему делать.

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

Сам код:
Код: if(! defined("DATALIFEENGINE")) { // см. выше
die("Hacking attempt!");
}

echoheader("menu", "Управление динамическим меню"); // тоже стандартный "набор" DLE. выводит на экран шапку админки, в скобках указывается имя файла модуля и описание (по всей видимости для себя, т.к. нигде не выводится)

// начинается сам "рабочий код"

if (!isset($_POST["is"])) { // функция isset() проверяет существование чего либо. а восклицательный знак означает "не". т.е. прочитать код можно так "если переменная is НЕ передана, то.." $_POST это глобальный массив. в не содержатся переменные принятые методом POST

$file_prog = fopen (ROOT_DIR . "/engine/modules/menu.php", "r+") or die ("не открывается файл"); // функция fopen() открывает файл, просто открывает, ей мы указываем путь к файлу (ROOT_DIR . "/engine/modules/menu.php") и права доступа к этому файлу (r+). в данном случае нам нужно файл только прочитать. но r+ позволяет большее. кстати ROOT_DIR . это премудрости движка, если вы будите писать просто скрипт, не для движков, то это не нужно, нужен только путь в кавычках. or die означает "если ошибка"

while (!feof($file_prog)) { // вот и пригодился нам цикл с условием, за который говорила Innulia)) суть его в том что код будет выполняться пока условие верно. feof() проверяет достигнут ли конец файла. этой функции мы передаем переменную содержащую идентификатор самого файла (что он открыт, как открыт, путь к нему. все это содержит теперь наше переменная когда мы ей присвоили значение функции fopen) Пока НЕ достигнут конец файла, мы продолжаем его считывать
$text_prog = $text_prog . fread ($file_prog,50); // в переменную $text_prog записываем содержимое файла. точка обозначает что к уже имеющемуся в $text_prog будет записано то что прочитает функция fread (читает файл, ей надо передать идентификатор файла и число символов которые на прочитать. мы читаем по 50 символов. можно было просто указать 9999999999999999999 и не париться с циклом, но вдруг у кого то будет содержимое файла еще больше. все надо делать еще и универсально, красиво).
}

$menu_1 = fopen (ROOT_DIR . "/engine/inc/menu_1.txt", "r"); // открываем файл, в котором содержаться пояснения в текстовых областях. в них есть php код. и чтоб он вывелся как есть, а не был выполнен, я его подгружаю как обычный текст из файла. можно было это выполнить и по другому. но это на мой взгляд проще
$menu_2 = fopen (ROOT_DIR . "/engine/inc/menu_2.txt", "r"); // аналогично
$menu_1 = fread ($menu_1,100); // читаем текст из файла. тут я уж знаю сколько там символов и цикла нам не нужно
$menu_2 = fread ($menu_2,100); // аналогично

// в переменную $forma_red записываем хтмл код нашей страницы со всеми формами и пояснениями. в двойные кавычки, т.к. в коде нам нудно вывести содержимое переменных $text_prog, $menu_1 и $menu_2

$forma_red = "










сохранить


Для присвоения блоков новым страницам, замените конструкцию вида:



конструкцией (а в дальнейшем просто добавляйте ниже между break; и default:):


где:


/mypage.html - адрес страницы (без доменного имени, т.е. полный урл выглядел бы так: http://my-domen.ru/mypage.html) которой мы присваиваем меню. Модуль будет работать для абсолютно любого урла, даже вида: /admin.php?mod=menu&mod=menu&mod=menu&mod=menu&mod=menu&%QR%QP%QPO%/


file.tpl - имя файла, содержимое блока которое должно будет выводиться на искомой странице. Предварительно, вы естественно должны этот файл создать. ВАЖНО - файл должен быть именно формата.tpl


строки $tpl->compile("menu");
break; оставить без изменений


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


*******************************


Для сохранения изменений поставьте флажок "сохранить" и нажмите "отправить". Без флажка "сохранить" изменения внесены не будут! После успешной отправки формы, файл модуля будет безвозвратно перезаписан - БУДЬТЕ ВНИМАТЕЛЬНЫ!


";

echo $forma_red; // выводим код на страницу
}

else { //если переменная is передана, т.е. форма заполнена, пользователь хочет изменить файл скрипта.
$text_prog = $_POST["phptext"]; // получаем новое содержание файла модуля из формы и записываем это в переменную
$s = fopen (ROOT_DIR . "/engine/modules/menu.php", "w") or die ("не открывается файл"); // опять открываем файл /engine/modules/menu.php, но только уже с другими правами. которые нам больше всего подходят для данных нужд
fwrite ($s, $text_prog); // функция fwrite() записывает информацию в файл. ей нужно передать идентификатор файла и саму информацию соответственно

echo "

вернуться назад

"; //выводим ссылку, для возвращения назад к редактированию
} // условный оператор закончился

echofooter(); // выводим футер админки

alexperec » 02 авг 2011, 07:49

P.S. Кто-нибудь может подумать что тут воды больше чем сути. но это не так. Эта вся вода для того что бы понять мотивацию все действий, чтоб вырисовывалась ясная картина. Опытный программист все поймет и без пояснений. А этот же урок "основы", для тех кто только начинает. Что бы все разложить по полочкам и проследить ход мыслей, понять от куда что взялось - надо писать все с самого начала, а не только готовый код.

Что то народ вялый, наверное жара утомляет

Пишите активнее - не стесняйтесь! Задавайте вопросы, приводите примеры своих попыток - будем вместе все разбирать, искать ошибки