Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Переписать переменную с большой буквы
 
 автор: kis-kis   (01.12.2008 в 15:15)   письмо автору
 
 

$text = "яблоко";

Как сделать, чтобы яблоко, было написано с большой буквы? Спасибо.

  Ответить  
 
 автор: Valick   (01.12.2008 в 16:01)   письмо автору
 
   для: kis-kis   (01.12.2008 в 15:15)
 

попробуйте поискать

  Ответить  
 
 автор: kis-kis   (01.12.2008 в 16:17)   письмо автору
 
   для: Valick   (01.12.2008 в 16:01)
 

Спасибо, нашел.

  Ответить  
 
 автор: AcidTrash   (01.12.2008 в 16:32)   письмо автору
 
   для: kis-kis   (01.12.2008 в 15:15)
 

<?
$text 
"яблоко";
$text=str_replace($text[0],strtoupper($text[0]),$text);
print 
$text;
?>

  Ответить  
 
 автор: DJ Paltus   (01.12.2008 в 16:33)   письмо автору
 
   для: AcidTrash   (01.12.2008 в 16:32)
 

А strtoupper() умеет корректно с кириллицею работать?

  Ответить  
 
 автор: AcidTrash   (01.12.2008 в 16:37)   письмо автору
 
   для: DJ Paltus   (01.12.2008 в 16:33)
 

Если не работает с кирилицей выставите соответствующую локаль
setlocale(LC_ALL, 'ru_RU.CP1251'); 

  Ответить  
 
 автор: DJ Paltus   (01.12.2008 в 16:37)   письмо автору
 
   для: AcidTrash   (01.12.2008 в 16:32)
 

И кстати, Ваш скрипт заменит вообще все маленькие "я" в тексте. Так, кажися, вернее:

$text = "яблокояяяя";
$text[0]=strtoupper($text[0]);
print $text;

  Ответить  
 
 автор: AcidTrash   (01.12.2008 в 16:41)   письмо автору
 
   для: DJ Paltus   (01.12.2008 в 16:37)
 

Да, правильно подметили, есть косячок :)

  Ответить  
 
 автор: sim5   (01.12.2008 в 16:45)   письмо автору
 
   для: AcidTrash   (01.12.2008 в 16:41)
 

Есть еще ведь и ucfirst().

  Ответить  
 
 автор: DJ Paltus   (01.12.2008 в 16:46)   письмо автору
 
   для: sim5   (01.12.2008 в 16:45)
 

опаньки, новое слово узнал. спасибо )

  Ответить  
 
 автор: ddhvvn   (01.12.2008 в 16:49)   письмо автору
 
   для: sim5   (01.12.2008 в 16:45)
 

Меня тоже подводило (да и щас иногда подводит) незнание стандартных функций, поэтому сейчас сначала лажу по мануалу, а потом только уже пишу код, если не найду нужной функции =)

  Ответить  
 
 автор: DJ Paltus   (01.12.2008 в 16:54)   письмо автору
 
   для: ddhvvn   (01.12.2008 в 16:49)
 

Стандартные функции - это клево, слово написал, и оно завертелось - например, можно смело забить на сортировки, что меня сильно радует.
С другой стороны, кто знает, чего туда понаписал автор. Если речь идет о минимизации ресурсожоркости скрипта, иногда все же имеет смысл простые процедуры не доверять стандартным скриптам. Яркий пример - библиотека crt в borland pascal (7.0, кажется). Если ее не юзать, можно сэкономить килобайт 60 в экзешнике, кода по сути ее подключаешь ради 2-3 функций.

  Ответить  
 
 автор: sim5   (01.12.2008 в 16:58)   письмо автору
 
   для: DJ Paltus   (01.12.2008 в 16:54)
 

Все конечно хорошо, но некоторые такие "сладкие" функции не работают с мультибайтной строкой, и об этом нужно помнить.

  Ответить  
 
 автор: AcidTrash   (01.12.2008 в 16:49)   письмо автору
 
   для: sim5   (01.12.2008 в 16:45)
 

Н-да, про слона то и забыли. Работа - мозг уже париться.)

  Ответить  
 
 автор: kis-kis   (01.12.2008 в 17:10)   письмо автору
 
   для: AcidTrash   (01.12.2008 в 16:49)
 

Почему-то на локальном сервере нормально работает код:


if (ucwords($_POST['your_answer']) != $text and ucwords(strtolower($_POST['your_answer'])) != $text)


А так нет, в чем ошибка?

  Ответить  
 
 автор: sim5   (01.12.2008 в 17:18)   письмо автору
 
   для: kis-kis   (01.12.2008 в 17:10)
 

strtolower(), strtoupper() и некоторые другие строковые функции, зависят от установленной локали.

  Ответить  
 
 автор: kis-kis   (01.12.2008 в 17:28)   письмо автору
 
   для: sim5   (01.12.2008 в 17:18)
 

т.е. нужно прописать - setlocale(LC_ALL, 'ru_RU.CP1251'); ?

  Ответить  
 
 автор: sim5   (01.12.2008 в 17:29)   письмо автору
 
   для: kis-kis   (01.12.2008 в 17:28)
 

Лучше так setlocale(LC_CTYPE, "ru_RU.CP1251"), чтобы не трогать числовые представления.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования