Crie um feed RSS dinâmico com PHP e MySQL

NOTA: Onde quer que você veja [url] insira o url do seu site no lugar de [url].

Onde quer que eu olhe, posso encontrar tutoriais, mas raramente eles são completos. O tutorial que estou prestes a escrever pretende ser um tutorial completo. Claro que você pode adicionar mais opções ao próprio arquivo RSS, mas o que quero dizer com completo é que funcionará para qualquer pessoa se os princípios descritos aqui forem seguidos. Sem mais delongas, vamos começar a construir um feed RSS dinâmico usando PHP e MySQL

Para começar nosso feed RSS baseado em PHP, precisamos fazer uma pequena coisa primeiro. Dê uma olhada em seu arquivo “.htaccess” que geralmente está localizado no diretório raiz do servidor web. É o arquivo que é usado para fazer reescritas de URL, redirecionamentos 301, etc. Todo servidor Apache deve tê-lo, então procure por ele. Se você estiver usando o dreamweaver, uma forma fácil de obter o arquivo é criá-lo no gerenciador do site, ou seja, clicar com o botão direito e criar um novo arquivo. Renomeie o arquivo “.htaccess” e clique com o botão direito no arquivo recém-criado e clique em “Obter”. Novamente, isso é apenas para usuários do Dreamweaver. Estou tornando isso mais complicado do que deveria. Procure por.htaccess na raiz do seu servidor web. Bastante dito

Assim que encontrarmos nosso arquivo.htaccess, precisamos fazer uma alteração. Uma vez que nosso arquivo RSS será da extensão PHP, isto é, rss.php e não do tipo xml. Precisamos do.htaccess para saber que os arquivos com o shoule type.xml devem ser interpretados como arquivos.php. Para fazer isso, inserimos o seguinte em nosso arquivo.htaccess:

AddType application / x-httpd-php.xml

Com nosso arquivo.htaccess pronto, agora precisamos começar a escrever o PHP para nosso feed RSS. Nosso arquivo será dividido em quatro seções. O primeiro é o cabeçalho que informa ao navegador que o arquivo é do tipo XML. A segunda seção é o cabeçalho do nosso arquivo RSS. É tudo o que você pode tornar estático sobre o canal, ou seja, as informações básicas relacionadas ao feed RSS. Nossa terceira seção é onde fica bacana. Criamos uma conexão de banco de dados e a usamos para criar nosso feed RSS. Em seguida, precisamos percorrer cada um dos itens que queremos em nosso banco de dados e gerá-los como xml. Finalmente, nossa quarta parte é toda a saída necessária para fechar o canal. Há pouco além de alguns comandos de eco, mas é uma seção separada em sua própria maneira secundária.

Primeiro precisamos criar um novo arquivo php, eu escolhi nomear o meu como rss.php, você pode nomear o seu como quiser. Assim que tivermos nosso arquivo aberto, começamos com nossa primeira seção:

 

Antes de qualquer coisa, queremos enviar uma mensagem ao navegador informando que se trata de um arquivo XML. Se não passássemos essas informações para o navegador, nosso feed RSS dinâmico não funcionaria. Tão simples quanto parece, esta é a nossa primeira parte do nosso arquivo RSS.

Em nossa próxima seção, precisamos começar a criar a estrutura de nosso arquivo XML. Existem algumas maneiras de fazer isso. Um é com o comando echo. A outra é por meio do uso de variáveis. Eu usei ambos e pessoalmente prefiro o método variável, pois parece mais simples em minha mente. Portanto, esse é o método que demonstrarei. Aqui está nosso código (ele inclui o código de nossa primeira seção):

// Definir cabeçalho XML para navegador

cabeçalho (‘Content-type: text / xml’);

// Cria o título / informação do canal para RSS Feed

$ output = ”;

$ output. = ”;

$ output. = ”;

$ output. = ‘Descrição do seu feed RSS’;

$ output. = ‘ [url]’;

?>

Aqui está o que fizemos com a segunda seção. Primeiro criamos uma variável $ output. Nós o definimos igual a. No entanto, depois de definir o valor, não o substituímos. Em vez disso, usamos o operador “. =” Que significa simplesmente adicionar ao valor atual. Por exemplo, se dissermos que $ alguma-variável = “uma string”. Em seguida, usamos nosso operador “. =” Para adicionar ao valor, como $ some-var. = “Como algum var”. A seguir, se ecoássemos nossa variável $ alguma-variável, ela seria lida como “uma string como alguma var”. Estamos pegando nossa variável e adicionando todas as tags xml a ela para criar um documento xml contíguo armazenado em uma variável, $ output. Outra coisa a ser observada é que para o título, a descrição e as tags de link, você deve adicionar as informações do seu site. Embora eu não ache que ninguém usaria intencionalmente as informações que eu tinha entre as tags, é fácil esquecer pequenas coisas como essa, e é por isso que menciono isso.

