NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Foreach pro každý řádek stringu

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Ilidanek33
Člen
Avatar
Ilidanek33:23.11.2016 11:53

Čaute všichni, chtěl bych se zeptat, jak mám projet každý řádek stringu tak, abych zachoval mezery, které jsou na začátku každého řádku. Ať to zkouším jakkoli, tak mi to zatím vždycky ty mezery smazalo..
Zkoušel jsem to splitnout přes \n ale nepomohlo to..
Předem díky za pomoc :-)

 
Odpovědět
23.11.2016 11:53
Avatar
Lava
Člen
Avatar
Lava:23.11.2016 12:48

A ako máš oddelené riadky v stringu? Odkiaľ sa berie ten string? Zo súboru, alebo si ho napísal priamo v PHP, či inak vygeneroval priamo v PHP? Existuje PHP_EOL, čo by malo značiť koniec riadku (EOL=End of line). Takže skús podľa toho ;) Alebo to skús aspoň lepšie opísať

Nahoru Odpovědět
23.11.2016 12:48
Aspartám, sacharín, to je môj vitamín
Avatar
Ilidanek33
Člen
Avatar
Odpovídá na Lava
Ilidanek33:23.11.2016 13:05

Promiň, vůbec mi nedošlo, že by byla tato informace potřebná.. String se bere z POSTu z <textarea>

 
Nahoru Odpovědět
23.11.2016 13:05
Avatar
Lava
Člen
Avatar
Lava:23.11.2016 13:24

Vyskúšaj, či ti to pôjde cez ten PHP_EOL, aj keď pochybujem. Proste vec z textarei je jeden dlhy string na jeden riadok. To, že ti to textarea podelí na riadky nemusí nič znamenať, totiž v textarei vpravo dole je taký "pipík", ktorý môžeš myšou dragnuť a dropnuť, čím zmeníš jej veľkosť a teda aj počet slov, ktoré sa ti vojdu na riadok. Vyskúšaj si to kľudne. Aj tu, kde píšeš príspevok je taký "pipík". Chyť ho myšou a ťahaj. Tu ide iba hore-dole, ale väčšinou sa dá posúvať aj doprava a doľava, čím zmenšuješ/zväčšuješ počet slov, ktoré ti vojdu na riadok.
Ako jediná a posledná nádej mi príde klávesa enter. Ak niekto v textarei odenteruje, tak to by mohlo byť to PHP_EOL... ale neručím za to, nikdy som niečo také nerobil a ani neskúšal. Vyskúšaj a uvidíš.

Nahoru Odpovědět
23.11.2016 13:24
Aspartám, sacharín, to je môj vitamín
Avatar
Ilidanek33
Člen
Avatar
Odpovídá na Lava
Ilidanek33:23.11.2016 13:30

Jak říkáš ten "pipík", tak tohleto nebude mít vliv, jelikož ve VB.NET/C# máš RichTextBox, kterému můžeš nastavit jakoukoli velikost a i když ten text se ti rozdělí na více řádků, tak v kódu ti to potom rozděluje dobře, jelikož v kódu hledáš znak nového řádku, čili \n\r.. Ale na ten PHP_EOL se podívám, takže děkuju

 
Nahoru Odpovědět
23.11.2016 13:30
Avatar
Ilidanek33
Člen
Avatar
Ilidanek33:23.11.2016 14:01

Tak PHP_EOL nepomohlo

 
Nahoru Odpovědět
23.11.2016 14:01
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá na Ilidanek33
Jan Bezdíček:23.11.2016 14:45

Me teda vzdy fungovalo

foreach(explode("\n", $_POST["textarea"]) as $line)
 
Nahoru Odpovědět
23.11.2016 14:45
Avatar
Ilidanek33
Člen
Avatar
Odpovídá na Jan Bezdíček
Ilidanek33:23.11.2016 14:49

Tak v tom případě to nechápu

 
Nahoru Odpovědět
23.11.2016 14:49
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá na Ilidanek33
Jan Bezdíček:23.11.2016 14:59

Co na tom nechapes ? funguje mi to ...

foreach(explode("\n", $_POST["textarea"]) as $line) {
        echo $line . "<br>";
}

PS: Samozrejme to funguje, pokud tam das entery ... pokud se ti to rozhazi na radky samo v zavislosti na sirce textarea, tak to nefunguje, protoze je to furt jeden radek

Editováno 23.11.2016 15:01
 
Nahoru Odpovědět
23.11.2016 14:59
Avatar
Lava
Člen
Avatar
Odpovídá na Jan Bezdíček
Lava:23.11.2016 15:07

Presne tak jak hutorím o pár príspevkov vyššie :D Textarea nie je nič iné ako inpu type="text" len je to krajšie zobrazené pre usera...

Nahoru Odpovědět
23.11.2016 15:07
Aspartám, sacharín, to je môj vitamín
Avatar
Lava
Člen
Avatar
Odpovídá na Ilidanek33
Lava:23.11.2016 15:09

Myslím, že VB.NET a PHP sú dve rozdielne veci a to isté textarea a rich text box, či ako si to nazval. Vizual bejzik som v živote nevidel, takže nemôežm porovnávať.

Nahoru Odpovědět
23.11.2016 15:09
Aspartám, sacharín, to je môj vitamín
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá na Lava
Jan Bezdíček:23.11.2016 15:09

No to neni uplne pravda :D v inputu type="text" neoddelis text pomoci enteru, ale potvrdis odeslani formulare. v Textarea ho oddelis, ale opravdu jen tam kde chces ... tzn. tam, kde das enter :D

 
Nahoru Odpovědět
23.11.2016 15:09
Avatar
Lava
Člen
Avatar
Odpovídá na Jan Bezdíček
Lava:23.11.2016 15:14

Áno, máš pravdu... na to som nepomyslel :D

Nahoru Odpovědět
23.11.2016 15:14
Aspartám, sacharín, to je môj vitamín
Avatar
Ilidanek33
Člen
Avatar
Odpovídá na Jan Bezdíček
Ilidanek33:23.11.2016 22:14

Nechápu to, že mi to nefunguje. Mám ten kód úplně stejný, ale i přesto to smaže mezery, které jsou na začátku řádku.

 
Nahoru Odpovědět
23.11.2016 22:14
Avatar
Lava
Člen
Avatar
Odpovídá na Ilidanek33
Lava:24.11.2016 7:48

A dávaš tam enter?

Nahoru Odpovědět
24.11.2016 7:48
Aspartám, sacharín, to je môj vitamín
Avatar
Ilidanek33
Člen
Avatar
Ilidanek33:24.11.2016 9:30

Ano.. Mě funguje loop přes řádky, mě jde o to, že mi to maže mezery co jsou na začátku každého řádku.

Editováno 24.11.2016 9:33
 
Nahoru Odpovědět
24.11.2016 9:30
Avatar
Ilidanek33
Člen
Avatar
Ilidanek33:24.11.2016 10:15

Pomohlo nahradit mezery za: &nbsp

$text = str_replace(" ", "&nbsp", $text);
Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
24.11.2016 10:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 17 zpráv z 17.