Pereiti prie turinio

strlen() kiek simbolių


Rekomenduojami pranešimai

Gal galėtumėt pasakyti, kodėl šiuo atveju atsakymas bus 2 o ne 1?

 

$zodis = "š";

$simboliu_sk= strlen($zodis);

echo $zodis;

 

čia jau normaliai skaičiuoja, atsakymas 4. Kodėl lietuviškas raides skaičiuoja kaip už 2 simbolius?

 

$zodis = "mama";

$simboliu_sk= strlen($zodis);

echo $zodis;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Šitaip naudoti:

mb_strlen($zodis,'UTF-8');

 

strlen() skaičiuoja ne simbolių kiekį, o bitus.

Labai aiškus atsakymas, dėkuj, gal dar į šį klausimą turėtum atsakymą:

$žodis = "šuo";

if ($žodis[0] = "š") {

true;

} else {

false;

}

Visada bus false, bet jeigu imčiau antra raidę ir lyginčiau su "u" tai išvestų true...

Redagavo proof
Nuoroda į pranešimą
Dalintis kituose puslapiuose

if() sakinyje priskiri reikšmę, o ne lygini. Lyginimui reiktų naudoti du = simbolius arba tris :)

 

Šiek tiek daugiau info: http://stackoverflow.com/questions/80646/how-do-the-equality-double-equals-and-identity-triple-equals-comparis

Redagavo Satisfaction
Nuoroda į pranešimą
Dalintis kituose puslapiuose

if() sakinyje priskiri reikšmę, o ne lygini. Lyginimui reiktų naudoti du = simbolius arba tris :)

 

Šiek tiek daugiau info: http://stackoverflow.com/questions/80646/how-do-the-equality-double-equals-and-identity-triple-equals-comparis

čia netyčia greit berašydamas palikau klaidą, tarkim, kad lyginu, ir ant lietuviškų raidžių niekada neišveda true, kodėl ? :/ strlen() skaičiuoja kaip dvejetą, tai gal kažkokią simboliką reikia tikrinti, o ne š?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Kodėl? Beje atsakymas ir su mb_strlen() vistiek 2 :)

 

Paskaityk mb_strlen() dokumentaciją - http://php.net/manual/en/function.mb-strlen.php . Antras parametras nurodo kokia koduotė naudojama pirmam parametre. Jei lietuviškas raides koduoji su UTF-8 (geriausias variantas) tai funkcija atrodytu taip:

 

mb_strlen($zodis,'UTF-8');

 

Paprasta vidinė PHP koduotė naudoja vieną baitą vienam simboliui. Vienas baitas gali reprezentuoti 256 simbolius. Lietuviškos raidės netelpa į tokia mažą simbolių lentelę, todėl reikia naudoti kitą koduotę, pvz. UTF-8.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Viskas PHP paprastai skaičiuojama baitais.

Visur, kur žaidi su String'ais, stengiesi naudoti mb_* (multibyte) funkcijas.

 

Antram klausimui, žiūrėk į mb_substr().

Redagavo Satisfaction
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Labai aiškus atsakymas, dėkuj, gal dar į šį klausimą turėtum atsakymą:

$žodis = "šuo";

if ($žodis[0] = "š") {

true;

} else {

false;

}

Visada bus false, bet jeigu imčiau antra raidę ir lyginčiau su "u" tai išvestų true...

 

Tokiu atveju geriausias variantas yra:

 

$zodis="šuo";

if(mb_substr($zodis,0,1)=="š")

{

echo "Taip";

}

else

{

echo "Ne";

}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tokiu atveju geriausias variantas yra:

 

$zodis="šuo";

if(mb_substr($zodis,0,1)=="š")

{

echo "Taip";

}

else

{

echo "Ne";

}

