[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: непечатаемые символы
gash1sh
Здравствуйте. Помогите пожалуйста составить выражение, которое оставит в тексте только печатаемые символы и пробелы (табуляции, переносы строк, и т. п. необходимо удалить)



Спустя 30 минут (21.03.2010 - 14:51) andyp написал(а):
Пример:

$str = "abc\td e f'ghi\n";
$res = htmlspecialchars(preg_replace('/[^\w ]/is', '', $str));
var_dump($res);


Выведет
string(12) "abcd e fghi"

То есть выражение оставляет только буквенно-числовые символы и пробелы.

Спустя 21 минута, 33 секунды (21.03.2010 - 15:13) gash1sh написал(а):
andyp, проверил - не работает wink.gif Может быть, я что-то делаю не так.
Конкретизирую задачу. Представленный ниже скрипт, принимает текст из textarea.
<?php
if(!$_POST['text'])
header("location: index.php?errcode=empty");

echo "<html><body><center>";

$_POST['text'] = trim(strtoupper($_POST['text']));
preg_replace('/[^\w ]/is', '', $_POST['text']);

echo "<table align = \"center\">";
echo "<tr><td align = \"left\"><b>Количество символов в тексте:</b> ".strlen($_POST['text'])."</td></tr>";
echo "</table>";

echo "</center></body></html>";
?>
При вводе текста
1
1
скрипт выдаёт значение 4, т. к. перенос строки и возврат каретки всё таки не учитываются. После обработки строки
	if	if
Скрипт выдаёт значение 5, т. к. удаляется только первый символ табуляции с помощью функции trim. В общем не работает smile.gif Для меня очень важно определить количество печатных символов, т. к. в дальнейшем мне будет необходимо подсчитать частоту появления каждого из них в тексте.

Спустя 1 день, 6 часов, 12 минут, 11 секунд (22.03.2010 - 21:25) andyp написал(а):
Ээ..
Цитата
preg_replace('/[^\w ]/is', '', $_POST['text']);


Здесь же результат работы функции ни чему не присваивается.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.