PHP удаление НЕрусских слов - Форум успешных вебмастеров - GoFuckBiz.com - Страница 2
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB90.2486
BTC/USD68341.5405
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 18.11.2011, 01:22
Start Post: PHP удаление НЕрусских слов 
  #11
Dumpty
Senior Member
 
Аватар для Dumpty
 
Регистрация: 08.05.2008
Сообщений: 834
Бабло: $258860
Отправить сообщение для Dumpty с помощью ICQ
По умолчанию

Всем привет
Подскажите, как самым простым образом удалить все НЕ русские слова из строки.
Допустим - есть абзац текста, в нём встречается предложение на английском, дак вот его надо удалить.
Ну а ещё лучше чтобы удалить всё, что не является русским текстом (любые языки), за исключением html тегов.
Спасибо
Dumpty вне форума  
Старый 18.11.2011, 04:05   #12
sspy
главный злодей гофака
 
Аватар для sspy
 
Регистрация: 18.06.2007
Сообщений: 5,760
Бабло: $953848
По умолчанию

Цитата:
Сообщение от Dumpty Посмотреть сообщение
и сохраняем хтмл теги в этом загвоздка, но вариант sspy пока не тестил, спать пора уже =) завтра на свежую голову буду разбираться
Мой вариант удаляет неАнглийсские, протупил немного. Как вариант сделать таблицу замены тегов (<b> -> й1) прогнать [^а-яА-Я0-9_\-\.] а потом обратно трансформировать
__________________
sspy вне форума  
Старый 18.11.2011, 08:15   #13
incognito
Senior Member
 
Аватар для incognito
 
Регистрация: 08.07.2007
Сообщений: 177
Бабло: $34565
По умолчанию

Перебором нада
PHP код:
<?php
$text 
'Тут некоторый текст, а <strong>Hello! - переводится как "привет"</strong>';
// тут нужные символы
$simvols "-\"\",.!? абвгдеежзийклмнопростуфхцчщъыьэюяАБВГДЕЕЖЗИЙКЛМНОПРОСТУФХЦЧЩЪЫЬЭЮЯ";
$trash $text_mod "";

for(
$i=0;$i<strlen($text);$i++){    
    if(
$text[$i]=="<"){        
        
$text_mod .= substr($text,$i,strpos($text,">",$i)+1-$i);
        
$i strpos($text,">",$i);
        continue;
    }

    if(
strpos($simvols,$text[$i])!==FALSE){
        
$text_mod .= substr($text,$i,1);
    }else{
        
$trash .= substr($text,$i,1);
    }
}

echo 
$text_mod."<br>";
echo 
$trash;
?>

Тут некоторый текст, а <strong>!  переводится как "привет"</strong>
Hello
incognito вне форума