Archiwum tagów: php

Własny kanał RSS w PHP

Kolejny, programistyczny, wpis „ku pamięci”.

Poniższe rozwiązanie generuje prosty kanał RSS, który jest bezbłędnie interpretowany przez większość czytników (wliczając Google Reader).

Plik db.php przechowuje ustawienie dostępu do bazy MySQL.

[sourcecode language=”php”]

//db.php

[/sourcecode]

Plik rss.php jest odpowiedzialny za wygenerowanie odpowiedniego pliku XML – po zaimplementowaniu poniższego kodu wystarczy dodać http://www.twojastrona.pl/rss.php do czytnika.

[sourcecode language=”php”]

//rss.php
\r\n”;
$rss .= „\r\n”;
$rss .= „\r\n”;
$rss .= „Tytył\r\n”;
$rss .= „http://www.twojastrona.pl\r\n”;
$rss .= „Opis……\r\n”;
$rss .= „\r\n”;
$rss .= „Logo\r\n”;
$rss .= „http://www.twojastrona.pl\r\n”;
$rss .= „http://www.twojastrona.pl/logo.jpg\r\n”;
$rss .= „\r\n”;
echo $rss;
$db_query = ‚SELECT * FROM blog ORDER BY id DESC’;
mysql_query(‚SET character_set_connection=utf8’);
mysql_query(‚SET character_set_client=utf8’);
mysql_query(‚SET character_set_results=utf8’);
$db_wynik = mysql_query($db_query) or die(mysql_error());
while($row = mysql_fetch_array($db_wynik))
{
echo ‚
‚.$row[„tytul”].’ ‚.$row[„link”].’ ‚.$row[„wpis”].’
‚;
}
?>


[/sourcecode]

Uwaga: Powyższy kod jest strasznie prymitywny, ale … działa.

Na koniec polecam bardziej eleganckie (dość rozbudowana klasa obsługująca kanały RSS napisana w PHP) rozwiązanie znalezione w sieci: Link

PHP: sortowanie listy plików w katalogu po dacie

Natrafiłem ostatnio następujący problem: wypisać listę plików znajdujących się w podanym katalogu posortowaną według daty modyfikacji pliku.
Rozwiązanie nie jest może super eleganckie, ale działa i ktoś zainteresowany może to poprawić.

Kod znajduje się również: tu

[sourcecode language=”php”]
function Filename_Sort($Folder_Name)
{
$counter=0;
if ($FP = opendir($Folder_Name))
{
while (false !== ($current_file = readdir($FP)))
if (!is_dir($Folder_Name.’/’.$current_file.’/’))
{
// Getting the position of extension
$Ext_position=strrpos($current_file,’.’);
// checking if extension is present
if ($Ext_position!==false)
{
// not showing php files (you can add more conditions here or use glob instead opendir to get filenames
if(substr($current_file,$Ext_position+1)!=’php’)
{
//creating two arrays: array of filenames and array of file modification times – using filemtime function
$Current_file_date = date (‚y-m-d H:i’, filemtime($Folder_Name.’/’.$current_file));
$Filenames_Array[$counter]=$current_file;
$Dates_Array[$counter]=$Current_file_date;
$counter+=1;
}
}
}
closedir($FP);
}
else return false;
//sorting table of filenames
array_multisort($Dates_Array, SORT_DESC, SORT_STRING, $Filenames_Array);
$i=0;
while ($i < $counter) { //getting result on the screen as list of http links $current_file=$Filenames_Array[$i]; echo '‚.$Folder_Name.$current_file.’ – ‚.date (‚y-m-d H:i’, filemtime($Folder_Name.’/’.$current_file)).’
‚;
$i++;
}
}

$folder = ‚uploads/’;
Filename_Sort($folder);
[/sourcecode]