Реклама на сайте Advertise with us

Как удалить\обезвредить Вордовские спецсимволы в тексте?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 01.10.04
Сообщения: 456
Рейтинг: 149

Ссылка на сообщениеДобавлено: 30/11/08 в 20:09       Ответить с цитатойцитата 

Добрый день.

Иногда в Вордовских текстах попадаются спецсимволы, которые вызывают сбой в работе скриптов - в частности, не проходит пост CURL'ом - постится только та часть текста, которая была до этого символа.
К таким спецсимолам относятся длинное тире "—" или вот такая точка "•". Так же есть специфический апостроф "’" и еще много таких бяк, которыми грешат тексты, набранные в Microsoft Word.

Есть ли способ распознавать\заменять\экранировать или кодировать такие спецсимволы?

Спасибо.

0
 



С нами с 28.02.03
Сообщения: 8542
Рейтинг: 1609

Ссылка на сообщениеДобавлено: 30/11/08 в 22:13       Ответить с цитатойцитата 

я бы проверял текст через регшулярное выражения

http://www.providerz.ru/articles/php/regexp-intro.html
вслучии необъходимости делал замену

Сдам место в подписи. Предложения в личку.

0
 



С нами с 01.10.04
Сообщения: 456
Рейтинг: 149

Ссылка на сообщениеДобавлено: 01/12/08 в 06:01       Ответить с цитатойцитата 

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

0
 

легионер МММ

С нами с 18.04.03
Сообщения: 6239
Рейтинг: 786

Ссылка на сообщениеДобавлено: 01/12/08 в 09:08       Ответить с цитатойцитата 

Попробуй закинуть текст в ворд, а потом сохранить его обычным текстовым файлом

Гiмн Хазарiи

0
 



С нами с 01.10.04
Сообщения: 456
Рейтинг: 149

Ссылка на сообщениеДобавлено: 01/12/08 в 10:57       Ответить с цитатойцитата 

"Закинуть текст в Ворд" - такое решение не годится для автоматизации. icon_smile.gif

Пока придумал проверять ord() у каждого символа, т.к. нормальные англ. буквы и символы лежат в диапазоне 32-126. Но чувствую, что проблема должна решаться более изящно, чуть ли не одним пальцем...

0
 



С нами с 28.02.03
Сообщения: 8542
Рейтинг: 1609

Ссылка на сообщениеДобавлено: 01/12/08 в 11:25       Ответить с цитатойцитата 

alexxxus писал:
Проблема заключается в том, что таких спецсимволов слишком много - на первый взгляд больше сотни - и проверять каждый не есть гуд решение. Наверняка есть простой и универсальный способ...


Шаблон для проверки правильности ввода строки, которая должна содержать символы a-z, A-Z, 0-9.

Пример:
<?php
$user = $_POST['username'];
if(!preg_match("/^[a-zA-Z0-9]+$/",$user))
echo "Ошибка";
else
echo "Правильное имя";
?>

вотак можно выевлять наличие этих символов

Сдам место в подписи. Предложения в личку.

0
 

легионер МММ

С нами с 18.04.03
Сообщения: 6239
Рейтинг: 786

Ссылка на сообщениеДобавлено: 01/12/08 в 11:45       Ответить с цитатойцитата 

Еще можно попробовать сконвертить в UTF эти символы, если база у тебя в UTF

$utf_text = iconv('UTF8','CP1251',$text_form_word);

Гiмн Хазарiи

4
 



С нами с 01.10.04
Сообщения: 456
Рейтинг: 149

Ссылка на сообщениеДобавлено: 01/12/08 в 11:48       Ответить с цитатойцитата 

Цитата:
Шаблон для проверки правильности ввода строки, которая должна содержать символы a-z, A-Z, 0-9.

Пример:
<?php
$user = $_POST['username'];
if(!preg_match("/^[a-zA-Z0-9]+$/",$user))
echo "Ошибка";
else
echo "Правильное имя";
?>

вотак можно выевлять наличие этих символов


Вообще речь идет о тексте, а не имени, а в тексте еще и знаки препинания бывают... И я спрашивал про
Цитата:
Есть ли способ распознавать\заменять\экранировать или кодировать такие спецсимволы

Т.е. или передвать текст в особой кодировке, или заменять эти символы на равноценные, или пробелами.

0
 



С нами с 01.10.04
Сообщения: 456
Рейтинг: 149

Ссылка на сообщениеДобавлено: 01/12/08 в 11:58       Ответить с цитатойцитата 

alt писал:
Еще можно попробовать сконвертить в UTF эти символы, если база у тебя в UTF

$utf_text = iconv('UTF8','CP1251',$text_form_word);


Во! Молодец! Что и нужно было узнать!

0
 

php

С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410


Передовик Master-X (16.01.2010)
Ссылка на сообщениеДобавлено: 01/12/08 в 21:26       Ответить с цитатойцитата 

а как же быть со знаками восклицания вопроса и прочее? или при иконв они не трогаются?

IPhosters.com - любые решения для Вас (виртуалы от $4.99, vps от $11.99, дедики от $95)

0
 

саблезубый кролик

С нами с 02.07.05
Сообщения: 2966
Рейтинг: 993

Ссылка на сообщениеДобавлено: 02/12/08 в 00:57       Ответить с цитатойцитата 

А почему они должны трогаться? icon_surprised.gif иконв это перекодирование.

.

0
 



С нами с 01.10.04
Сообщения: 456
Рейтинг: 149

Ссылка на сообщениеДобавлено: 02/12/08 в 07:03       Ответить с цитатойцитата 

В общем, прочитав вот это про iconv http://php.ru/manual/function.iconv.html
сделал вот так
Код:
$A = iconv('UTF-8', "UTF-8//IGNORE", $A);


при таком раскладе левые символы просто игнорируются, без пробела.
Это уже кое что.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »