Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 21.02.2015
Сообщений: 4

Скрипт не понимает кириллицу

21.02.2015, 10:15. Показов 1714. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые.
Помогите решить проблему. Есть движок на PHP. При добавлении статьи в урл попадает название страницы на латинице. Если название на латинице, то всё работает на отлично, но если название на кирилице. то страница вообще не находится.
Пример 1: Название страницы "wert" ссылка выглядит так http://мой сайт/1/wert/
Пример 2: Та же страница с названием "Привет" ссылка выглядит так http://мой сайт/1// и ошибка 404

Есть файл .htaccess его код:

RewriteEngine On

RewriteRule ^([^/]*)/([^/]*)/$ article.php?id=$1&title=$2 [L]
RewriteRule ^profile/([^/]*)/([^/]*)/$ profile.php?a=$1&name=$2 [L]
RewriteRule ^category/([^/]*)/([^/]*)/$ category.php?id=$1&name=$2 [L]
RewriteRule ^page/([^/]*)/([^/]*)/$ page.php?p=$1&title=$2 [L]

RewriteRule ^start/([^/]*)/([^/]*)/$ index.php?page=$1&ipp=$2 [L]

RewriteRule ^category/([^/]*)/([^/]*)/start/([^/]*)/([^/]*)/$ category.php?id=$1&title=$2&page=$3&ipp= $4 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ %{REQUEST_URI}/ [R=301,L]

Так же есть файл для ЧПУ ссылок, его код:

<?php

/* So to generate these stupid seo links..

0. ---- make everything direct access urls
1. ---- Give the htacccess for download
2. ---- give them seourls.php
3. check for file_exists of seourls.php, if true, include the file
4. Create if statements if function exists) that change article links across the site (rightside, index, category, search, profile)

/article/profile/1/andrew-olson/

/article/141/Dont-Overlooked-Ebooks-As-The-Path-To-Online-Prosperity/

/article/category/5/computers/



GENERATE SEO URLS */
function generate_seo_link($input,$replace = '-',$remove_words = true,$words_array = array())
{
//make it lowercase, remove punctuation, remove multiple/leading/ending spaces
$return = trim(ereg_replace(' +',' ',preg_replace('/[^a-zA-Z0-9\s]/','',strtolower($input))));


//remove words, if not helpful to seo
//i like my defaults list in remove_words(), so I wont pass that array
if($remove_words) { $return = remove_words($return,$replace,$words_arr ay); }

//convert the spaces to whatever the user wants
//usually a dash or underscore..
//...then return the value.
return str_replace(' ',$replace,$return);
}

/* takes an input, scrubs unnecessary words */
function remove_words($input,$replace,$words_arra y = array(),$unique_words = true)
{
//separate all words based on spaces
$input_array = explode(' ',$input);

//create the return array
$return = array();

//loops through words, remove bad words, keep good ones
foreach($input_array as $word)
{
//if it's a word we should add...
if(!in_array($word,$words_array) && ($unique_words ? !in_array($word,$return) : true))
{
$return[] = $word;
}
}

//return good words separated by dashes
return implode($replace,$return);
}

?>

Удаляя это файл скрипт работает нормально, но с ссылками такого типа:
http://мой сайт/article.php?id=1

Помогите исправить проблему. Хотелось бы что бы скрипт работал с ЧПУ ссылками.
Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.02.2015, 10:15
Ответы с готовыми решениями:

RichEdit.PasteFromClipboard не понимает кириллицу
Вставляю программно текст: RichEdit1.PasteFromClipboard, при этом искажаются кириллические символы. Текст копирую из программы...

Кнопка программы в панеле не понимает кириллицу
Help.Может быть кто знает вопрос вот в чем.После компиляции программы в C++Builder6 я переименовал exe файл c латинских букв на русские и...

Данные типа char не понимает кириллицу
Имеется массив типа char. Ввод данных с клавиатуры. Когда пишу кирилиццей, то отображается аброкодабра. При вводе латиницей проблем нет....

4
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
21.02.2015, 13:05
Цитата Сообщение от Александр1405 Посмотреть сообщение
$return = trim(ereg_replace(' +',' ',preg_replace('/[^a-zA-Z0-9\s]/','',strtolower($input))));
PHP
1
$return = trim(preg_replace('/[^a-zA-ZА-яЁё0-9\s]/','',strtolower($input)));
0
0 / 0 / 0
Регистрация: 21.02.2015
Сообщений: 4
21.02.2015, 14:26  [ТС]
Спасибо. Заменил, теперь страницы отображаются, но ссылки такого вида: http://мой сайт/2/п�иве�/
Может есть возможность что бы ссылка была http://мой сайт/2/privet/
0
171 / 153 / 67
Регистрация: 11.02.2015
Сообщений: 450
21.02.2015, 14:40
V
Цитата Сообщение от Александр1405 Посмотреть сообщение
что бы ссылка была http://мой сайт/2/privet/
Можно, создав массив вида
PHP
1
$translit=array('а'=>'a','б'=>'b',...,'я'=>'ya')
и заменив все кириллицу на соответствующие транслиты, но зачем плодить лишнюю работу? Почему сразу не назвать страницу "privet"?
0
0 / 0 / 0
Регистрация: 21.02.2015
Сообщений: 4
21.02.2015, 14:56  [ТС]
ссылка формируется из заголовка, а заголовки русские, а куда этот массив вставлять?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.02.2015, 14:56
Помогаю со студенческими работами здесь

Debian не понимает кириллицу windows, в текстовых файлах кракозябры
Решить, как здесь http://zenway.ru/forum/viewtopic.php?id=54 не получается, так как нет у меня такого файла по такому пути и самой...

Кириллицу не выводит
Здравствуйте. Взялся изучать Ruby, и я оказался ну прям точь-в-точь в такой ситуации с конвертацией температур, как автор одного другого...

Транслит в кириллицу
Нужно реализовать &quot;перевод&quot; транслита в кириллицу. Если быть точнее есть список имен на английском мне нужно его &quot;перевести&quot;....

Проверка на кириллицу
Что то не получатся смонстряпать регулярку Нужно проверить текст по нескольким условиям: 1. Если в нем присутствуют только русские...

Не отправляет кириллицу
Всем привет! Хочу отправлять ЛС php скриптом. Взял скрипт вот отсюда https://habrahabr.ru/post/265563/ попытался запустить и в итоге...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru