|
|
|
| Ребята, как осуществить следущее:
Имеется текст, из него нужно выдернуть одно слово, и ещё 10 слов до и после этого слова.
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Borbosso
(30.03.2006 в 21:12)
| | пример? | |
|
|
|
|
|
|
|
для: Borbosso
(30.03.2006 в 21:12)
| | Следует поступить примерно следующим образом
<?php
$text = "Ребята, как осуществить следущее:
Имеется текст, из него нужно выдернуть одно слово, и ещё 10 слов до и после этого слова.
Заранее спасибо. Ребята, как осуществить следущее:
Имеется текст, из него нужно выдернуть одно слово, и ещё 10 слов до и после этого слова.
Заранее спасибо.";
$pattern = "|([\s]+[^\s]+){10}[\s]+нужно[\s]+([^\s]+[\s]+){10}|";
preg_match($pattern,$text,$out);
echo "...".$out[0]."...";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.03.2006 в 22:13)
| | Другой вариант. Работает намного быстрей.
<?PHP
function cutText($str,$content,$padText){
$a = strpos($content,$str)-$padText;
$b = strlen($str)+2*$padText;
$cutStr = substr($content,$a,$b);
for($i=$a;$i>$a-20;--$i){
$char=substr($content,$i-1,1);
$cutStr = $char.$cutStr;
if($char == " " || $char == "," || $char == "." || $char == "!" || $char == "?" || $char == ":" || $char == ";"){
if(substr($content,$i-2,1) != "") $cutStr = '...'.$cutStr;
break;
}
}
for($i=$a+$b;$i<$a+$b+20;$i++){
$char=substr($content,$i,1);
$cutStr.=$char;
if($char == " " || $char == "," || $char == "." || $char == "!" || $char == "?" || $char == ":" || $char == ";"){
if(substr($content,$i+1,1) != "") $cutStr.=" ...";
break;
}
}
return $cutStr;
}
$text = "Ребята, как осуществить следущее:
Имеется текст, из него нужно выдернуть одно слово, и ещё 10 слов до и после этого слова.
Заранее спасибо. Ребята, как осуществить следущее:
Имеется текст, из него нужно выдернуть одно слово, и ещё 10 слов до и после этого слова.
Заранее спасибо.";
print cutText('нужно',$text,50)
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(30.03.2006 в 22:13)
| | Игорь Вячеславович, а как будет выглядеть рег. выражение, если нужно будеть окружить не слово, а словочитание? Т.е. вместо "нужно" "нужно выдернуть одно".
И еще один вопрос.
Как в тексте выделить слово или фразу тэгом <b></b> до ближайщих пробелов?
Пример: кусок строки "кратно описа", нужно выделить так "<b>неоднократно описано</b>"!
В литературе неоднократно описано, как поток трансформирует адронный гидродинамический удар в том случае, когда процессы переизлучения спонтанны. Возмущение плотности синфазно. Частица неверифицируемо сжимает экзотермический атом, однозначно свидетельствуя о неустойчивости процесса в целом. В ряде недавних экспериментов квант выталкивает ультрафиолетовый магнит независимо от расстояния до горизонта событий. В литературе неоднократно описано, как жидкость экстремально индуцирует циркулирующий экситон в том случае, когда процессы переизлучения спонтанны.
|
| |
|
|
|
|
|
|
|
для: Artemy
(06.04.2006 в 11:00)
| | Да также, просто вместо "нужно", следует подставить "нужно выдернуть одно", только если применяется регулярное выражение желательно словосочетание прогнать через функцию preg_quote(), чтобы экранировать спец-символы. | |
|
|
|
|
|
|
|
для: cheops
(06.04.2006 в 13:07)
| | Я так пробовал, результат - пустота!
А по-поводу второго вопроса? | |
|
|
|