PHP «Удалить все между» конкретные слова - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть список предметов.Каждый элемент имеет свое описание (описание отличается для каждого элемента, но его структура остается неизменной), которое выглядит примерно так:

[description] => Flat sandal <br />Blush<br />Laminated leather<br />Intertwining straps<br />Low heel: 0.5cm<br />

        Product code: 5276870PS006703 <br /> Made in: Italy<br />Composition: 100%Calfskin

Мне нужно удалить часть "Код продукта: (случайные числаи буквы) "для каждого описания товара.Я думал об использовании string_replace, но он будет работать только для замены слов «Код продукта», но не цифр и букв, потому что они различны для каждого элемента.Я также попробовал:

$description = delete_all_between("Product code:", "<br />", $description);

Но это не сработало.Не уверен, что еще я могу попробовать.

Спасибо

Ответы [ 3 ]

0 голосов
/ 13 декабря 2018

Используйте функцию preg_replace () -

$result = preg_replace('/product\s+code[^>]*\>/is', '', $input);

Регулярное выражение

look for    "product"
followed by \s+ (one or more spaces, tabs,...)
followed by "code"
followed by [^>]* (an unspecified amount of charakters that are not ">")
followed by \> an ">" (\ is es for escaping)

Флаг

i = ignore upper/lowercase
s = search multiple lines
0 голосов
/ 13 декабря 2018

Вам нужно взглянуть на preg_replace , который использует регулярные выражения и дает вам много сил для нацеливания на что угодно после.

Что-то вроде

$string = 'Flat sandal <br />Blush<br />Laminated     leather<br/>Intertwining straps<br />Low heel: 0.5cm<br />Product code: 5276870PS006703 <br /> Made in: Italy<br />Composition:';
$pattern = '/Product code: (w+) /i';
$replacement = '';
echo preg_replace($pattern, $replacement, $string);

Надеюсь, что поможет

0 голосов
/ 13 декабря 2018

Вы можете адаптировать следующий код:

$description = 'Flat sandal <br />Blush<br />Laminated leather<br />Intertwining straps<br />Low heel: 0.5cm<br />

        Product code: 5276870PS006703 <br /> Made in: Italy<br />Composition: 100%Calfskin';
$pattern = '/Product code:\s*\w*\s*<br />/';
$replacement = '';
echo preg_replace($pattern, $replacement, $description);

конечный вывод:

Flat sandal 
Blush
Laminated leather
Intertwining straps
Low heel: 0.5cm
Made in: Italy
Composition: 100%Calfskin

Пояснения:

preg_replace - это функция php, которая заменяет во входной строке определенный шаблон, заданный регулярным выражением, заменой

Используемое регулярное выражение Product code:\s*\w*\s*<br /> demo будет соответствовать строкам, которые начинаются с Product code:, за которыми следуют несколько пробелов, за которыми следуют несколько символов слова, больше пробелов перед окончанием html <br /> ( Regex quicksheet ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...