Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zaiana stringów
Forum PHP.pl > Forum > PHP
Black-Berry
Mógłby ktoś podpowiedzieć funkcję która zamienia stringi:
  • 'Db_Driver' => 'dbDriver';
  • 'Settings' => 'settings';
  • 'System_Driver_Abstract' => 'systemDriverAbstract'
  • 'small_case_value' => 'smallCaseValue';
sowiq
  1. <?php
  2. $string = "Db_Driver";
  3. $string = str_replace("_", "", $string);
  4. $string[0] = strtolower($string[0]);
  5.  
  6. echo $string;
  7. ?>
Black-Berry
Dzięki. Nie wiem tylko czy jest sens wyodrębniać pierwszy element łańcucha jeśli istnieje wbudowana funkcja lcfirst(). Sposób nie zadziała dla 4 przypadku.
sowiq
Racja, nie zwróciłem uwagi na ten 4. przypadek. Trzeba zatem użyć wyrażeń regularnych. A co do lcfirst() to funkcja ta działa zapewne identycznie jak sposób podany przeze mnie (w sensie działania i wyniku), więc raczej nie jest tańsza w użyciu.
Black-Berry
No nie wiem. Moim zdaniem może być bardziej wydajna. Jeśli coś jest napisane bezpośrednio w C albo nawet w assemblerze to może być szybrze (nie musi ale może).

byłbym wdzięczny za odpowiednie wyrażenie regularne:) Odwdzięczyć się mogę fajnym pomysłem na rejestr biggrin.gif
sowiq
UPDATE 1.0 smile.gif

  1. <?php
  2. $string = "small_case_value";
  3.  
  4. preg_match_all("/_[a-z]/", $string, $matches);
  5. foreach($matches[0] as $tmp)
  6.    $string = str_replace($tmp, strtoupper($tmp), $string);
  7.  
  8. $string = lcfirst(str_replace("_", "", $string));
  9.  
  10. echo $string;
  11. ?>
Black-Berry
Dzięki. Zaraz skończe rejestr to pokaże:D Mam nadzieję ze to będzie hit biggrin.gif
l0ud
Przed chwilą napisałem sobie coś takiego:
  1. <?php
  2.  
  3. function strToMixedCase($string) {
  4.    while($pos = strrpos($string,'_')) {
  5.        $string = substr($string, 0, $pos).strtoupper($string[$pos+1]).substr($string,$pos+2);
  6.    }
  7.    $string[0] = strtolower($string[0]);
  8.    return $string;
  9. }
  10.  
  11. echo strToMixedCase('small_case_value');
  12.  
  13. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.