Wszystko ładnie pięknie, ale co zrobić w momencie, gdy np z takiego linku:
Kod
http://oglaszajtu.pl/ogloszenia/54/Dom Wieruszów, pow. 150m2
chcę usunąć "," i "." no i do tego spację zamienić na "-"
A od poczatku to tak:
1. Generuję sobie plik .xml kodem:
<?php
function lacz_bd()
{
$db = new mysqli('localhost', '_admin', 'pass', 'baza');
if (! $db)
return false;
$db->autocommit(TRUE);
return $db;
}
// dane do ramy pliku .xml
$kanalRSS = '<?xml version="1.0" encoding="ISO-8859-2"?>';
$kanalRSS .= '<trovit>';
$kanalRSS .= '<ad>';
// połaczenie z bazą danych
$db = lacz_bd();
//zapytanie określające dane ktore powinny byc pobrane z tabeli
// teraz pobierzmy wszystkie dane spelniajace warunek category_id=140
$zapytanie = "SELECT * FROM announcements WHERE category_id in (140,141,142,143,144)";
$wynik = $db->query($zapytanie);
$ile_znalezionych = $wynik->num_rows;
for ($i=0; $i <$ile_znalezionych; $i++)
{
$wiersz = $wynik->fetch_assoc();
//usuwamy znaczniki html ze wszystkich danych z tabeli
$wiersz['annoucement_content'] = strip_tags($wiersz['annoucement_content']); $string = $wiersz['annoucement_title'];
$pattern = '/ /';
$replacement = '-';
$wiersz['annoucement_title'] = preg_replace($pattern, $replacement, $string);
//tutaj generujemy zawartosc pliku .xml, ktora pobierana jest z tabeli announcements
$kanalRSS .= '<item>';
$kanalRSS .= '<id><![CDATA['.$wiersz['annoucement_id'].']]></id>';
$kanalRSS .= '<url><![CDATA[http://oglaszajtu.pl/ogloszenia/'.$wiersz['annoucement_id'].'/'.$wiersz['annoucement_title'].']]></url>';
$kanalRSS .= '<title><![CDATA['.$string.']]></title>';
$kanalRSS .= '<type><![CDATA['.$wiersz['annoucement_type'].']]></type>';
$kanalRSS .= '<content><![CDATA['.$wiersz['annoucement_content'].']]></content>';
$kanalRSS .= '<date><![CDATA['.$wiersz['annoucement_date_added'].']]></date>';
$kanalRSS .= '</item>';
}
$kanalRSS .= ' </ad>';
$kanalRSS .= '</trovit>';
//Zapisujemy wygenerowany kod XML do pliku moj_rss.xml
$fp = fopen('trovit_oglaszajtu.xml','w'); ?>
spacje zamieniłem już na "-" ale pozostaje sprawa wywalenia "," i ".".
Podpowie ktoś w którą stronę spojrzeć? bo próbowałem tak jak w manualu pokazują array(), ale wywala mi bład.
jak widać tutaj
Kod
$kanalRSS .= '<url><![CDATA[http://oglaszajtu.pl/ogloszenia/'.$wiersz['annoucement_id'].'/'.$wiersz['annoucement_title'].']]></url>';
$kanalRSS .= '<title><![CDATA['.$string.']]></title>';
dałem dwie $, które sa niemal tym samym, tyle tylko, że musiałem to tak zagmatwać, gdyż w linku ma usuwać pewne znaki i zamieniać, zas poniżej w title ma je zostawiać, a innego rozwiaznaia nie znalazłem/wymyśliłem.
A i jeszcze sprawa zamiany dużych liter na małe
<?php
//.....
//usuwamy znaczniki html ze wszystkich danych z tabeli
$wiersz['annoucement_content'] = strip_tags($wiersz['annoucement_content']); $string = $wiersz['annoucement_title'];
$pattern[0] = '/ /';
$pattern[1] = '/,/';
$pattern[2] = '/./';
$replacement[2] = '-';
$replacement[1] = '';
$replacement[0] = '';
$wiersz['annoucement_title'] = preg_replace($pattern, $replacement, $string);
?>
taki kodzik nie daje efektu, mało tego usuwa mi końcówkę adresu/urla.