Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как вырезать первое предложение?

Сообщения:  [1-7] 

 
 автор: Trianon   (11.04.2006 в 22:41)   письмо автору
 
   для: DDK   (11.04.2006 в 22:13)
 

А по-моему можено без регекспов обойтись:
<?
$res 
strlen($text) ;
$res = ($pos strpos($text'.')) !== false  && $pos $res $pos+$res;
$res = ($pos strpos($text'!')) !== false  && $pos $res $pos+$res;
$res = ($pos strpos($text'?')) !== false  && $pos $res $pos+$res;
$stmt substr($text0$res);
?>

   
 
 автор: Конст   (11.04.2006 в 22:35)   письмо автору
 
   для: DDK   (11.04.2006 в 22:27)
 

Да, я не подумал о том, что до точки могут стоят Вопрос или Восклицание. Хотя в принципе это довольно редко может попадаться. По крайней мере в новостном тексте.

   
 
 автор: DDK   (11.04.2006 в 22:27)   письмо автору
 
   для: Конст   (11.04.2006 в 22:16)
 

Нет. В первом варианте отслеживается только точка. Во втором если использовать свитч, то возможны такие косяки, оринтирование по точке, в то время как восклицательный или вопросительный знаки встречались раньше этой самой точки. Можно сделать через регулярные выражения, но я не спец в них :(

   
 
 автор: Конст   (11.04.2006 в 22:16)   письмо автору
 
   для: DDK   (11.04.2006 в 22:13)
 

ОК, спасибо всем ) Первый вариант попробовал - получилось.

А по поводу второго, может быть удобней было бы использовать switch?

   
 
 автор: DDK   (11.04.2006 в 22:13)   письмо автору
 
   для: Конст   (11.04.2006 в 21:54)
 


<?
$text 
"Text1. Text2. Text3."// Исходный текст

if(strpos($text,'.')) {
    if(
strpos($text,'?')) {
        if(
strpos($text,'!')) {
            echo 
substr($text,0,strpos($text,'!')+1);
        } else {
            echo 
substr($text,0,strpos($text,'?')+1);
        }
    } else {
        echo 
substr($text,0,strpos($text,'.')+1);
    }
} else {
    echo 
$text// Если ни один знак (.|?|!) не встречается, выводим весь текст
}
?>

   
 
 автор: malish   (11.04.2006 в 21:59)   письмо автору
 
   для: Конст   (11.04.2006 в 21:54)
 


echo substr($text,0,strpos($text,'.'));

   
 
 автор: Конст   (11.04.2006 в 21:54)   письмо автору
 
 

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

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования