Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить текст между двумя фрагментами 
:(
    Опции темы
Win MK 32
Дата 4.2.2014, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 492
Регистрация: 15.7.2002

Репутация: нет
Всего: нет



Здравствуйте. Есть некий текст или же html-код (по разному бывает). Нужна функция пользовательская, чтобы у нее было 4 параметра:
1) Строка (текст, код и т.д.)
2) Что должно идти сначала
3) Что должно идти после
4) Номер найденного случая (вдруг так много раз встречается) (ну или пусть не будет третьего параметра, а будет массив)

То есть чтобы в функцию не подавать никаких регулярок.  А просто текст. Приведу пример:

Код

return mysearch_in_some_string("<html>...<div class=\"lalala\">-21<sup>o</sup></div>...</html>", "class=\"lalala\">", "<sup>");


Это сообщение отредактировал(а) Win MK 32 - 4.2.2014, 14:06
PM   Вверх
ksnk
Дата 12.2.2014, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Win MK 32, определись, что надо, а то непонятно же ;)

При чем тут нелюбовь к регуляркам? А про utf8 слышно? А про независимость от регистра?
Код

function mysearch_in_some_string($subj,$start,$fin){
    $i=0;
    if(false!==($s=strpos($subj,$start,$i))) {
        $i=$s+strlen($start);
        if(false!==($f=strpos($subj,$fin,$i))){
            return substr($subj,$i,$f-$i);
        }
    }
    return false;
}

echo mysearch_in_some_string("<html>...<div class=\"lalala\">-21<sup>o</sup></div>...</html>", "class=\"lalala\">", "<sup>");


Пойдет?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
_zorn_
Дата 12.2.2014, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Цитата(ksnk @  12.2.2014,  15:24 Найти цитируемый пост)
При чем тут нелюбовь к регуляркам?

Наверное имелось ввиду чтобы в качестве параметров не передавать регулярку.
А так
Код

function mysearch_in_some_string($subj,$start,$fin,$pos=0){
  preg_match_all('#'.str_replace('#','\\#',$start).'(.*?)'.str_replace('#','\\#',$fin).'#u',$subj,$m); //регистрозависимый UTF-8
  return $m[$pos][1];
}


Это сообщение отредактировал(а) _zorn_ - 12.2.2014, 10:00
PM MAIL   Вверх
ksnk
Дата 12.2.2014, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



_zorn_, Еще можно вспомнить про функций preg_quote, при динамическом создании регулярки.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0752 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.