Створіть динамічну RSS-стрічку за допомогою PHP і MySQL

Автор: | 20 мая, 2017
HostArmada - Affordable Cloud SSD Web Hosting

ПРИМІТКА: всюди, де ви бачите [url] вкажіть свій веб-сайт замість [url].

Усюди, де я дивлюся. Я можу знайти підручники, але рідко Вони сповнені. Навчальний посібник, яке я збираюся написати, має бути повним навчальним посібником. Звичайно, ви можете додати додаткові опції в сам файл RSS, але я хочу сказати, що він буде працювати для всіх, якщо будуть дотримані принципи, викладені тут. Без подальших затримок дозволяє відразу перейти в побудову динамічного RSS-каналу з використанням PHP і MySQL

Щоб почати наш RSS-фід на PHP, нам потрібно спочатку зробити одну невелику річ. Погляньте на свій файл .htaccess, який зазвичай знаходиться в кореневому каталозі веб-сервера. Це файл, який використовується для перезапису URL, 301 редиректів і т. Д. Кожен сервер Apache повинен мати його, тому шукайте його. Якщо ви використовуєте Dreamweaver, легко отримати файл, щоб створити його в менеджері сайту, тобто натиснути правою кнопкою миші і створити новий файл. Перейменуйте файл «.htaccess», а потім клацніть правою кнопкою миші на своєму новому створеному файлі і натисніть «Get». Знову ж таки, це тільки для користувачів Dreamweaver. Я роблю це більш складним, ніж повинно бути. Подивіться for.htaccess в корені вашого веб-сервера. Досить сказано

Як тільки у нас знайдений файл our.htaccess, нам потрібно внести зміни. Оскільки наш RSS-файл буде мати розширення PHP, тобто rss.php, а не тип xml. Нам потрібно .htaccess знати, що файли з shoule type.xml інтерпретуються як файли .php. Для цього ми вводимо таке в наш файл .htaccess:

AddType application / x-httpd-php.xml

Тепер, коли наш файл .htaccess готовий до роботи, нам потрібно почати писати PHP для нашого RSS-каналу. Наш файл буде розбитий на чотири розділи. Перший — це заголовок, який повідомляє браузеру, що файл має тип XML. Другий розділ — це глава нашого RSS-файлу. Це все, що ви можете зробити статичним про канал, тобто основну інформацію, пов'язану з RSS-каналом. Наші треті секції — це те, звідки вона стає відмінною. Ми створюємо з'єднання з базою даних і використовуємо його для створення нашого RSS-каналу. Потім нам потрібно перебрати всі елементи, які ми хочемо в нашій базі даних, і вивести їх як xml. Нарешті, наша четверта частина — це весь висновок, необхідний для закриття каналу. У ньому мало що крім декількох луна-команд, але це окремий розділ по-своєму.

Спочатку нам потрібно створити новий php-файл, я вирішив назвати мій rss.php, ви можете Назвіть своє, що хочете. Коли ми відкриємо наш файл, ми почнемо з нашого першого розділу:

<? Php

// Встановити заголовок XML для браузера