Para a nossa terceira seção, vamos ao que interessa em nossa página RSS gerada por php. O que vamos fazer é nos conectar a um banco de dados MySQL e obter todas as informações pertinentes de que precisamos. Em seguida, vamos criar itens xml individuais para cada uma das novas entradas ou artigos que temos. Isso tudo é feito quando o usuário acessa a página RSS. Não antes. A página é dinâmica e não estática. Para fins e propósitos, não temos uma página RSS até que alguém a acesse. Agora vamos ao código:

// Definir cabeçalho XML para navegador

cabeçalho (‘Content-type: text / xml’);

// Cria o título / informação do canal para RSS Feed

$ output = ”;

$ output. = ”;

$ output. = ”;

$ output. = ‘Descrição do seu feed RSS’;

$ output. = ‘ [url]’;

// Itens individuais do nosso feed RSS

// Conecte-se a um banco de dados e exiba cada novo item em nosso feed

// Conectar ao banco de dados

$ host = “localhost”; // Nome do hospedeiro

$ user = “cmsuser”; // Nome de usuário para banco de dados

$ pass = “mypass”; // Senha para banco de dados

$ db = “meu_database”; // Nome do banco de dados

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

mysql_select_db ($ db);

// Criar consulta SQL para nosso feed RSS

$ sql = “SELECIONE` título`, `link`,` descrição`, `data` FROM` artigos` ORDEM POR `data` DESC LIMIT 0, 15”;

$ result = mysql_query ($ sql) or die (“A consulta não pôde ser executada”);

// Criar Loop para os elementos individuais na seção de item RSS

while ($ row = mysql_fetch_array ($ result))

{

$ output. = ”;

$ output. = ”;

$ output. = ”. $ row[‘link’]. ”;

$ output. = ”. $ row[‘description’]. ”;

$ output. = ‘

‘. $ row[‘date’]. ”;

$ output. = ”;

}

?>

Agora, muita coisa aconteceu nesta seção, então deixe-me tentar explicar tudo claramente. Primeiro, vamos começar com o comentário “Conectar ao banco de dados”. Aqui, precisamos nos conectar a um banco de dados. Normalmente, escrevo uma função anteriormente e simplesmente a chamo quando quero me conectar a um banco de dados e executar uma consulta. No entanto, não posso presumir que você já tenha escrito um, então iremos escrever um juntos. Primeiro definimos as variáveis ​​que irão hospedar as informações necessárias para as funções “mysql_connect” e “mysql_select_db”. A informação que precisamos armazenar é nosso nome de host, geralmente seu “localhost”, nosso nome de usuário para o banco de dados, nossa senha e o nome do banco de dados. Depois de salvá-lo, usamos na função “mysql_connect” que é usada para fazer uma conexão com um banco de dados mysql, uma vez que estabelecemos a conexão, precisamos selecionar um banco de dados com a instrução “mysql_select_db”. Agora que nos conectamos ao nosso banco de dados, vamos examinar como vamos conseguir as informações de que precisamos.

Agora que estamos conectados, devemos executar uma consulta para obter as informações de que precisamos. Para o exemplo, fiz algumas suposições, a primeira sendo que o nome do banco de dados é artigos e que contém as quatro colunas: `título`,` link`, `descrição`,` data` e que eles são nomeados como tal . Também limitei o resultado a 16, usando a instrução “… LIMIT 0,15” que significa mostrar apenas as linhas de 0 a 15. Você pode definir como quiser ou pode removê-lo completamente e não ter limite de o número de entradas em seu feed RSS. Ok para sites pequenos, horrível para sites grandes. Use seu critério aqui. Agora que construímos a consulta, quero destacar uma coisa. Normalmente você vê pessoas usando a instrução “SELECT * …” quando executam consultas. Não só eu acho que é uma má prática, mas porque obter mais informações de que você precisa, leva mais tempo e faz seu site funcionar um pouco mais lento. Portanto, eu recomendo que, ao formar suas consultas sql, você indique implicitamente quais campos deseja, em vez de usar uma instrução “SELECT * …”. Agora que temos nossa consulta, precisamos executá-la usando o comando “mysql_query” e passar os resultados para uma variável, inteligentemente conhecida como $ result. Se você notar que após a nossa instrução “mysql_query ($ sql)” eu tenho “or die (…)”. O que essa instrução faz é, se houver um erro, ela elimina a consulta e encerra a função, em seguida, exibe qualquer mensagem de erro que você colocar entre colchetes. Útil para descobrir onde as coisas podem dar errado.

