|
|
|
|
|
для: DDK
(11.04.2006 в 22:13)
| | А по-моему можено без регекспов обойтись:
<?
$res = strlen($text) ;
$res = ($pos = strpos($text, '.')) !== false && $pos < $res ? $pos+1 : $res;
$res = ($pos = strpos($text, '!')) !== false && $pos < $res ? $pos+1 : $res;
$res = ($pos = strpos($text, '?')) !== false && $pos < $res ? $pos+1 : $res;
$stmt = substr($text, 0, $res);
?>
|
| |
|
|
|
|
|
|
|
для: DDK
(11.04.2006 в 22:27)
| | Да, я не подумал о том, что до точки могут стоят Вопрос или Восклицание. Хотя в принципе это довольно редко может попадаться. По крайней мере в новостном тексте. | |
|
|
|
|
|
|
|
для: Конст
(11.04.2006 в 22:16)
| | Нет. В первом варианте отслеживается только точка. Во втором если использовать свитч, то возможны такие косяки, оринтирование по точке, в то время как восклицательный или вопросительный знаки встречались раньше этой самой точки. Можно сделать через регулярные выражения, но я не спец в них :( | |
|
|
|
|
|
|
|
для: DDK
(11.04.2006 в 22:13)
| | ОК, спасибо всем ) Первый вариант попробовал - получилось.
А по поводу второго, может быть удобней было бы использовать switch? | |
|
|
|
|
|
|
|
для: Конст
(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; // Если ни один знак (.|?|!) не встречается, выводим весь текст
}
?>
|
| |
|
|
|
|
|
|
|
для: Конст
(11.04.2006 в 21:54)
| |
echo substr($text,0,strpos($text,'.'));
|
| |
|
|
|
|
|
|
| Не подскажет ли кто-нибудь, как можно вырезать первое предложение из текста. Или другими словами вывести всю информацию до первой встречной точки, знака вопроса или восклицания, например. | |
|
|
|
|