Stránka 1 z 1

[PHP] substr - Co dělám špatně?

Napsal: 01 dub 2014 14:30
od pixeneceeeeq
Ahoj, prosim Vás mám takovou pro mě k nepochopení věc. Potřebuji vypisovat určité texty, jenže potřebuji aby bylo omezeno jen na 40 znaků v zobrazení. No jaksi se mě to nedaří rozchodit a stále mě tam skáče výpis celého textu. Tak se chci zeptat šikovnějších co zde dělám špatně.

Kód: Vybrat vše

if($misc['name'] == (substr($misc['name'],0,40))){
            $output .= "{$server['s']['name']}"; 
          }


Díky za případnou pomoc.

Re: [PHP] substr - Co dělám špatně?

Napsal: 01 dub 2014 15:06
od Kim Spotcom
Pro mě je taky ta ukázka k nepochopení. na základě toho, jestli nějaký string A mé délku 40, nějakému jinému stringu B přilepíš string C.

Jdu na čerstvý vzduch, je tu přezávorkováno a přeuvozovkováno.

O funkci strlen jsi slyšel?

2) Doporučuji používat unicode varianty funkcí pro řetězce (mb_strlen, substr, replace atd), , zkus napřiklad strlen('ž') a mb_strlen('ž')

Re: [PHP] substr - Co dělám špatně?  Vyřešeno

Napsal: 01 dub 2014 15:14
od honzaik
funkce substr ti vrátí ten string to znamená že ho můžeš dát do proměnné nebo prostě funkci (např echo nebo jiné, ano echo neni typická fce)

ty nejdřív porovnáváš pokud proměnná $misc["name"] je stejná jako substring o 40 znacích z té samé (pokud je menší než 40 tak ho to vratí celej (což by byla pravda). pokud ale $misc["name"] je delší než 40 tak to nikdy pravda nebude (logicky porovnáváš něco o 50 znacích např s 40).
dále nějak nechápu co děláš. pak přidáváš další uplne jinou proměnou $server.... do output.

napiš ve které je text který chce zkrátit.
každopádně to jde udělat takto $text = substr($text, 0, 40); (nejdříve se udělá substr a ten přepíše originální hodnotu.

Re: [PHP] substr - Co dělám špatně?

Napsal: 01 dub 2014 17:20
od pixeneceeeeq
Děkuji za vyčerpávající odpověď. Už jsem tomu přišel na zoubek, díky Tobě honzaik. :)