 |
 |
Форум сетевых администраторов » Программирование » PHP » Вернуть часть строки слева и справа от подстроки
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник
|
Вернуть часть строки слева и справа от подстроки |
[сооб. #75968]
19-04-2005 22:31 |
|
Участник
Зарегистрирован: Nov 2004
Место проживания:
Публикаций: 21
Статус:  |
Всезнающий all ! 
Помоги разобраться 
Есть две строки:
1. "Lesnix - это тот же самый лесник, только заканчивается на букву икс"
2. "самый лесник"
Как видите строка 2 является частью строки 1. Необходимо выбрать часть строки 1 начиная за 8 символов до строки 2, строку 2, а затем 8 символов после строки 2.
То есть:
PHP:
$str1="Lesnix - это тот же самый лесник, только заканчивается на букву икс";
$str2="самый лесник";
echo("...".foo($str1,$str2,8,8)."...");
В нашем случае должно быть выведено: "... тот же самый лесник, только..."
Напишите функцию foo() наиболее рациональным способом
...или, может быть, замечательный язык PHP уже содержит такую или подобную функцию ?
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
19-04-2005 22:31 |
|
|


Участник+
|
| Замечательный язык содержит функцию preg_match();... |
[сооб. #75991]
21-04-2005 08:11 |
|
Участник+

Зарегистрирован: Feb 2002
Место проживания: RU, VLadivostok
Публикаций: 145
Статус:  |
Замечательный язык содержит функцию preg_match(); которая может возвращать массив совпадений. В шаблоне поиска можно занести в скобки те элементы, которые должны быть в конечном массиве. А потом уже обычной строковой substr(); обрезать до нужной длины.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
21-04-2005 08:11 |
|
|
Участник
|
| Nevermind,... Ð_то, конечно, вариант...но не такой... |
[сооб. #76010]
21-04-2005 20:13 |
|
Участник
Зарегистрирован: Nov 2004
Место проживания:
Публикаций: 21
Статус:  |
Nevermind,... Ð_то, конечно, вариант...но не такой уж рациональный...
А ответ пришел с Codenet'a 
PHP:
$str1="Lesnix - это тот же самый лесник, только заканчивается на букву икс";
$str2="самый лесник";
function foo($str1,$str2,$n1,$n2) {
$p=strpos($str1,$str2);
if ($p) {
return(substr($str1,$p-8,strlen($str2)+16));
}
return("");
}
echo("...".foo($str1,$str2,8,8)."...");
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
21-04-2005 20:13 |
|
|
|
Формат времени GMT. Текущее время 00:53.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.24039602 seconds (97.92% PHP - 2.08% MySQL) with 26 queries.
|
 |