Bom, fiquei com um tempo livre e pensei em fazer um simples sistema de noticias sem usar banco de dados, usando apenas arquivos txt.
Alguns viram meus outros tutoriais e devem ter percebido que eu programo usando POO(Programação Orientada a Objetos).
Se você pretender usar os códigos, certamente deverá fazer suas alterações.
Também comentei as linhas para um melhor entendimento para quem está aprendendo php agora.
Código:
Créditos:Código PHP:
<?php
class notice // Cria a classe
{
function showAll() // Cria a função showAll() que irar mostrar os resultados na página
{
$AllNotices = @fopen('ntice/notices/allNotices.txt', "r"); // Abre o arquivo onde fica armazenada a lista de noticias
$result = explode("|:|", fgets($AllNotices, filesize('ntice/notices/allNotices.txt'))); // Faz a separação das noticias
rsort($result); // Faz a lista de noticias se organizar por ordem em ordem descrescente em relação a data
for( $n=0; $n<count($result); ++$n ) // Conta todas as noticias
{
$separating = explode(":", $result[$n]); // Separa informações da noticia como Titulo data e arquivo referente a noticia
if(!empty($separating[0]))
{
echo 'Noticia: <a href="?notice='.md5(base64_decode($separating[0])).'&showNotice=TRUE">'.base64_decode($separating[1]).'</a> Data: '.base64_decode($separating[0]).'<br>'; // Exibe as noticias
}
}
fclose($AllNotices); // Fecha o arquivo
}
function showNotice($notice) // Função que mostra informações da noticia determinada
{
$showNotice = @fopen('ntice/notices/'.$notice.'.txt', "r") or die ('Erro: Noticia não encontrada'); // Abre o arquivo da noticia determinada se não existir ele retorna o erro.
while (!feof($showNotice)) // Ler o arquivo
{
$separating = explode(":", fgets($showNotice, filesize('ntice/notices/'.$notice.'.txt'))); // Separa informações da noticia como: Data, Titulo e o texto
echo 'Titulo:'.base64_decode($separating[0]).'</a><br /> <br /> <br /> Adicionada em:'.base64_decode($separating[1]).'<br /> <br /> <br />'.base64_decode($separating[2]).''; // Exibe o resultado
}
fclose($showNotice); // Fecha o arquivo
}
function addNotice() // Função que adiciona noticia
{
echo '<form action="?addNotice=TRUE&Reply=TRUE" method="post" name="noticeFrom">
Titulo:<br /><input name="title" type="text" class="inputbox" value="Aceita códigos HTML." maxlength="50" /> <br />
Notícia:<br /><textarea name="text" cols="80" rows="6" id="text">Aceita códigos HTML.</textarea><br />
<input type="submit" value="Adicionar" style="margin-top:10px;"/>
</form>'; // Formulario de adicionar noticia
if($_GET[Reply] == TRUE) // Caso o $_GET['Reply'] seja preenchido executa o código abaixo
{
$Reg=fopen('ntice/notices/allNotices.txt', 'a+'); // Abre o arquivo onde fica armazenada todas as noticias
fwrite($Reg, '|:|'.base64_encode(date("d-m-Y H:i:s")).':'.base64_encode($_POST[title])); // Escreve a noticia que foi adiciona com informações de data e titulo
fclose($Reg); // Fecha o arquivo
$Creat=fopen('ntice/notices/'.md5(date("d-m-Y H:i:s")).'.txt', 'x'); // Cria o arquivo da noticia que foi informada com o md5 de sua data.
fputs($Creat, base64_encode($_POST[title]).':'.base64_encode(date(" d-m-Y H:i:s")).':'.base64_encode($_POST[text])); // Escreve no arquivo da noticia as informações.
fclose($Creat); // Fecha o arquivo
echo'Noticia Adicionada com sucesso!'; // Retorna mensagem de sucesso
}
}
function __construct() // Função que carrega todo código
{
if(empty($_GET['showNotice']) && empty($_GET['addNotice'])) // Caso nenhum $_GET seja preenchido mostra a lista de noticias
{
$this->showAll(); // Carrega a função showAll()
}
elseif($_GET['showNotice'] == TRUE) // Se o $_GET['showNotice'] for igual a TRUE ele exibe a noticia que foi escolhida
{
$this->showNotice($_GET[notice]); // Carrega a função showNotice() pegando o $_GET da noticia que foi escolhida
}
else // Caso nenhuma condição acima seja verdadeira executa o seguinte código
{
$this->addNotice(); // Executa a função addNotice()
}
echo '<br /><a href="?addNotice=TRUE">Adicionar noticias</a>'; // Link da página de adicionar noticias
}
}
new notice(); // Faz a execução do código
?>
14biss
Última edição por 14biss; 30-11-2010 às 10:22 PM.
break $this->Fuck();
Impressionante , ainda não cheguei a estudar POO , mais irei atras...
Utilizar classes e functions é otimo ,parabens!
Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)
Marcadores