Autor Zpráva
Suta
Profil
Mám tento problém:
do formuláře napíšu text příspěvku, kde jsou i tagy (např.<b>,<i> atd.) a zároveň před uložením doplním konce řádků za tagy <br> atd. No a nakonec výsledek uložím do databáze.

Když pak příspěvek z databáze volám a zobrazuji, vše je tak, jak má. Co mělo tag <b> je tučné.. atd.

První otázka:
Problém je, když příspěvek edituju. Jelikož je už v databázi s těmi tagy, zobrazí se tagy i ve formuláři pro editaci. Jak na to?

Druhá otázka:
Jak se "správně" řeší rozdělování dlouhých slov? Můžu to nastavit natvrdo, což používám, např. aby mi delší slovo než je 25 znaků nerozhodilo design, tak vše co je delší 25 znaků tak rozdělím... Jak ale na odkaz www ?
Tedy: jak z odkazu, který mám v databázi rozdělený a vypadá třeba nějak takto (s tou mezerou): "www.nejaka.dlouha.st ranka.cz" udělat zpět odkaz, který bude po vytištění na stránku opět fungovat ?
error414
Profil
Suta


První otázka:
Pouzit texy nebo editovat s tagy.

Druhá otázka:
to dela texy samo
Suta
Profil
"texy"... O co se jedná?
error414
Profil
http://www.google.com/search?hl=cs&q=texy&btnG=Vyhledat+Googlem&lr=
http://www.texy.info/cz/
Suta
Profil
Vypadá to zajímavě, dík. Jen to dle rychlého pročtení základních informací znamená přejít na nový způsob programování stránek, na což teď nemám dostatek času. Myslím, že by to nebylo jen tak brzy.
error414
Profil
implementace je rychla a bezproblemova, jen prozenes vstup touto tridou a ona se o vse postara.
uspesne ji provozuji na svem blogu.

btw: byla by reklama kdybych ho tu uvedl?
Suta
Profil
Spíše jestli by mi někdo poradil s regulárním výrazem, který udělá toto:

1.) Vezme tento přesný řetězec:
<a href='www.nejaka_dlouhatanska_adresa.cz'>www.nejaka_dlouhatanska_adresa.cz</a>

2.) Jelikož je adresa dlouhá, tak ji pro výstup na stránku rozdělí, ale v odkazu <a href="..."> ji nechá celou. Výsledkem tedy bude tento řetězec:
<a href='www.nejaka_dlouhatanska_adresa.cz'>www.nejaka_dlou hatanska_adresa.cz</a> (tedy mezeru přidá jen do výstupu na stránce)

Moje bedna na to nestačí. Pokud někdo ví, budu moc vděčný.
Suta
Profil


<?
$text = "Ahoj. <a href=http://www.nejaka-hodne-dlouha-adresa-nejaka-hodne-dlouha-adresa. cz>www.nejaka-hodne-dlouha-adresa-nejaka-hodne-dlouha-adresa.cz</a> a konec. No a ještě abych nezapomněl,tady je ještě jedna: <a href=http://mojedruhawwwadresa.com>mojedruhaadresa.com</a> a ne abys na to zapomněl :) Měj se, tvoje Anička.";

while (StrStr($text, "<a href=") != false)
{
// zjistím si celkový počet znaků
$celkovy_pocet_znaku = StrLen ($text);

//načtu vše od prvního výskytu <a href= do konce
$retezec_od_a_href = StrStr ($text, "<a href=");
$pocet_znaku_od_a_href = StrLen ($retezec_od_a_href);

//co je před a href načtu do $kompletni_kod
$vse_pred_a_href = SubStr ($text, 0, $celkovy_pocet_znaku-$pocet_znaku_od_a_href);
$kompletni_kod = $kompletni_kod. WordWrap($vse_pred_a_href, 40, " ", 1);

//načtu vše od prvního výskytu ukončovacího tagu >
$retezec_od_vetsitka = StrStr ($retezec_od_a_href, ">");
$pocet_znaku_od_vetsitka = StrLen ($retezec_od_vetsitka);
$retezec_za_vetsitkem = SubStr ($retezec_od_vetsitka, 1, $pocet_znaku_od_vetsitka-1);
$pocet_znaku_za_vetsitkem = StrLen ($retezec_za_vetsitkem);

//k prozatimnímu kompletnímu kódu přidám nerozdělený odkaz uvnitř a href
$kompletni_kod_2 = SubStr ($retezec_od_a_href, 0, $pocet_znaku_od_a_href - $pocet_znaku_za_vetsitkem);
$kompletni_kod = $kompletni_kod. $kompletni_kod_2;

$retezec_od_ukonceneho_hrefu = StrStr ($retezec_za_vetsitkem, "</a>");
$pocet_znaku_od_ukonceneho_hrefu = StrLen ($retezec_od_ukonceneho_hrefu);
$cista_adresa = SubStr ($retezec_za_vetsitkem, 0, $pocet_znaku_za_vetsitkem - $pocet_znaku_od_ukonceneho_hrefu);
$kompletni_kod = $kompletni_kod. WordWrap($cista_adresa, 40, " ", 1)."</a>";
$text = $retezec_od_ukonceneho_hrefu;
}
$kompletni_kod = $kompletni_kod. WordWrap($retezec_od_ukonceneho_hrefu, 40, " ", 1); //kdyby byl na konci ještě nějaký text

?>



Je to sice patlanina, ale funguje to jistě :) prosím, nekamenujte mne, dělal jsem to čtyři hodiny :)
krteczek
Profil
no možná je to zhůvěřilost, ale co kdyby upravoval text až při zobrazování, nebo funkci která vynechá všechny odkazy z toho rozděleni?

Něco mne napadlo, výsledek je níže.
celá funkce vychází z předpokladu, že zásadně píšu odkazy tímto způsobem:
<a href="nějaký.odkaz/někam.a-je-jedno-kam" title="popis odkazu">odkaz</a>
prostě href=" píšu zásadně bez mezer a první mezera je tím pádem až za uzavírací uvozovkou před title

funktion rozdel_text($text, $max_pocet_pismen=25)
{
$vystup='';
//řetězec se hodí do pole podle mezer
$slova=explode(" ",$text);
//spočítáme počet slov
$pocet=count($slova);
for($i=1;$i<=$pocet;$i++)
{
//pokud slovo neobsahuje řetězec href=" běž dál
if(!strpos($slova[$i],'href="'))
{
//pokud je slovo delší než maximální délka slova tak ho rozděl
if((strlen($slova[$i]))>$max_pocet_pismen)
{
$slova[$i]=wordwrap($slova[$i], $max_pocet_pismen, " ", 1);
}
}
//a opět celý text poskládáme
$vystup.=$slova[$i]." ";
}
//vrátíme upravený text
return $vystup;
}

Já jsem tohle čtyři hodiny nedělal, ani jsem to nezkoušel, ale logicky by to fungovat mělo
krteczek
Toto téma je uzamčeno. Odpověď nelze zaslat.

0