Intereting Posts
Чтение и запись файлов конфигурации Как сделать временную ссылку для загружаемого файла Выбор значения атрибута в SimpleXML переменные, передающие ничего, показывают неопределенную ошибку переменной, поэтому вы хотите поместить значение по умолчанию для переменной открыть электронную почту php, используя imap, давая мне эту ошибку Сообщение: imap_open () : Не удалось открыть поток {imap.gmail.com:993/imap/ssl}INBOX Изменение языка с symfony 2.1 Как вы вставляете несколько записей в таблицу одновременно? Является ли хорошей практикой использовать теги meta refresh для перенаправления вместо функции header () в php? Регулярное выражение не работает должным образом с турецкими персонажами Как я могу ping порт сервера с PHP? Как определить глобальную переменную для Twig Почему вызов команды drush с помощью system () завершается с ошибкой? Любой эквивалент для mcrypt (в PHP) для использования в Java? Как вернуть объект из DQL-запроса? Как извлечь значение href

php получает слово непосредственно после определенного слова в строке

Я пытаюсь написать сценарий, который анализирует электронное письмо и ищет определенные строки после определенных строк.

Например, допустим, у меня есть следующий почтовый ящик.

$body = "Dear John Doe, your information is below Check in date: 07/23/2012 Check out date: 07/26/2012 Alternate Check in date: 07/27/2012 Alternate Check out date: 07/29/2012"; 

Я хочу захватить «слово» непосредственно после первого экземпляра «Check in date:», который будет «07/23/2012». «Слово» – это следующий набор символов с пробелами вокруг него. Я включил «альтернативные» части, потому что некоторые электронные письма будут иметь текстовую версию и версию html.

Я думаю, мне нужно использовать комбо из strpos (), substr () и explode (), но я не уверен, как это сделать. Какие-либо предложения?

Related of "php получает слово непосредственно после определенного слова в строке"

Точно, какие регулярные выражения хороши для:

 preg_match('/(?<=Check in date: )\S+/i', $string, $match); echo $match[0]; 

http://www.regular-expressions.info

Это хороший прецедент для регулярных выражений:

 if (preg_match('#^Check in date: ([^\s]+)#m', $body, $match)) { $result = $match[1]; } 

Попробуйте здесь: http://codepad.viper-7.com/W4UW4P