Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2009, 15:13   #1
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
Радость Транслит как сделать?

Люди добрые подскажите пожалуйста как сделать транслит из английского в русский?
написал простенький листинг папок
PHP код:
<?
$dir 
opendir (".");
while ( 
$file readdir ($dir))
{
if (( 
$file != ".") && ($file != "..") && ( $file != "index.php"))

{
echo 
'<img src="http://sablazn.ru/desing/papka.gif"><a href='.$file.'>'.$file.'</a><br>';
}
}
closedir ($dir);
?>
нашел готовый скрит транслита а как совместить чето туплю
PHP код:
<?php
// Транслитерация строк.
function transliterate($st) {
  
$st strtr($st
    
"абвгдежзийклмнопрстуфыэАБВГДЕЖЗИЙКЛМНОПРСТУФЫЭ",
    
"abvgdegziyklmnoprstufieABVGDEGZIYKLMNOPRSTUFIE"
  
);
  
$st strtr($st, array(
    
'yo'=>"ё",    'h'=>"х",  'ts'=>"ц",  'ch'=>"ч"'sh'=>"ш",  
    
'shch'=>"o",  ''=>'ъ',   ''=>'ь',    'yu'=>"ю"'ya'=>"я",
    
'Yo'=>"Ё",    'H'=>"Х",  'Ts'=>"Ц",  'Ch'=>"Ч"'Sh'=>"Ш",
    
'Shch'=>"Щ",  ''=>'Ъ',   ''=>'Ь',    'Yu'=>"Ю"'Ya'=>"Я",
  ));
  return 
$st;
}
echo 
transliterate("У попа была собака, он ее любил.");
?>
кому не трудно помогите плиз чайнику
Naposaram вне форума Ответить с цитированием
Старый 03.02.2009, 16:36   #2
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

во первых, как связаны листинг папок и транслит ?

во вторых, скрипт переводит из русского в английский, так что сначала переделай его во что-то вроде
PHP код:
<?php
// Транслитерация строк.
function transliterate($st) {
  
$st strtr($st, array(
    
"ё"=>'yo',    "х"=>'h',  "ц"=>'ts',  "ч"=>'ch'"ш"=>'sh',  
    
"o"=>'shch',  "ю"=>'yu'"я"=>'ya',
    
"Ё"=>'Yo',    "Х"=>'H',  "Ц"=>'Ts',  "Ч"=>'Ch'"Ш"=>'Sh',
    
"Щ"=>'Shch',  "Ю"=>'Yu'"Я"=>'Ya',
  ));
  
$st strtr($st
    
"abvgdegziyklmnoprstufieABVGDEGZIYKLMNOPRSTUFIE"
    "абвгдежзийклмнопрстуфыАБВГДЕЖЗИЙКЛМНОПРСТУФЫЭ"
,
  );
  return 
$st;
}
?>
а дальнейшие действия полность зависят от ответа на мой первый вопрос
свободен...
wall66 вне форума Ответить с цитированием
Старый 03.02.2009, 16:55   #3
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
Вопрос

Цитата:
Сообщение от wall66 Посмотреть сообщение
во первых, как связаны листинг папок и транслит ?
...а дальнейшие действия полность зависят от ответа на мой первый вопрос
ну тоетсь на например: в папке "picture" картинки разбиты по категориям "avto" "fentazi" "raznoe" естественно скрипт и выводит также, а яхочу что бы выводил не транслит а по русски
Naposaram вне форума Ответить с цитированием
Старый 03.02.2009, 17:44   #4
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

PHP код:
<?
$dir 
opendir (".");
while ( 
$file readdir ($dir))
{
if (( 
$file != ".") && ($file != "..") && ( $file != "index.php"))

{
echo 
'<img src="http://sablazn.ru/desing/papka.gif"><a href='.$file.'>'.transliterate($file).'</a><br>';
}
}
closedir ($dir);
?>
свободен...
wall66 вне форума Ответить с цитированием
Старый 04.02.2009, 18:18   #5
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

ошибку выдает

Fatal error: Call to undefined function transliterate() in /home

там нада же includ наверно вставить?
Naposaram вне форума Ответить с цитированием
Старый 04.02.2009, 20:31   #6
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

вот как тут без мата обойтись, а ?

классе в пятом проходили что функции и процедуры указываются в том же документе где они используются

вам дали бесплатное образование, пользуйтесь этим !
PHP код:
<?
$dir 
opendir (".");
while ( 
$file readdir ($dir))
{
if (( 
$file != ".") && ($file != "..") && ( $file != "index.php"))

{
echo 
'<img src="http://sablazn.ru/desing/papka.gif"><a href='.$file.'>'.transliterate($file).'</a><br>';
}
}
closedir ($dir);

