Поиск в переменной PHP и запись найденного слова

123 4
[Удален]
#11
kom09:
А если текст будет вот такой, то не сработает ни одно приведенное решение: 😂
$text = "Петя решил отпраздновать Новый год в славном городе Москве за тридцать тысяч рублей, хотя Маша предлагала ему поехать в Вологду".

Это юмор?

Или приводите пример. Я все проги проверяю. Вот:

http://chajnik.ru/php-primer

danforth
На сайте с 18.12.2015
Offline
153
#12

Милторг родился в городе-герое Калининиград.

Вы вообще в склонения можете? Вам скинули пример, попробуйте его засунуть в прогу вашу.

Junior Web Developer
[Удален]
#13
danforth:
Милторг родился в городе-герое Калининиград.
Вы вообще в склонения можете? Вам скинули пример, попробуйте его засунуть в прогу вашу.

Я родился в Прокопьевске. В Самаре закончил КуАИ.

Пример засунул. Работает:

http://chajnik.ru/php-primer

---------- Добавлено 13.12.2016 в 18:15 ----------

Код:

<?

print $text = "Петя решил отпраздновать Новый год в славном городе Москве за тридцать тысяч рублей, хотя Маша предлагала ему поехать в Вологду";

$cities=array(

'Воронеж'=>'voronezh',

'Москва'=>'moskva',

'Казань'=>'kazan',

'Реутов'=>'reutov',

'Санкт-Петербург'=>'piter',

'Нью-Йорк'=>'newyork',

'Владивосток'=>'vladivostok',

);

//print $text = "Петя решил отпраздновать Новый год в славном городе хотя Маша предлагала ему поехать в Казань";

print '<p>&nbsp;</p>';

foreach ($cities as $city => $t) {

if (preg_match("/$city/", $text)) {$gorod=$t; break;}

else $gorod='netgoroda';

}

print $gorod;

print '<p>&nbsp;</p>';

//print $text = "Петя решил отпраздновать Новый год в славном городе Казань за 25850 рублей, хотя Маша предлагала ему поехать в Санкт-Петербург";

if (preg_match("/(\d* *\d+) рублей/", $text, $u)) print $rub = preg_replace("/ /","",$u[1]);

else print "Перед словом рублей нет цифр или нет слова рублей";

print '<p>&nbsp;</p>';

?>

danforth
На сайте с 18.12.2015
Offline
153
#14
miltorg:
Работает

Что работает? Там netgoroda написано. Москва и Москве - два разных города по вашему?

Для того, чтобы определялись склонения, нужно писать что-то вроде метафон-функции и высчитывать дистанцию между словами (левенштайн). Все остальное (preg_match, strpos, etc.) - как авторизация только по логину. Идиотизм другими словами.

[Удален]
#15
danforth:
Что работает? Там netgoroda написано. Москва и Москве - два разных города по вашему?
Для того, чтобы определялись склонения, нужно писать что-то вроде метафон-функции и высчитывать дистанцию между словами (левенштайн). Все остальное (preg_match, strpos, etc.) - как авторизация только по логину. Идиотизм другими словами.

А. Вот вы про что. Сейчас сделаю.

---------- Добавлено 13.12.2016 в 18:32 ----------

miltorg:
А. Вот вы про что. Сейчас сделаю.

Москву сделал.

http://chajnik.ru/php-primer

---------- Добавлено 13.12.2016 в 18:49 ----------

Прикрутил поле ввода. можно вводить текст

danforth
На сайте с 18.12.2015
Offline
153
#16

Ваше: http://prntscr.com/diz0xe

И даже так: http://prntscr.com/diz93x

Должно: http://prntscr.com/diz88n

И даже так должно: http://prntscr.com/diz9k8

Исходник продам за 20 баксов. :)

[Удален]
#17
danforth:
Ваше: http://prntscr.com/diz0xe
И даже так: http://prntscr.com/diz93x
Должно: http://prntscr.com/diz88n
И даже так должно: http://prntscr.com/diz9k8

Исходник продам за 20 баксов. :)

А при чём тут Казань? Я делал Москву

---------- Добавлено 13.12.2016 в 19:39 ----------

Города москва - не существует. Есть Москва.

danforth
На сайте с 18.12.2015
Offline
153
#18

miltorg, при том, что если в базе появится +500 городов, вы на каждый напишете регулярку?

...

preg_match('москв', $text)

preg_match('казан', $text)

...

veleg
На сайте с 30.01.2011
Offline
142
#19

[ATTACH]158308[/ATTACH]

miltorg`y делать нечего что ли всю формологию лопатить? Он представил рабочий код, а склонения и тп это легко дополняется. ТС попросил, miltorg вежливо вызвался помочь, и как я вижу - помог.

Все остальное - нюансы, которые требуют времени.

jpg 158308.jpg
Фигачу Телеграм-ботов ( https://teleg.run/veleg )
danforth
На сайте с 18.12.2015
Offline
153
#20
miltorg:
Города москва - не существует. Есть Москва.

Город Москва, как и москва, существует. Просто допущена ошибка в написании. Страшно представить что было-бы, если бы вы писали поисковый алгоритм Google.

- кинотеатры казани

- 0 результатов

---------- Добавлено 13.12.2016 в 19:51 ----------

veleg:
Все остальное - нюансы, которые требуют времени.

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

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий