замена функции strtoupper

maximus007

Новичок
замена функции strtoupper

Функция strtoupper не работает на серваке. В мануале вычитал, что она работает в зависомсти от локазилзации. дык вот я понял, что на серваке локализация англ. Как можно по другому перевести символ в верхний регистр?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Мей-би вручную установить нужную локаль? =)
 

maximus007

Новичок
а как эта функция выглядит для россии?

-~{}~ 15.07.08 00:03:

Какой тест сделать на серваке, что русскую определить?

-~{}~ 15.07.08 00:03:

Какой тест сделать на серваке, что русскую определить?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Какой тест сделать на серваке, что русскую определить?
Незнаю, конечно, что ты имел ввиду под словами "Какой тест сделать"...

Посмотреть можно
$>locale -a |grep 'ru'
 

maxwell

artifex
Re: замена функции strtoupper

Навскидку
PHP:
function strUpper($str){
    for ($i = 0; $i < strlen($str); $i++) {
        $n = ord($str{$i});
        if (($n < 123) and ($n > 96)) {
            $str{$i} = chr($n - 32);
        }
    }
    return $str;
}
 

maximus007

Новичок
пасиб

-~{}~ 16.07.08 13:35:

Автор оригинала: maxwell
Навскидку
PHP:
function strUpper($str){
    for ($i = 0; $i < strlen($str); $i++) {
        $n = ord($str{$i});
        if (($n < 123) and ($n > 96)) {
            $str{$i} = chr($n - 32);
        }
    }
    return $str;
}
Как можно эту функцию переделать, чтобы она выполняла роль функции ucwords()

--------

По поводу exec. Я запустил этот скрипт, но ниченго не произошло и вернуло 1:
PHP:
exec("locale -a", $output, $return);
   print "Код возврата: $return";
   foreach($output as $file)
     print "$file<br>";
 

AmdY

Пью пиво
Команда форума
какие только извращения не придумывают чтобы не делать правильно :(
http://www.php.net/setlocale
читай комменты
 

maximus007

Новичок
Я не нашел там работающего скрипта. Там есть скрипт, который выводит локали, но он ничего не показал мен
 

Духовность™

Продвинутый новичок
Хм.. что-то я однажды с локалью позанимался сексом, не понравилось. Легче юзать

PHP:
function strtoupperx($txt)
{
	$txt=strtoupper(strtr($txt, "абвгдезийклмнопстуфхцшщъыьэюя", "АБВГДЕЗИЙКЛМНОПСТУФХЦШЩЪЫЬЭЮЯ"));
	return($txt);
}
(взято из инета)
 

Bakti9rov

!*|=?
Под виндой, если дефолтовая кодировка системы windows-1251, а в редакторе и базе данных может оказаться utf8, то лечится так:

PHP:
<?php

setlocale(LC_CTYPE, 'ru_RU');

print strtoupper(iconv('utf-8', 'windows-1251', 'Привед, мир!')); // выводит "ПРИВЕД, МИР!"
и наборот, если система на юникоде, а текст на windows-1251, просто меняем местами два первых параметра iconv.
 

maximus007

Новичок
Автор оригинала: triumvirat
Хм.. что-то я однажды с локалью позанимался сексом, не понравилось. Легче юзать

PHP:
function strtoupperx($txt)
{
	$txt=strtoupper(strtr($txt, "абвгдезийклмнопстуфхцшщъыьэюя", "АБВГДЕЗИЙКЛМНОПСТУФХЦШЩЪЫЬЭЮЯ"));
	return($txt);
}
(взято из инета)
а как зменіть функцию ucwords???
 

dimagolov

Новичок
Bakti9rov
если дефолтовая кодировка системы windows-1251
это как? это в конфиге апача прописано отдавать заголовки кодировки 1251?

это же бред преобразовывать из utf8 в 1251, уважаемый, вместо того, чтобы просто отдавать контент клиенту просто в utf8
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Автор оригинала: triumvirat
Хм.. что-то я однажды с локалью позанимался сексом, не понравилось. Легче юзать

PHP:
function strtoupperx($txt)
{
	$txt=strtoupper(strtr($txt, "абвгдезийклмнопстуфхцшщъыьэюя", "АБВГДЕЗИЙКЛМНОПСТУФХЦШЩЪЫЬЭЮЯ"));
	return($txt);
}
(взято из инета)
PHP:
function str_to_upper_nonsense($text) {
	return str_replace(array_merge(range('а','я'),range('a','z')), array_merge(range('А','Я'),range('A','Z')),$text);
}
Ага - ага...
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Скажу. Фенкция ucwords изменяется переписыванием ее, с реализацией нужного функционала. Как и любая отсутствующая функция.
 
Сверху