Autor Zpráva
Werewolf
Profil
Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_?_?_?_?
Str4wberry
Profil
Co tím sleduješ?
Werewolf
Profil
Str4wberry
Co tím sleduješ?
Já? Nic. Jen jsem našel chybku.
Str4wberry
Profil
A jakou? Smím-li se zeptat.
Werewolf
Profil
Str4wberry:
Jakou?! Vodorovný posuvník? Nebo to tak má být?
Str4wberry
Profil
Pořád nerozumím.
Werewolf
Profil
Str4wberry:
Takže se opravdu má vodorovný posuvník zobrazovat?
Str4wberry
Profil
Kde? V čem? Za jakých okolností?
_es
Profil
Vo Firefoxe.
Str4wberry
Profil
Aha, on to ten Firefox neumí zalomit. Nicméně je to nereálný stav a akorát by to zbytečně dělilo (rozbíjelo) zdrojové kódy.
Str4wberry
Profil
Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_?_?_?_?

<?php echo "Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_Tohle_je_nejdělší_slovo_na_světě!_A_myslím_že_se_začně_zobrazovat_vodorovný_posuvník._Nebo_už_je_to_opravené?_?_?_?_? "?>
Str4wberry
Profil
Tak to možná vyřešilo „word-wrap: break-word“.
Chamurappi
Profil
Reaguji na Str4wberryho:
Řekl bych, že Firefox nepodporuje vlastnost word-wrap.
Podporuje ji ale Explorer, kde se teď zdrojové kódy nádherně zalamují :-)
Str4wberry
Profil
Chamurappi:
Řekl bych, že Firefox nepodporuje vlastnost word-wrap.
Tak se podívej teď, když tam není.
Chamurappi
Profil
Reaguji na Str4wberryho:
Aha, Firefox 3.5 už ji podporuje, nevšiml jsem si, že na to koukám ve 3.0.
Dobře. V tom případě je tedy nutné nastavit zpátky „word-wrap: normal“ pro <div class="pre">.

Ještě mě teď napadááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááááá, že tohle by mělo bez použití word-wrapu zlobit i jinde než v Mozille. Mozilla se u Werewolfova případu chová výrazně jinak než ostatní jen proto, že nezalamuje za vykřičníky.
Str4wberry
Profil
V tom případě je tedy nutné nastavit zpátky ‚word-wrap: normal‘ pro <div class="pre">.
Já si právě říkal, jestli to nebude potřeba u [pre] vrátit. Ale v mně dostupných Explorerech se to nezalamovalo.

Ještě mě teď napadá
Tak tohle zase zobrazuje posuvník ve skutečném prohlížeči, zřejmě nezná word-wrap. Ale je to celkem jedno, protože jde o vymyšlený problém.
DoubleThink
Profil *
Je vůbec nutné tohle řešit? Pokud si vzpomínám lámání slov na úrovni PHP tu bylo a bylo odstraněno, protože přinášelo víc škody než užitku.
Chci říct, že pokud si někdo takto [#1] vyhodí z kopýtka, většinou velmi rychle přiběhne moderátor a zažene mu chuť na podobné kousky.
Str4wberry
Profil
Ani moc ne, ale pokud to ta CSS vlastnost vyřeší, tak proč ne. Teoreticky by mohl problém nastat i nezáměrně, např. při vložení dlouhého odkazu na nízkém rozlišení.
Sandra S.
Profil *
Ahoj... a jak jste to tady to zalamovani vyresili, kdyz ne na urovni PHP? Ja mam podobny problem, ze kdyz mezi TD napisu napr. dlouhy vzkaz, tak se to nezalomi na sirku TD, ale deformuje mi to tabulku... pres PHP jsem dostala skript nize, ktery po urcitem poctu pismen vlozi mezeru, ale to mi zase rozbije ty odkazy...

Potrebovala bych nejak jednoduse vyresit, aby se mi to zalamovalo po urcitem poctu znaku, ale tak, aby mi i potom fungoval odkaz.

Dekuju

function rozdelit_dlouheslova($text,$pocet_pismen) {

$slovo = Split("[[:blank:]]+", $text);
	for($y=0;$y<Count($slovo);$y++):
		$slovo[$y] = Trim($slovo[$y]);
		if (Strlen($slovo[$y])<=$pocet_pismen):
			$celek .= $slovo[$y] . " ";
		else:
			$delit = Ceil(StrLen($slovo[$y])/$pocet_pismen);
			for($z=0;$z<$delit;$z++):
			$cast = Substr($slovo[$y], $z*$pocet_pismen, $pocet_pismen);
			$celek .= $cast . " ";
			endfor;
		endif;
	endfor;
	
$text = $celek;
return $text;
Chamurappi
Profil
Reaguji na Sandru S.:
jak jste to tady to zalamovani vyresili, kdyz ne na urovni PHP?
Máš to tu napsané. Když už se ptáš tady a nezaložila sis vlastní vlákno, mohla by sis alespoň přečíst zdejší příspěvky.
Sandra S.
Profil *
No ja to tu cetla, ale nikde to nevidim... priznam se, ze tomu zas tak nerozumim. Muzes mi to rict polopaticky?
Chamurappi
Profil
Reaguji na Sandru S.:
Viz [#12], jde o CSS vlastnost.
Str4wberry
Profil
Jinak ta funkce vypadala takto:
function wrapText($wrap, $text) {
    $exploded = explode(' ', $text);

    for ($i = 0; $i < sizeof($exploded); $i++) {
        if (!isset($foundTag)) $foundTag = 0;
        $str = $exploded[$i];

        if (substr_count($str, '<') > 0) $foundTag = 1;

        if (substr_count($str, '&#') > 0 or substr_count($str, '&quot;') > 0 or substr_count($str, '&amp;') > 0 or substr_count($str, '&lt;') > 0 or substr_count($str, '&gt;') > 0 or substr_count($str, "\n") > 0) $fnAmp = 1;
        else  $fnAmp = 0;

        if (strlen($str) > $wrap and ($foundTag == 1 or $fnAmp == 1)) {

            $chkPhr = '';
            $symbol = 0;
            $foundAmp = 0;

            for ($a = 0; $a < strlen($str); $a++) {

                if ($foundTag == 0 and $foundAmp == 0) $symbol++;

                if ($str[$a] == '<') {
                    $foundTag = 1;
                }
                if ($str[$a] == '>' and $foundTag == 1) {
                    $foundTag = 0;
                }

                if ($str[$a] == '&') {
                    $foundAmp = 1;
                }
                if ($str[$a] == ';' and $foundAmp == 1) {
                    $foundAmp = 0;
                }

                if ($str[$a] == ' ' or $str[$a] == "\n") {
                    $symbol = 0;
                }
                if ($symbol >= $wrap and $foundTag == 0 and $foundAmp == 0 and isset($str[$symbol + 1])) {
                    $chkPhr .= $str[$a].' ';
                    $symbol = 0;
                } else  $chkPhr .= $str[$a];

            } //a cycle

            if (strlen($chkPhr) > 0) $exploded[$i] = $chkPhr;

        } elseif (strlen($str) > $wrap) $exploded[$i] = chunk_split($exploded[$i], $wrap, ' ');
        else {
            if (substr_count($str, '<') > 0 or substr_count($str, '>') > 0) {
                for ($a = strlen($str) - 1; $a >= 0; $a--) {
                    if ($str[$a] == '>') {
                        $foundTag = 0;
                        break;
                    } elseif ($str[$a] == '<') {
                        $foundTag = 1;
                        break;
                    }
                }
            }
        }
    } //i cycle

    return implode(' ', $exploded);
    
    return $text;
}

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0