Até agora, conectamos a um banco de dados e executamos uma consulta gerando os resultados em uma variável, $ result. Agora precisamos colocar tudo isso em um pequeno item RSS organizado. Para fazer isso, precisamos criar um loop. O que nosso loop fará é percorrer nossa consulta linha por linha e extrair as informações de cada linha e fazer o que quisermos com elas. Neste caso, queremos armazená-lo. Para fazer isso, criamos um loop while que basicamente lê enquanto ainda existem linhas em nossa variável de resultado. Precisamos fazer qualquer código que esteja entre os colchetes {…}. Existem outras maneiras de formar este loop, mas por enquanto o método mais direto é o que listei. Agora que temos nossas linhas em uma variável $ row, precisamos adicioná-las ao nosso arquivo xml. Para fazer isso, usamos nosso bom amigo “. =” E basicamente adicionamos as informações de cada item que desejamos criar. Existem muitas outras tags que você pode usar com seu feed RSS. Eu só escolhi usar o “título”, “link”, “descrição”, “pubDate”, já que isso era tudo que eu precisava e este não é um artigo sobre a estrutura do RSS, mas como gerá-los dinamicamente.

Concluímos três de nossas quatro etapas. Uma vez que todos os nossos itens foram criados, fizemos isso anteriormente com o loop while que percorrerá cada resultado no banco de dados e o adicionará à nossa variável com as tags apropriadas, precisamos terminar nosso arquivo e exibi-lo ao usuário . Para fazer isso, usamos o seguinte código:

// Definir cabeçalho XML para navegador

cabeçalho (‘Content-type: text / xml’);

// Cria o título / informação do canal para RSS Feed

$ output = ”;

$ output. = ”;

$ output. = ”;

$ output. = ‘Descrição do seu feed RSS’;

$ output. = ‘ [url]’;

// Itens individuais do nosso feed RSS

// Conecte-se a um banco de dados e exiba cada novo item em nosso feed

// Conectar ao banco de dados

$ host = “localhost”; // Nome do hospedeiro

$ user = “cmsuser”; // Nome de usuário para banco de dados

$ pass = “mypass”; // Senha para banco de dados

$ db = “meu_database”; // Nome do banco de dados

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

mysql_select_db ($ db);

// Criar consulta SQL para nosso feed RSS

$ sql = “SELECIONE` título`, `link`,` descrição`, `data` FROM` artigos` ORDEM POR `data` DESC LIMIT 0, 15”;

$ result = mysql_query ($ sql) or die (“A consulta não pôde ser executada”);

// Criar Loop para os elementos individuais na seção de item RSS

while ($ row = mysql_fetch_array ($ result))

{

$ output. = ”;

$ output. = ”;

$ output. = ”. $ row[‘link’]. ”;

$ output. = ”. $ row[‘description’]. ”;

$ output. = ‘

‘. $ row[‘date’]. ”;

$ output. = ”;

}

// Fechar canal RSS

$ output. = ”;

$ output. = ”;

// Exibir a saída no navegador

echo $ output;

?>

Aqui está nosso código completo em toda a sua glória, tudo o que adicionamos são mais duas declarações que acrescentam nossa variável com as seguintes tags “” e “” que fecham nosso canal e tags RSS respectivamente, que abrimos anteriormente. Depois disso, precisamos exibir as informações para que o navegador da web possa ver. Para fazer isso, simplesmente usamos o comando echo e ecoamos nossa variável $ output que usamos para armazenar todas as informações anteriormente. Agora você deve ser capaz de ver o que eu quis dizer no início do artigo, quando sugeri que se poderia usar echo em vez de adicionar as informações a uma variável, mas isso não vem ao caso. O que importa agora é que você tem um feed RSS totalmente funcional, com o qual nunca mais terá que brincar, a menos que seja para adicionar mais informações. Espero que gostem e possam fazer um bom uso!

 

Você pode gostar também

More Similar Posts

Deixe um comentário

O seu endereço de e-mail não será publicado.

Preencha esse campo
Preencha esse campo
Digite um endereço de e-mail válido.