powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Нахождения дат в тексте типа 2001г, 2003г и тд.
5 сообщений из 5, страница 1 из 1
[PHP] Нахождения дат в тексте типа 2001г, 2003г и тд.
    #38619657
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция, выводящая данные в цикле, в каждом посте есть дата типа: 2001г, 2010г и тд.

Как мне находить эти даты в тексте, и подставлять в SQL запрос. Пол дня потратил, но ничего пока не вышло.. Хотя вроде не раз решал подобные задачи, а тут что-то завис...


//Примерно так я пытался решить, но в цикле не выходит..
Код: php
1.
2.
3.
4.
5.
$content="Текст текст текст 2010г. текст текст";
for($i = 1900; $i<2015; $i++){ 
	if(preg_match("/$i/i", $content[$i])){ $date = $i; }
}				
printf ("<td>%s</td>",   $date); 
...
Рейтинг: 0 / 0
[PHP] Нахождения дат в тексте типа 2001г, 2003г и тд.
    #38619684
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не ясно, зачем тут цикл и не ясно, зачем обращаться к $i-тому элементу строки $content...

Если дату описать как четыре цифры и буква "г" , то мож вариант регулярки пойдет?
Код: php
1.
'/[12][09]\d\dг/i'
...
Рейтинг: 0 / 0
[PHP] Нахождения дат в тексте типа 2001г, 2003г и тд.
    #38619687
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleНе ясно, зачем тут цикл и не ясно, зачем обращаться к $i-тому элементу строки $content...

Если дату описать как четыре цифры и буква "г" , то мож вариант регулярки пойдет?
Код: php
1.
'/[12][09]\d\dг/i'



Да, мой пример не совсем корректный.

-Зачем в цикле? Ну так мне нужно возвращать значение в функцию. То есть если в тексте нашлось: 2010, в функцию должно вернуться: 2010, а не true или false. Я наверно все варианты перепробовал, но что-то не выходит, там у меня несколько циклов вложенных и тд. Видимо где-то не то что-то делаю.

Если пишу тупо в лобовую, то работает, а вот этот вариант для всех дат от 1900-2014 года не могу перебрать:
Код: php
1.
2.
if(preg_match("/2010/i", $content)) { return "2010";}
if(preg_match("/2011/i", $content)) { return "2011";}



Щас попробую твой вариант.
...
Рейтинг: 0 / 0
[PHP] Нахождения дат в тексте типа 2001г, 2003г и тд.
    #38619689
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда, возможно, проще вытащить дату непосредственно из текста, примерно так:
Код: php
1.
if(preg_match('/\s([12][09]\d\d)г/i', $content, $matches)) return $matches[1];


Впрочем, если условие на выбираемые даты более жесткое (например, строго от 1900 до 2014), то можно регулярку еще усложнить немного.
...
Рейтинг: 0 / 0
[PHP] Нахождения дат в тексте типа 2001г, 2003г и тд.
    #38619692
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleТогда, возможно, проще вытащить дату непосредственно из текста, примерно так:
Код: php
1.
if(preg_match('/\s([12][09]\d\d)г/i', $content, $matches)) return $matches[1];


Впрочем, если условие на выбираемые даты более жесткое (например, строго от 1900 до 2014), то можно регулярку еще усложнить немного.

Спасибо!

То что надо!

Ты меня спас!

А то я сегодня не уснул бы)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [PHP] Нахождения дат в тексте типа 2001г, 2003г и тд.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]