Puikus variantas kai žinomas žodis, bet jeigu žodis neaišku iš kiek simbolių bus ir kurios raidės reikės, tai šiek tiek kėbliau :) prieš tai dariau taip: suskaičiavau simbolius tada padariau for ciklą kad suktūsi tiek kartų kiek simbolių ir ėmiau kiekvieną raidę "zodis[$i]" atskirai, tik vat susidūriau su problema, kad taip lietuviškos raidės nenuskaitysi :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Puikus variantas kai žinomas žodis, bet jeigu žodis neaišku iš kiek simbolių bus ir kurios raidės reikės, tai šiek tiek kėbliau :) prieš tai dariau taip: suskaičiavau simbolius tada padariau for ciklą kad suktūsi tiek kartų kiek simbolių ir ėmiau kiekvieną raidę "zodis[$i]" atskirai, tik vat susidūriau su problema, kad taip lietuviškos raidės nenuskaitysi :)

 

Jeigu ne paslaptis, koks tikslas to kodo?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

As taip daryciau

 

<?php
$input = 'šuo';
$result = preg_match('/šuo/', $input) ? 'Yes' : 'No';
echo $result;

//jei reiksmiu daug
$big_input = array('šuo', 'katė', 'papūga');
$result = in_array('kate', $big_input) ? 'Yes' : 'No';
echo $result;
?>

 

įvesto žodžio kiekvieną raidę atskirai paimti :)

 

PHP nera grieztai tipizuota kalba - viskas yra string.

 

<?php
$input = 'suo';
echo $input[0].$input[1].$input[2];
?>

Redagavo apieviska
Nuoroda į pranešimą
Dalintis kituose puslapiuose

As taip daryciau

 

<?php
$input = 'šuo';
$result = preg_match('/šuo/', $input) ? 'Yes' : 'No';
echo $result;

//jei reiksmiu daug
$big_input = array('šuo', 'katė', 'papūga');
$result = in_array('kate', $big_input) ? 'Yes' : 'No';
echo $result;
?>

 

Aš irgi su masyvu norėjau daryti, tik nežinau kaip įvesto žodžio reikia atskirti kiekvieną simbolį. Realiai tai

$zodis = "abc";

echo $zodis[0]; //BUS a

echo $zodis[1]; //BUS b

echo $zodis[2]; //BUS c

 

o jeigu lietuvišką raidę taip imi tai išveda klaustuką :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš irgi su masyvu norėjau daryti, tik nežinau kaip įvesto žodžio reikia atskirti kiekvieną simbolį. Realiai tai

$zodis = "abc";

echo $zodis[0]; //BUS a

echo $zodis[1]; //BUS b

echo $zodis[2]; //BUS c

 

o jeigu lietuvišką raidę taip imi tai išveda klaustuką :)

 

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

 

http://apieviska.info/kaip-pakeisti-tinklapio-saito-koduote/

Redagavo apieviska
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Beabejo to nepamiršau.

ctrl+u -> ctrl+a -> ctrl+c -> ctrl+v cia arba netikiu

 

$zodis = "žvaigždė";
$koduote = "UTF-8";
$ilgis = mb_strlen($zodis, $koduote);
for($i=0;$i<$ilgis;$i++){
echo "<br/>".mb_substr($zodis,$i,1,$koduote);
}

 

Pakankamai paprasta viskas.

Humoristas

Redagavo apieviska
Nuoroda į pranešimą
Dalintis kituose puslapiuose

įvesto žodžio kiekvieną raidę atskirai paimti :)

 

<?php 
$string = 'ėį9ūėę9šėęūėęč0įųęųėū9į';

preg_match_all ( '/./u', $string, $m );

echo '<pre>';
print_r ($m [ 0 ]) ;
echo '</pre>';
?>

 

Array
(
   [0] => ė
   [1] => į
   [2] => 9
   [3] => ū
   [4] => ė
   [5] => ę
   [6] => 9
   [7] => š
   [8] => ė
   [9] => ę
   [10] => ū
   [11] => ė
   [12] => ę
   [13] => č
   [14] => 0
   [15] => į
   [16] => ų
   [17] => ę
   [18] => ų
   [19] => ė
   [20] => ū
   [21] => 9
   [22] => į
)

 

 

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...