header (& # 39; Content-type: text / Xml & # 39;);

?>

Перш ніж що-небудь зробити, ми хочемо відправити повідомлення в браузер, який повідомляє, що він має справу з XML-файлом. Якщо ми не передали цю інформацію браузеру, наша динамічна RSS-стрічка не буде працювати. Як просто, як здається, це для нашої першої частини нашого RSS-файлу.

В наступному розділі ми повинні почати створювати структуру нашого XML-файла. Є кілька способів зробити це. Один з них — за допомогою команди echo. Інше — за допомогою змінних. Я використовував обидва методу і особисто віддаю перевагу змінний метод, оскільки він здається мені більш простим. Тому це метод, який я продемонструю. Ось наш код (він включає код з нашого першого розділу):

// Встановити заголовок XML для браузера

header (& # 39; Content-type: text / xml & # 39;);

// Створити інформацію про заголовку / каналі для RSS-каналу

$ output = & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

$ output. = & # 39; Опис вашого RSS-каналу & # 39 ;;

$ output. = & # 39; [url] & # 39 ;;

?>

Тут Що ми і зробили з другим розділом. Спочатку ми створили змінну $ output. Ми встановили його рівним. Однак, як тільки ми встановили значення, ми не Перезаписуємо його. Замість цього ми використовуємо оператор «. = », Що означає просто додавання до поточного значення. Наприклад, якщо ми говоримо, що $ some-variable = "рядок". Потім ми використовували наш оператор «. = »Для додавання значення, наприклад $ some-var. = «Like some var». Потім, якщо нам потрібно буде повторити нашу змінну $ some-variable, вона буде читати «рядок як деякий var». Ми беремо змінну і додаємо в неї все теги xml, щоб створити один безперервний XML-документ, що зберігається в одній змінній $ output. Ще одна річ, яку слід зазначити, це те, що для заголовка, опису і тегів посилань ви повинні додати інформацію про своїх сайтах. Хоча я не думаю, що хтось навмисно використовував би інформацію, яку я мав між тегами, легко забути про такі речі, тому я згадую про це.

Для нашого третього розділу ми перейдемо до м'яса І кістки нашого php згенерували RSS-сторінку. Ми збираємося підключитися до бази даних MySQL і отримати всю потрібну нам інформацію. Потім ми створимо окремі елементи XML для кожного нового запису або статті, які у нас є. Це все робиться, коли користувач звертається до сторінки RSS. Не раніше, ніж. Сторінка динамічна, а не статична. По суті, у нас немає RSS-сторінки, поки хто-небудь не звернеться до неї. Тепер перейдемо до коду:

// Встановити заголовок XML для браузера

заголовок (& # 39; Content-type: text / xml & # 39;);

// Створити заголовок / Інформація каналу для RSS-каналу

$ output = & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

$ Output. = & # 39; Your RSS Feed Description & # 39 ;;

$ output. = & # 39; [url] & # 39 ;;

// Окремі елементи нашого RSS-каналу

// Connect До бази даних і відображати кожен новий елемент в нашій стрічці

// З'єднання з БД

$ host = "localhost"; // Ім'я хоста

$ user = "cmsuser"; // Ім'я користувача для бази даних

$ pass = "mypass"; // Пароль для бази даних

$ db = "my_database"; // Ім'я бази даних

mysql_connect ($ host, $ user, $ pass);

mysql_select_db ($ db);

// Створити SQL-запит для нашого RSS-каналу

$ sql = "SELECT` title`,` link`, `description`,` date` FROM` articles`ORDER BY ` date` DESC LIMIT 0, 15 ";

$ result = Mysql_query ($ sql) або die ( «Запит не може бути виконаний»);

// Створити цикл для окремих елементів в секції RSS-елемента

while ($ row = mysql_fetch_array ($ Result))

{

$ output . = & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

$ output. = & # 39; & # 39; . $ Row [‘link’]. & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;. $ Row [‘description’]. & # 39; & # 39 ;;

$ output. = & # 39;

& # 39; . $ Row [‘date’]. & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

}

?>

Тепер багато чого сталося У цьому розділі, тому дозвольте мені спробувати і пояснити все ясно. Спочатку давайте почнемо з коментаря «Connect to DB». Тут нам потрібно підключитися до бази даних. Зазвичай я пишу функцію раніше і просто викликаю її, коли хочу підключитися до бази даних і запустити запит. Однак я не можу припустити, що ви вже написали одне з них, щоб ми могли написати його разом. Спочатку ми визначаємо змінні, які будуть містити необхідну інформацію для функцій «mysql_connect» і «mysql_select_db». Інформація, яка нам потрібна для зберігання, — це наше ім'я хоста, зазвичай це «localhost», наше ім'я користувача для бази даних, наш пароль і ім'я бази даних. Як тільки ми зберегли це, ми використовуємо його в функції «mysql_connect», яка використовується для встановлення з'єднання з базою даних mysql, після того як ми встановимо з'єднання, нам потрібно вибрати базу даних за допомогою оператора «mysql_select_db». Тепер, коли ми підключилися до нашої бази даних, давайте подивимося, як ми збираємося отримати потрібну нам інформацію.

Тепер, коли ми підключилися, ми повинні запустити запит, щоб отримати потрібну нам інформацію. Для прикладу я зробив кілька припущень, перший з яких полягає в тому, що ім'я бази даних є статтями і що воно містить чотири стовпці: `title`,` link`, `description`,` date` і що вони називаються такими, Я також обмежив результат до 16, використовуючи вираз «… LIMIT 0,15», що означає тільки відображення рядків від 0 до 15. ви можете встановити його на все, що ви хотіли б, або ви можете видалити його повністю і не мати обмежень на кількість записів у вашому RSS-каналі. Добре для невеликих сайтів, жахливо для великих. Використовуйте свій розсуд тут. Тепер, коли у нас є побудований запит, я хочу вказати на одну річ. Зазвичай ви бачите людей, що використовують оператор «SELECT * …» при виконанні запитів. Я не тільки думаю про його поганий практиці, а й про те, навіщо потрібна додаткова інформація, яка вам потрібна, займає більше часу і змушує ваш сайт працювати трохи повільніше. Тому я рекомендую, щоб при створенні ваших SQL-запитів ви неявно вказували, які поля ви хочете, а не використовуєте оператор SELECT * …. Тепер, коли у нас є запит, нам потрібно запустити його за допомогою команди «mysql_query» і передати результати в змінну, розумно відому як $ result. Якщо ви помітите, що після нашої інструкції «mysql_query ($ sql)» у мене є «або померти (…)». Те, що робить цей оператор, це те, що якщо є помилка, він вбиває запит і завершує функцію, а потім пересилає будь-яке повідомлення про помилку, яке ви ставите в дужки. Зручно для з'ясування, де щось може піти не так.

До сих пір ми підключалися до бази даних і запускали запит, виводячи результат в змінну $ result. Тепер ми повинні додати все це в акуратний маленький RSS-елемент. Щоб зробити це, нам необхідно створити цикл. Що наш цикл буде робити, це виконати наш запит поспіль за рядком і витягнути інформацію з кожного рядка і робити з нею все, що захочемо. В цьому випадку ми хочемо зберегти його. Для цього ми створюємо цикл while, який в основному читає, в той час як в нашій змінної результату залишаються рядки. Нам потрібно зробити будь-який код між дужками {…}. Є інші способи сформувати цей цикл, але на даний момент самим прямим методом є той, який я перерахував. Тепер, коли у нас є наші рядки в змінній $ row, нам потрібно додати їх у наш xml-файл. Для цього ми використовуємо нашого доброго друга «. = »І в основному додаємо інформацію для кожного елемента, який ми хочемо створити. Є ще багато тегів, які ви можете використовувати з вашим RSS-каналом. Я тільки вирішив використовувати «title», «link», «description», «pubDate», оскільки це було все, що я відчував, як мені було потрібно, і це не стаття про структуру RSS, а про те, як динамічно їх генерувати .

Ми виконали три з чотирьох наших кроків. Оскільки у нас є всі наші елементи, ми зробили це раніше з циклом while, який буде циклічно проходити через кожен результат в базі даних і додавати його в нашу змінну з відповідними тегами, нам потрібно завершити наш файл і відобразити його користувачеві, Для цього ми використовуємо наступного код:

// Встановити заголовок XML для браузера

заголовок (& # 39; Content-type: text / xml & # 39;);

// Створити Інформація про заголовку / каналі для RSS-каналу

$ output = & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

$ output. = & # 39; Опис вашого RSS-каналу & # 39 ;;

$ output. = & # 39; [url] & # 39 ;;

// Окремі елементи RSS-каналу

/ / Підключення до бази даних і відображення кожного нового елемента в нашій стрічці

// З'єднання з БД

$ host = "localhost"; // Ім'я хоста

$ user = "cmsuser"; // Ім'я користувача для бази даних

$ pass = "mypass"; // Пароль для бази даних

$ db = "my_database"; // Ім'я бази даних

mysql_connect ($ host, $ user, $ pass);

mysql_select_db ($ db);

// Створити SQL-запит для нашого RSS-каналу

$ sql = "SELECT` title`,` link`, `description`,` date` FROM` articles`ORDER BY ` date` DESC LIMIT 0, 15 ";

$ result = Mysql_query ($ sql) або die ( «Запит не може бути виконаний»);

// Створити цикл для окремих елементів в секції RSS-елемента

while ($ row = mysql_fetch_array ($ Result))

{

$ output . = & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

$ output. = & # 39; & # 39; . $ Row [‘link’]. & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;. $ Row [‘description’]. & # 39; & # 39 ;;

$ output. = & # 39;

& # 39; $ Row [‘date’]. & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

}

// Закрити канал RSS

$ output. = & # 39; & # 39 ;;

$ output. = & # 39; & # 39 ;;

// Показати висновок в браузері

echo $ output;

?>

Ось наш закінчений код у всій красі, все, що ми додали, — це ще два твердження, які додають нашу змінну з наступними тегами: ", Який закриває теги нашого каналу і RSS відповідно, які ми відкривали раніше. Після цього нам потрібно відобразити інформацію, щоб веб-браузер міг її бачити. для цього ми просто використовуємо команду echo і повторюємо нашу змінну $ output, яку ми використовували для зберігання всієї інформації раніше. Тепер ви повинні побачити , що я мав на увазі раніше в цій статті, коли я предпол ожив, що замість додавання інформації в змінну можна використовувати echo, але це крім точки. Важливим є те, що у вас є повністю працює RSS-канал, з яким вам ніколи більше не доведеться грати, якщо його тільки не додати для додаткової інформації. Сподіваюся, вам сподобається і ви можете використовувати його!


apache ofbiz hosting