Поиск посредством preg_match

12
A
На сайте с 10.03.2008
Offline
40
1393

Помогите построить строку поиска с применением функции preg_match.

Вот пример:

Есть ссылка: https://z-payment.ru/?partner=ZP11111111

Посредством функции preg_match из этой строки нужно вывести только часть ссылки, а точнее только ZP11111111. Как должен быть построен шаблон поиска с применением данной функции?

andryus добавил 30.09.2010 в 20:27

И еще: есть строка 250.28 руб. как таким образом можно получить только цифры, отбросив слово "руб.", при том вместо "руб." может быть другие символы. Проще говоря нужно "вычленить" и вывести на экран с применением данной функции только цифры, отбросив лишние символы с лева и справа.

Сервис активной рекламы (http://mailcasher.info/) Диски почтой (http://www.postcd.ru/)
[Удален]
#1
[Удален]
#2
So1:
регулярные выражения

Всё бы вам регулярки мучать, нет бы что попроще.:p

$html = substr(stristr($html,"https://z-payment.ru/?partner="),strlen("https://z-payment.ru/?partner="));

$i = 0;
while(!intval(substr($html,$i)))$i++;
$result = substr($html,0,$i).intval(substr($html,$i));

Громоздко?

Зато на больших текстах производительность на 2 порядка быстрее.

A
На сайте с 10.03.2008
Offline
40
#3

На изучение использования регулярных выражений я так понял нужно время, а может кто поможет с конкретным приведением результата по моим просьбам?

[Удален]
#4
andryus:
может кто поможет с конкретным приведением результата по моим просьбам?

Мой код не работает?

P
На сайте с 03.12.2008
Offline
38
#5

рубль так

'/[0-9\.]+/', "250.28 руб"

S
На сайте с 28.10.2005
Offline
319
#6



$string = 'https://z-payment.ru/?partner=ZP11111111';

preg_match ( '/=(.*)/', $string, $found );

echo $found [1];



$string = 'https://z-payment.ru/?partner=ZP11111111';

$tmp = explode ( '=', $string );

echo $tmp [1];

PR
На сайте с 30.12.2007
Offline
140
#7
andryus:
На изучение использования регулярных выражений я так понял нужно время

На написание сообщения оно тоже необходимо.

$str = 'https://z-payment.ru/?partner=ZP11111111';


if (preg_match('#ZP[\d]+#', $str, $match)) {
echo 'Партнер: '.$match[0];
}
Skom
На сайте с 02.12.2006
Offline
165
#8
PROGRAMMATOR:



if (preg_match('#ZP[\d]+#', $str, $match))

А если партнёр=ХЗЧЁТОТАМ?

:D

Skom добавил 01.10.2010 в 00:49

mrFatCat:
Всё бы вам регулярки мучать, нет бы что попроще.:p
$html = substr(stristr($html,"https://z-payment.ru/?partner="),strlen("https://z-payment.ru/?partner="));

$i = 0;
while(!intval(substr($html,$i)))$i++;
$result = substr($html,0,$i).intval(substr($html,$i));

Громоздко?
Зато на больших текстах производительность на 2 порядка быстрее.

Тогда уж

$str = 'https://z-payment.ru/?partner=ZP11111111'; 

list($undef,$Partner)=preg_split("|=|",$str);

Знак "=" найти - всё проще таких итераций... :)

Cras amet qui numquam amavit quique amavit cras amet
LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#9

эм...

а не так ли проще?


$part=str_replace('https://z-payment.ru/?partner=','','https://z-payment.ru/?partner=ZP11111111');
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
S
На сайте с 28.10.2005
Offline
319
#10
andryus:
Проще говоря нужно "вычленить" и вывести на экран с применением данной функции только цифры, отбросив лишние символы с лева и справа.


$string = 'есть строка 250.28 руб. как таким образом можно получить только цифры';

preg_match ( '/[0-9\.]*/', $string, $found );

echo $found [0];
12

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