[ pakito @ 14.09.2012. 06:49 ] @
Potrebna mi je PHP funkcija koja će ispitiati da li string počinje velikim ili malim slovom; vidim da ima funkcija za pretvaranje malih slova u velika i obratno, ali nema ove koja meni treba! Ili je stvarno nema, ili ja ne vidim dobro!?
[ StaX_ @ 14.09.2012. 08:09 ] @
Nisam koristio funkciju, ali uz minut pretrage je nađoh.
http://php.net/manual/en/function.ctype-upper.php

Samo izdvoj prvo slovo stringa pa proveri, i to bi trebalo da je to
[ bjovke @ 26.09.2012. 20:24 ] @
Ne postoji takva funkcija, to moraš sam da napraviš. Evo jedno od rešenja:
Code:

if($string===ucfirst($string)) {
//.... prvo slovo je veliko
}
else {
//.... prvo slovo je malo
}
[ djordjevic_i @ 29.09.2012. 13:03 ] @
napravis niz, i ispitaj da li je prvi element niza malo ili veliko slovo... lako
[ maksvel @ 29.09.2012. 14:36 ] @
Ili se iskoristi regex, nešto kao...

if preg_match("^[A-Z].+", $string) then
//kod koji radi ako počinje velikim
[ dalibor991 @ 13.10.2012. 17:42 ] @
napravis niz, iskoristi str_split zatim ispitujes niz, tj prvi clan

Code:

<?php

$string = "test"; //string za koji se proverava da li je veliko ili malo slovo

$niz = str_split($string);
if ($niz[0] == strtoupper($niz[0])) {
echo "Jeste veliko slovo!";
}
else {
echo "Nije veliko slovo!";
}

?>
[ plus_minus @ 13.10.2012. 23:31 ] @
Citat:

pakito
ali nema ove koja meni treba!



Nema. Da ima tako za sve što nam padne na pamet, programiranje bi bilo podjedanko lako kao krečenje.

evo još jednog rešenja na brzaka.

Code (php):


function checkFirstLetter($word=array()){
     
          $f=null;
          if(!is_array($word))
          $word=explode(" ", $word);
          foreach($word as $v=>$t)
          $f.=($t[0]===ucfirst($t[0])) ?
          "Reč » <b>$t</b>\n":null;
          return $f;
     }

 


Pozivanje funkcije

Code (php):

echo checkFirstLetter( $tvojstring_ili_niz );
 
[ gotivac @ 14.10.2012. 20:40 ] @
A što svi razbijate string u niz?

Šta fali:

Code:

if (substr($string,0,1) == ucfirst(substr($string,0,1))) {
}
else {
}


?

[Ovu poruku je menjao gotivac dana 15.10.2012. u 11:57 GMT+1]
[ Nemke_BG @ 15.10.2012. 14:24 ] @
Kao sto je StaX_ napisao mozes da koristis ctype_upper koja postoji pa je lepo i iskoristi.

@dalibor991 & plus_minus

Vasi primeri funkcije nisu dobri jer koristite string kao niz a to moze da da nepredvidljive rezultate ako mora da se barata sa multibyte slovima.

@gotivac

I ti u svom primeru moras da koristis mb_ verzije funkcija za rad sa stringovima inace ti nece raditi taj if sa multibyte slovima.
[ plus_minus @ 16.10.2012. 10:09 ] @
Pa valjda je logično da za multibyte treba još koda.. :) .. Autor teme je lepo zamolio za funkciju. Na brzaka. I dobio je više njih.
Od nas je dosta, što se tiče primera i pisanja - on the fly... a on neka se igra dalje.

Osim toga, ako iskoristi i ctype_upper, moraće opet da dodaje još koda ili da pravi custom funkciju jer sve ctype funkcije, takođe, daju nepredvidive rezultate sa multibyte karakterima.
[ pakito @ 16.10.2012. 10:48 ] @
Citat:
 ... Autor teme je lepo zamolio za funkciju ...


Autor teme se svima od srca zahvaljuje!
Autora teme je najviše brinulo to da možda takva funkcija negde postoji, a da on, kao osvedočena šeprtlja, ne može da je nađe?
E, sad mu je lakše!
[ Nemke_BG @ 17.10.2012. 09:01 ] @
@ plus minus

nemoj pogresno da me shvatis, ja sam samo ukazao na gresku bez ikakve zadnje namere jer je ovo PHP forum gde se okupljaju ljudi kojima najcesce trebaju multi byte karakteri, tako da ne bi autor i svi ostali koji nalete na ovu temu u tom slucaju gubili zivce kao ja nekada, pitajuci se sta nije u redu sa pomenutim kodom.
[ plus_minus @ 17.10.2012. 17:52 ] @
Nisam te pogrešno shvatio, nemoj da se sekiraš. :)

Nego, sad i ti treba da podariš početak ili začetak još jednog custom rešenja i da se u upišeš u klub! :D

Inače, programer koji nije gubio živce nikada, .... nije programer. Tek treba da postane ili da - odustane.
[ kiklop74 @ 21.10.2012. 19:15 ] @
Code:

$string = 'Neki tekst';
//veliko prvo slovo
if (ctype_upper($string[0])) {
  //
}

//malo prvo slovo
if (ctype_lower($string[0])) {
  //
}