Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP для начинающих

Войти
Регистрация
Восстановить пароль
 
klippa
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 127
#1

Транслитератор php - PHP

16.07.2015, 04:20. Просмотров 549. Ответов 13
Метки нет (Все метки)

есть БД в ней хранится title на русском языке можно ли его вывести оттуда с переводом на кириллицу?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2015, 04:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Транслитератор php (PHP):

Вставить php-условие в html-код, который находится в php-коде - PHP
Выводится список из базы данных foreach($callbacklist as $call) { $ListCall.='<tr> <td>'.$call->datform.'</td> ...

Выводится php-код в браузер после установки php+apache+mysql - PHP
Навеяло отсюда: http://www.cyberforum.ru/php-beginners/thread839975.html Установила по инструкции...

Php+javascript В зависимости от клика вывести переменную php в новое окно - PHP
Есть код. В коде две ссылки. При нажатии на первую ссылку должно открыться окно (можно вкладка) и в него надо вписать что-нибудь одно. Если...

Как, использующие php, сайты имеют расширение страниц html, но не php? - PHP
Сабж. Собственно говоря, сайты наверняка построены с использованием PHP, но при этом страница может иметь расширение html. Либо страница...

Ошибка PHP Startup: Unable to load dynamic library в RAPID PHP - PHP
Здравствуйте! у меня при работе с пхп редактором возникает ошибка. Не находит библиотеки. Причем выдает не правильный путь вместо...

Задержка консоли при выполнении php скрипта через php.exe - PHP
Доброго времени суток! Я ассоциировал в total commander (внутренние ассоциации) файлы *.php с php.exe. Теперь при двойном щелчке у меня...

13
N3stY
(ノಠ益ಠ)ノ彡┻━┻
147 / 147 / 51
Регистрация: 05.06.2014
Сообщений: 700
Записей в блоге: 2
16.07.2015, 06:10 #2
klippa, может латиницу?

В общем вот вам функция:
PHP
1
2
3
4
5
6
7
8
9
10
11
    function translit($input, $param)
    {
        $arr_rus = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я', ' '); //Кириллический алфавит
        $arr_eng = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_'); //Латинский алфавит
        if($param == 'lat2cyr') //Если указан параметр (латиница > кириллица)
        {
            return str_replace($arr_eng, $arr_rus, mb_strtolower($input));
        }
                //иначе (кириллица > латиница)
        return str_replace($arr_rus, $arr_eng, mb_strtolower($input));
    }
Использование

Пример 1:
PHP
1
    $title_tr = translit($title_from_db); // Кириллица в латиницу
Пример 2:
PHP
1
    $title_tr = translit($title_from_db, 'lat2cyr'); // Латиница в кириллицу
1
klippa
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 127
16.07.2015, 09:05  [ТС] #3
N3stY, туплю и не досикаю что вставить вместо
Цитата Сообщение от N3stY Посмотреть сообщение
$title_from_db
?


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$query = "SELECT title FROM fl_listings";
 
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
 
echo ("
 
<h3>Вывод ранее сохраненных данных из таблицы MySQL</h3>
 
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">
 <tr style=\"border: solid 1px #000\">
  <td align=\"center\"><b>name</b></td>
 </tr>
");
while ($row = mysql_fetch_array($res)) {
 
    echo "<tr>\n";
    echo "<td>".$row['title']."</td>\n";
 
}
echo ("</table>\n");
0
N3stY
(ノಠ益ಠ)ノ彡┻━┻
147 / 147 / 51
Регистрация: 05.06.2014
Сообщений: 700
Записей в блоге: 2
16.07.2015, 09:23 #4
klippa, $title_from_db в вашем случае это $row['title']

Добавлено через 8 минут
т.е. в готовом варианте ваш код будет выглядеть вот так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function translit($input, $param)
    {
        $arr_rus = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я', ' '); //Кириллический алфавит
        $arr_eng = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_'); //Латинский алфавит
        if($param == 'lat2cyr') //Если указан параметр (латиница > кириллица)
        {
            return str_replace($arr_eng, $arr_rus, mb_strtolower($input));
        }
                //иначе (кириллица > латиница)
        return str_replace($arr_rus, $arr_eng, mb_strtolower($input));
    }
 
$query = "SELECT title FROM fl_listings";
 
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
 
echo ("
 
<h3>Вывод ранее сохраненных данных из таблицы MySQL</h3>
 
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">
 <tr style=\"border: solid 1px #000\">
  <td align=\"center\"><b>name</b></td>
 </tr>
");
while ($row = mysql_fetch_array($res)) {
 
    echo "<tr>\n";
    echo "<td>".translit($row['title']);."</td>\n";
 
}
echo ("</table>\n");
1
klippa
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 127
17.07.2015, 04:05  [ТС] #5
Цитата Сообщение от N3stY Посмотреть сообщение
т.е. в готовом варианте ваш код будет выглядеть вот так:
я как то не так функцию вставила выдает ошибку на строку 2 и 42
Missing argument 2 for translit(), called
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
function translit($input, $param)
    {
        $arr_rus = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я', ' '); //Кириллический алфавит
        $arr_eng = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_'); //Латинский алфавит
        if($param == 'lat2cyr') //Если указан параметр (латиница > кириллица)
        {
            return str_replace($arr_eng, $arr_rus, mb_strtolower($input));
        }
                //иначе (кириллица > латиница)
        return str_replace($arr_rus, $arr_eng, mb_strtolower($input));
    }
    
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = "root"; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "test"; // название базы данных
 
    /* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
 
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
 
$query = "SELECT title FROM fl_listings";
 
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
 
echo ("
 
<h3>Вывод ранее сохраненных данных из таблицы MySQL</h3>
 
<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\">
 <tr style=\"border: solid 1px #000\">
  <td align=\"center\"><b>name</b></td>
 </tr>
");
while ($row = mysql_fetch_array($res)) {
 
    echo "<tr>\n";
    echo "<td>".translit($row['title'])."</td>\n";
 
}
echo ("</table>\n");
0
N3stY
(ノಠ益ಠ)ノ彡┻━┻
147 / 147 / 51
Регистрация: 05.06.2014
Сообщений: 700
Записей в блоге: 2
17.07.2015, 07:18 #6
klippa, допустил ошибку, но это были не ошибки, а предупреждение.

Вот:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function translit($input, $param='')
{
    $arr_rus = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я', ' '); //Кириллический алфавит
    $arr_eng = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_'); //Латинский алфавит
    
    if($param == 'lat2cyr') //Если указан параметр (латиница > кириллица)
    {
    return str_replace($arr_eng, $arr_rus, mb_strtolower($input));
    }
    //иначе (кириллица > латиница)
    return str_replace($arr_rus, $arr_eng, mb_strtolower($input));
}
1
klippa
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 127
17.07.2015, 17:04  [ТС] #7
N3stY,
испрацила и показывает все равно на русском все(

Добавлено через 34 минуты
N3stY, заменяет только пробел на _
0
N3stY
(ノಠ益ಠ)ノ彡┻━┻
147 / 147 / 51
Регистрация: 05.06.2014
Сообщений: 700
Записей в блоге: 2
18.07.2015, 17:53 #8
klippa, перепроверил.
Код примера:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
function translit($input, $param='')
{
    $arr_rus = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я', ' '); //Кириллический алфавит
    $arr_eng = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_'); //Латинский алфавит
    
    if($param == 'lat2cyr') //Если указан параметр (латиница > кириллица)
    {
    return str_replace($arr_eng, $arr_rus, mb_strtolower($input));
    }
    //иначе (кириллица > латиница)
    return str_replace($arr_rus, $arr_eng, mb_strtolower($input));
}
 
 
$ruuu = 'Этот текст написан кириллицей';
$ennn = 'A etot na translite:)';
 
 
echo 'Это обычный текст: ' . translit($ruuu);
echo '<br>';
echo 'А это транслит: ' . translit($ennn, 'lat2cyr');
Скриншоты:
Транслитератор phpТранслитератор php
1
klippa
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 127
18.07.2015, 23:22  [ТС] #9
N3stY, так показывается
Это обычный текст: ��������_����������_��������������_��������������������
А это транслит: а етот на транслите
что не так с кодировкой???
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
header("Content-Type: text/html; charset=UTF-8");
 
function translit($input, $param='')
{
    $arr_rus = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ь', 'ы', 'ъ', 'э', 'ю', 'я', ' '); //Кириллический алфавит
    $arr_eng = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_'); //Латинский алфавит
    
    if($param == 'lat2cyr') //Если указан параметр (латиница > кириллица)
    {
    return str_replace($arr_eng, $arr_rus, mb_strtolower($input));
    }
    //иначе (кириллица > латиница)
    return str_replace($arr_rus, $arr_eng, mb_strtolower($input));
}
 
 
$ruuu = 'Этот текст написан кириллицей';
$ennn = 'A etot na translite:)';
 
 
echo 'Это обычный текст: ' . translit($ruuu);
echo '<br>';
echo 'А это транслит: ' . translit($ennn, 'lat2cyr');
?>
0
klippa
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 127
21.07.2015, 02:54  [ТС] #10
подскажите что не так с кодировкой
0
N3stY
(ノಠ益ಠ)ノ彡┻━┻
147 / 147 / 51
Регистрация: 05.06.2014
Сообщений: 700
Записей в блоге: 2
21.07.2015, 11:18 #11
klippa, проверьте кодировку файла скрипта, она должна быть UTF-8 (через Notepad++)
1
klippa
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 127
21.07.2015, 13:52  [ТС] #12
N3stY, так у меня и рст0 вроде uft8
Транслитератор php
Транслитератор php
0
N3stY
(ノಠ益ಠ)ノ彡┻━┻
147 / 147 / 51
Регистрация: 05.06.2014
Сообщений: 700
Записей в блоге: 2
21.07.2015, 22:13 #13
klippa, У вас не отображает латиницу?!
А кодировка сервера? phpinfo();
1
klippa
4 / 4 / 2
Регистрация: 26.05.2015
Сообщений: 127
22.07.2015, 11:57  [ТС] #14
N3stY, спасибо вам огромное, оказалось нот проблема была в настройках сервера исправили все работает
0
22.07.2015, 11:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.07.2015, 11:57
Привет! Вот еще темы с ответами:

не вызывается PHP обработчик для формы, которая тоже в PHP файле - PHP
На страничке PHP есть кнопка &lt;form ...&gt;&lt;input type=&quot;button&quot; ..&gt; &lt;/form&gt; при нажатии на которую должен вызываться обработчик, т. е. другой...

PHP-юмор или PHP-загадка, каждый воспримет по-своему - PHP
Обнаружил сейчас в папке &quot;Спам&quot; такой вот шедевр. Спешу поделиться с коллегами! :) Что скажете уважаемые коллеги? :)

Формирование ссылки вместо index.php или main.php - PHP
Здравствуйте, у меня сформировался вопрос! Как сделать ссылку такого вида site.ru/main вместо site.ru/main.php Добавлено через 24...

Как остановить выполнение скрипта php другим скриптом php? - PHP
Как остановить выполнение скрипта php другим скриптом php?Спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru