Autor Zpráva
Nookyn
Profil
Mam tu menší problém, mam návštěvní knihu a chtěl bych mít něco jako BB kódy... mam jeden PHP kód ale nefunguje tak jak má.

<?php
$data1=mysql_query("SELECT * FROM kniha ORDER BY id DESC LIMIT 20");
while ($data=mysql_fetch_array($data1)){

$data2[nick]=stripslashes($data[nick]);
$data2[web]=stripslashes($data[web]);
$data2[text]=stripslashes($data[text]);

$data3[text]=str_replace("","<strong>",$data2[text]);
$data3[text]=str_replace("","</strong>",$data2[text]);

echo("<div style='padding: 5px 0px 5px 0px; font-size: 15px; font-weight: bold; color: #0067A9;'>".$data2[nick]."</div>");
echo("<div style='padding: 5px 0px 5px 0px; font-size: 10px;'>#".$data[id]." ".$data2[web]."</div>");
echo("<div style='padding: 5px 5px 5px 5px; font-size: 12px;'>".$data3[text]."</div><br>");

}
?>


mam tam

$data3[text]=str_replace("","<strong>",$data2[text]);
$data3[text]=str_replace("","</strong>",$data2[text]);


a z toho funguje jen 2. řádka.

PLS help!
MCKAY
Profil
Nookyn:
Nepochopil jsem úplně význam, ty totiž tak nějak nahrazuješ nic něčím. Jinak mám také dojem, že pokud je jako index pole použit text, tak by měl být v tomto případě v uvozovkách (jestli to není třeba tím).
Joker
Profil
Nookyn:
Předpokládám to má být takhle:
$data3[text]=str_replace("[b]","<strong>",$data2[text]);
$data3[text]=str_replace("[/b]","</strong>",$data2[text]);

Problém je ve vyznačeném- na prvním řádku se do $data3[text] uloží výsledek prvního nahrazení, na druhém řádku se to přepíše výsledkem druhého nahrazení.

Další věc, pokud zapnete výjimky, nejspíš to bude házet něco o nedefinovaných indexech pole. To kvůli tomu, že řetězce mají být v uvozovkách: $data3["text"]

edit: Zdá se nějak nefunguje zrušení BBCode.
Radek9
Profil
Nookyn:
1) Pochybuji, že máte pro všechny indexy definovanou konstantu.
2) Nahrazujete nic něčím. To nejde. (Edit: aha, už chápu...) Udělejte to spíš takhle:
$data3["text"] = preg_replace("/\[[bB]\](.+?)\[\/[bB]\]/s", "<strong>\\1</strong>", $data2["text"]);
Nookyn
Profil
Na tak se omlouvam za 1. sem blbě napsal kód a za 2. je to vyřešené, sem si trochu hrál...
Udělal sem to pomocí funkce array().
MCKAY
Profil
Nookyn:
Nechceš se třeba alespoň pochlubit se svým výtvorem?
Radek9
Profil
Nookyn:
Udělal sem to pomocí funkce array()
Array není funkce, ale pole.
Nookyn
Profil
Zde je muj výtvor :-).

A pokud vim, tak array() je funkce která určuje obsah danýho pole :-P.
Radek9
Profil
Nookyn:
A pokud vim, tak array() je funkce která určuje obsah danýho pole :-P.
Ne. To, že tam jsou závorky z toho ještě nedělá funkci. Array je prostě array.
Nookyn
Profil
www.php.net/manual/en/function.array.php, a co je asi tuto ???
Alphard
Profil
Nookyn:
Když už odkazujete manuál, tak se do něj aspoň podívejte.

Note: array() is a language construct used to represent literal arrays, and not a regular function.
Nookyn
Profil
Ok :-D tak sry...

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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