Autor Zpráva
perwin
Profil
Ahoj,
protřebuji vědět, jestli existuje v PHP nějaká neznámá proměnná. Myslím tím toto: v převodní tabulce převádím např.:
"<a href="aaaa.html">aaaa</a>" => "aaaa";
, ale protože se to vypisuje z DB a v DB je také bbbb, cccc, dddd,... tak abych nemusel také vypisovat:
'<a href="aaaa.html">aaaa.html</a>' => 'aaaa.html';
'<a href="bbbb.html">bbbb.html</a>' => 'bbbb.html';
'<a href="cccc.html">cccc.html</a>' => 'cccc.html';
'<a href="dddd.html">dddd.html</a>' => 'dddd.html';
...
Tak abych napsal něco jako:
'<a href="'.$neznamapromenna.'">'.$neznamapromenna.'</a>' => ''.$neznamapromenna.'';
Doufám, že jste mě pochopili správně...
Děkuji
Lupa
Profil
Neznáma premenná? Čudný výraz. Aj keď neviem načo myslíš...

'<a href="'.$neznamapromenna.'">'.$neznamapromenna.'</a>' => ''.$neznamapromenna.'';
Toto je ideálne riešenie
Joker
Profil
perwin:
Tak ten koncept vyrobit si $neco, abych pak mohl psát <a href="$neco.html">$neco</a> v PHP existuje a jsou to prostě klasické proměnné.
perwin
Profil
Joker:
Takže si prostě dám
<a href="'.$neco.'">'.$neco.'</a>
aniž bych definoval proměnnou $neco a bude to fungovat? Já si teda myslím, že nebude.

EDIT: V JS je např.: (.+) ...
GeneralDv
Profil
perwin:
Bude, ale když máš zaplý tak ti to hodí notice. Máš důvod nedefinovat proměnný?
Tori
Profil
perwin:
v převodní tabulce převádím např.:
"<a href="aaaa.html">aaaa</a>" => "aaaa";
, ale protože se to vypisuje z DB a v DB je také bbbb, cccc, dddd,... tak abych nemusel také vypisovat:
'<a href="aaaa.html">aaaa.html</a>' => 'aaaa.html';


V JS je např.: (.+) ...

Trochu se ztrácím: Máte
1. v databázi uložené URL, které chcete při výpisu z databáze obalit HTML odkazem? (pak hledáte jak číst z databáze), anebo
2. máte nějaké HTML odkazy, z nichž chcete vytáhnout URL, abyste ji mohl uložit do databáze? (hledáte regulární výraz).
Anebo 3. nevíte, jak napsat proměnnou, jejíž název je v jiné proměnné (proměnné proměnné)
perwin
Profil
Tori:
Tak jinak...
V DB mám nějaký text, ve kterém jsou tagy i <a href="text123.html">text123</a>, a já potřebuji, aby se mi při výpisu z toho text odstranil každy tag <a> a zůstalo tam jenom to text123. A zbavuju se toho tagu <a> pomocí převodní tabulky. Nojo, ale já nechci jenom tak napsat do převodu:
"<a href="text123.html">text123</a>" => "text123",
protože v textu z DB je i <a href="text456.html">text456</a>, <a href="text789.html">text789</a> a je zbytečné znovu a znovu vypisovat:
"<a href="text123.html">text123</a>" => "text123",
"<a href="text456.html">text456</a>" => "text456",
"<a href="text789.html">text789</a>" => "text789",
....
Tudíž potřebuji jenom jeden řádek do převodní tabulky, a to něco takového:
"<a href="textVSE.html">textVSE</a>" => "textVSE"
tedy textVSE bude: text123, text456, text789, a další...
Bude to taková neznámá hodnota, aby se všechny tagy <a> vymazali.
Už je to srozumitelné?
Tori
Profil
perwin:
Nemusíte používat převodní tabulku, stačí si vytáhnout obsah atributu href - buď kombinace substr+strpos, anebo regulár (flexibilnější, hodnota atributu může být v uvozovkách i v apostrofech).

Jinak ale mi to přijde koncepčně chybné - do databáze by se měla ukládat čistá data, tedy dva sloupce: URL a text odkazu. To, jestli je zobrazíte jako HTML nebo něco jiného, je už záležitost konkrétního použití. Takhle se omezujete o možnost použít (bez dalších úprav) údaje z DB v jiném kontextu než (X)HTML.
perwin
Profil
Tori:
Nojo, ale v DB nejsou uloženy jenom odkazy, ale jsou součástí textu... př.:
Byl nebyl Pepíček, a měl s sebou <a href="vdolecek.html">vdoleček</a>.
Kolem šel <a href="panKecal.html">pan Kecal</a>, a <a href="vdolecek.html">vdolka</a> mu sežral. 
Takhle nějak jsem to myslel.
Tori
Profil
Aha, z úvodního příspěvku jsem nevyrozuměla kontext.
strip_tags by mělo stačit, aby se odkazy změnily na obyčejný text (sežere všechno mezi < a >).
Pokud naopak budete chtít z textu vytáhnout odkazy na vdoleček apod., tak preg_match_all.
perwin
Profil
Tori:
Díky moc :-)

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: