Autor Zpráva
libis
Profil
Zdravím,

Mám výpis z db, tam mám například toto:

$text = "
Text je tady a pod tím bude něco.<br /><br /><br />

[galerie=25]


Dále si můžete stáhnout toto:
[download = 17]";

Použil jsem preg_replace_callback, ale vždy se mi zobrazí prvně ta funkce a až pak ten text. Potřebuju, aby to bylo souvisle vloženo do článku. Jak na to prosím?
Tori
Profil
libis:
Ukažte to nahrazování, chyba bude zřejmě v tom.
libis
Profil
$co = "/\\[galerie\\=([a-z0-9]+)\\]/i";
echo preg_replace_callback($co, 'ObsahGalerie', $result["text"]);
Tori
Profil
libis:
A funkce ObsahGalerie?
nemeja
Profil
Tori:
A funkce ObsahGalerie?
Tam to má jako text!
libis
Profil
jo aha...

function ObsahGalerie($galerie) {

$galerie[0] = str_replace("[","",$galerie[0]);
$galerie[0] = str_replace("]","",$galerie[0]);

$query = mysql_query("SELECT * FROM foto2 WHERE $galerie[0]");

if(mysql_num_rows($query) != 0 ){


while($result = mysql_fetch_array($query)){

ZobrazNahled($result["id"], $result["foto"], $result["nadpis"], $result["text"],$result["width"],$result["height"]);

}


}
}
Tori
Profil
libis:
Potřebujete udělat, aby funkce ZobrazNahled místo výpisu vracela to html, které vygeneruje, a aby tento výsledek vracela i funkce ObsahGalerie. Návratovou hodnotou z callbacku se nahrazuje hledaný řetězec. Pokud ten SQL dotaz vrací více řádků, postupně si výstup ukládejte do proměnné.
Jinak odstranila bych tu závislost mezi bbcode a strukturou databáze:
mysql_query("SELECT * FROM foto2 WHERE galerie = ".intval($galerie[1]));
Jo a hodnota ve sloupečku "galerie" může být jen číslo, nebo i písmena? (=buď místo intval použijte mysql_real_escape_string, nebo upravte regulár). (edit: Ta úprava reguláru není pro funkčnost nezbytná, spíš jen pro přehlednost, aby už z toho reguláru vyplývalo, že očekáváte jen číselné ID galerie. Ale je to můj subjektivní názor.)

nemeja:
Tam to má jako text!
preg_replace_callback
libis
Profil
jj, sql vrací více řádků. v sloupci galerie jsou pouze čísla. Jinak díky za reakci, nějak se tím zkusit prokousat.
libis
Profil
tak díky, tak jsem to přepsal na ten výpis a zobrazuje se to uprostřed článku, mohl bych se zeptat ještě na to, proč bych neměl mít tu závislost toho bbcode? Mám všechny stránky v db, a myslel jsem, že takto se vyřeší popřípadě vložení toho php kódu, o tom jsem právě moc článků nenašel, jak složit větší web :-/
Tori
Profil
libis:
proč bych neměl mít tu závislost toho bbcode?
A proč ano? Čemu pomůže, když ta závislost bude existovat, a čemu uškodí, když nebude? Pokud se rozhodnete přejmenovat sloupec v databázi, nebo přidat do bbcode další parametry pro zobrazení (třeba počet obrázků na stránku) - na kolika místech budete muset následně něco měnit? Když vám vyjde, že takto to je lepší, tak to tak nechte.

o tom jsem právě moc článků nenašel, jak složit větší web
Mluvíte ještě o způsobu poskládání výstupu (a šablonách), nebo spíš o celku (případně o volbě frameworku)? Zkuste to kdyžtak upřesnit v jiném vlákně, u té první možnosti by i mne zajímaly názory ostatních. :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0