// Транслитерация строк.
function transliterate($st) {
  
$st strtr($st, array(
    
"ё"=>'yo',    "х"=>'h',  "ц"=>'ts',  "ч"=>'ch'"ш"=>'sh',  
    
"o"=>'shch',  "ю"=>'yu'"я"=>'ya',
    
"Ё"=>'Yo',    "Х"=>'H',  "Ц"=>'Ts',  "Ч"=>'Ch'"Ш"=>'Sh',
    
"Щ"=>'Shch',  "Ю"=>'Yu'"Я"=>'Ya',
  ));
  
$st strtr($st
    
"abvgdegziyklmnoprstufieABVGDEGZIYKLMNOPRSTUFIE"
    "абвгдежзийклмнопрстуфыАБВГДЕЖЗИЙКЛМНОПРСТУФЫЭ"
,
  );
  return 
$st;

?>
свободен...
wall66 вне форума Ответить с цитированием
Старый 04.02.2009, 20:42   #7
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
Радость

Цитата:
Сообщение от wall66 Посмотреть сообщение
вот как тут без мата обойтись, а ?

классе в пятом проходили что функции и процедуры указываются в том же документе где они используются

вам дали бесплатное образование, пользуйтесь этим !
ну я не специально, меня этому не учили это я сам пытаюсь чегото сделать
Naposaram вне форума Ответить с цитированием
Старый 04.02.2009, 21:10   #8
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

вот так вот
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/sabla204/domains/sablazn.ru/public_html/download/index.php on line 23
Naposaram вне форума Ответить с цитированием
Старый 04.02.2009, 21:18   #9
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

всеголишь опечатка
PHP код:
<?
$dir 
opendir (".");
while ( 
$file readdir ($dir))
{
if (( 
$file != ".") && ($file != "..") && ( $file != "index.php"))

{
echo 
'<img src="http://sablazn.ru/desing/papka.gif"><a href='.$file.'>'.transliterate($file).'</a><br>';
}
}
closedir ($dir);

// Транслитерация строк.
function transliterate($st) {
  
$st strtr($st, array(
    
"ё"=>'yo',    "х"=>'h',  "ц"=>'ts',  "ч"=>'ch'"ш"=>'sh',  
    
"o"=>'shch',  "ю"=>'yu'"я"=>'ya',
    
"Ё"=>'Yo',    "Х"=>'H',  "Ц"=>'Ts',  "Ч"=>'Ch'"Ш"=>'Sh',
    
"Щ"=>'Shch',  "Ю"=>'Yu'"Я"=>'Ya'
  
));
  
$st strtr($st
    
"abvgdegziyklmnoprstufieABVGDEGZIYKLMNOPRSTUFIE",
    
"абвгдежзийклмнопрстуфыАБВГДЕЖЗИЙКЛМНОПРСТУФЫЭ"
  
);
  return 
$st;

?>
свободен...
wall66 вне форума Ответить с цитированием
Старый 04.02.2009, 21:24   #10
Naposaram
Пользователь
 
Регистрация: 22.11.2008
Сообщений: 52
По умолчанию

я тут еще покопался в нете и сделала так
PHP код:
<? 
$dir 
opendir ("."); 
while ( 
$file readdir ($dir)) 

if (( 
$file != ".") && ($file != "..") && ( $file != "index.php")) 


echo 
'<a href='.$file.'>'.Translit($file).'</a><br>'


closedir ($dir); 

// Транслитерация строк. 
function Translit($text,$type='de'){
$data=explode(" ",$text);
if(
count($data)==''){
    return 
'';
}
$alphas=array(
'yii'=>'ы',
'ji'=>'й',
'yo'=>'ё',
'ya'=>'я',
'shc'=>'щ',
'sh'=>'ш',
'ea'=>'я',
'ii'=>'й',
'zh'=>'ж',
'ch'=>'ч',
'iy'=>'ю',
'ts'=>'ц',
'u'=>'у',
'w'=>'в',
'v'=>'в',
'i'=>'и',
'y'=>'у',
'd'=>'д',
't'=>'т',
'b'=>'б',
'p'=>'п',
'n'=>'н',
'f'=>'ф',
'\''=>'ь',
'\''=>'ъ',
'z'=>'з',
'l'=>'л',
'k'=>'к',
's'=>'с',
'm'=>'м',
'r'=>'р',
's'=>'с',
'h'=>'х',
'j'=>'ж',
'g'=>'г',
'_'=>'',
'a'=>'а'
);
$total='';
foreach(
$data as $k=>$v){
    if(
preg_match("/^[a-zA-Z]*/",$v)){
        foreach(
$alphas as $id=>$value){
            if(
$type=='de'){
                if(
strcasecmp($v,$id) AND !eregi("->",$v)){
                    
$v=str_replace($id,$value,$v);
                }elseif(
eregi("->",$v)){
                    
$v=str_replace("->","",$v);
                }
            }elseif(
$type='translit'){
                if(
strcasecmp($v,$value) AND !eregi("->",$v)){
                    
$v=str_replace($value,$id,$v);
                }elseif(
eregi("->",$v)){
                    
$v=str_replace("->","",$v);
                }
            }
        }
    }
    
$total.=$v." ";
}
return 
$total;
}
?>
Naposaram вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать чтоб экселев. файл висел открытым на рабочем столе как афиша на заборе? Мара Помощь студентам 6 24.07.2008 13:29
Программа транслит [Smarik] Паскаль, Turbo Pascal, PascalABC.NET 5 06.02.2008 07:29