Page 1 of 1

[PHP] Nowa linia w tablicy

Posted: Wed May 27, 2015 4:52 pm
by Serpent
Jo, mam napisać metodę która ma justować tekst. Niestety mam problem z wywołaniem nowej linii w tekście.

Kod wygląda mniej więcej tak:

Code: Select all

 if ($counter < 1)
        {
            $result = 'Długość justowania musi być wartością większą od 0!';
        }
        else
        {
            while (strlen($string) > $str_cout)
            {
                    $result .= $string[$str_cout];
                    $str_cout += 1; 
                     
                    if ($str_cout % $counter === 0)
                    {
                        // tutaj pojawia się problem gdyż \n nie daje mi efektu nowej linii
                        $result .= "\n";                       
                    }                                
                
            }    
         }       
             
            return $result; // zwraca tablicę znaków
Rezultat

Code: Select all

Result: Gł upi eJu sto wan ieT eks tu
Wie ktoś jak to rozwiązać? ;/

Re: [PHP] Nowa linia w tablicy

Posted: Wed May 27, 2015 7:18 pm
by Gothuk
Jeżeli chcesz dodać nową linię parsowaną przez przeglądarkę to użyj html - tag "<br/>".
Jeżeli do pliku to wtedy \n albo \r\n.

Re: [PHP] Nowa linia w tablicy

Posted: Wed May 27, 2015 7:50 pm
by Serpent
Dobra ale jak ten tag </br> wrzucić w tablicę żeby to wszystko ładnie działało?

Wywołanie echo "<br />" przed returnem powoduje że cała strona zjeżdża mi w dół a nie taki ma być efekt.

Re: [PHP] Nowa linia w tablicy

Posted: Wed May 27, 2015 7:55 pm
by Gothuk

Code: Select all

                    if ($str_cout % $counter === 0)
                    {
                        // tutaj pojawia się problem gdyż \n nie daje mi efektu nowej linii
                        $result .= "\n";                       
                    }
->

Code: Select all

                    if ($str_cout % $counter === 0)
                    {
                        $result .= "<br />";                       
                    }

Re: [PHP] Nowa linia w tablicy

Posted: Wed May 27, 2015 7:58 pm
by Serpent
Result: Gł<br />upi<br />eJu<br />sto<br />wan<br />ieT<br />eks<br />tu

;/

Re: [PHP] Nowa linia w tablicy

Posted: Wed May 27, 2015 7:59 pm
by Gothuk
Jak to potem wyświetlasz?

Re: [PHP] Nowa linia w tablicy

Posted: Wed May 27, 2015 8:02 pm
by Serpent
Wszystko jest zbudowane na podstawie jakiegoś formularza który składa się z kilku plików:
https://github.com/by-examples/zad-stri ... ll/2/files

To jedno z zadań które zrobiłem.

Re: [PHP] Nowa linia w tablicy

Posted: Wed May 27, 2015 8:12 pm
by Gothuk
Nie znam symfony / ichniejszego twiga ale dokumentacja mówi wszystko -> http://twig.sensiolabs.org/doc/filters/raw.html

Ew. opcja pierwsza z użyciem http://twig.sensiolabs.org/doc/filters/nl2br.html

Re: [PHP] Nowa linia w tablicy

Posted: Wed May 27, 2015 8:34 pm
by Serpent
echo nl2br($result, false);

Faktycznie daje mi nową linię, niestety nad całym formularzem.

Zaś:
return nl2br($result, false);

Daje mi taki efekt: Result: ABCD<br> EFGH<br> IJKK<br>