Получить значение с помощью регулярного выражения PHP - PullRequest
0 голосов
/ 28 февраля 2020

Мне нужно получить следующие значения из этой строки HTML, используя регулярное выражение:

Значения, чтобы получить «Вид на океан», «Пляж», «Бассейн», «Кондиционер», «Стиральная машина», «Сушилка», «Рядом с магазинами», «Парковка», «Полностью меблирована», «Кабельное / Спутниковое телевидение», «Inte rnet Соединение», «Барбекю», «Закрытое сообщество», «Рядом со школами», ' Полностью оборудованный »,« Балкон »,« Охрана »,« Огороженный »,« Частный сад »:

HTML строка

<div class='list2'>
Distance to Beach: <span class='detail'>One block</span><br />
Ocean View: <span class='detail'>no</span><br />
Beachfront: <span class='detail'>no</span><br />
Pool: <span class='detail'>yes</span><br />
Air Conditioning: <span class='detail'>yes</span><br />
Washer: <span class='detail'>yes</span><br />
Dryer: <span class='detail'>yes</span><br />
Close to Shops: <span class='detail'>yes</span><br />
Parking: <span class='detail'>yes</span><br />
Fully Furnished: <span class='detail'>yes</span>
</div>
    <div class='list2'>
Cable/Satellite TV: <span class='detail'>yes</span><br />
Internet Connection: <span class='detail'>yes</span><br />
Barbecue: <span class='detail'>no</span><br />
Gated Community: <span class='detail'>yes</span><br />
Close to Schools: <span class='detail'>yes</span><br />
Linens Provided: <span class='detail'>yes</span><br />
Fully Equipped: <span class='detail'>yes</span><br />
Balcony: <span class='detail'>yes</span><br />
Security: <span class='detail'>yes</span><br />
Fenced: <span class='detail'>yes</span><br />
Private Garden: <span class='detail'>no</span>
</div>

Я пробовал следующее, но он возвращает это массив

$features_tax = "/(.*?): <span class='detail'>yes<\/span>/";
    preg_match_all($features_tax, $web, $web_list);

возвращает:

array (size=16)
  0 => string '<!DOCTYPE HTML> <html lang='en'> <head> <meta charset='UTF-8' /><base href='http://www.alliancecostarica.com/' />  <link href='./files/acr.css' type='text/css' rel='stylesheet' /><link rel='stylesheet' type='text/css' href='./files/gallery.css' />      <link rel='stylesheet' type='text/css' href='./files/elastislide.css' /> <meta name='viewport' content='width=device-width, initial-scale=1' /> <title></title> <meta name='description' content='' />  <meta name='keywords' content='' /> </head> <body> <div class='... (length=5252)
  1 => string '<br /> Air Conditioning' (length=23)
  2 => string '<br /> Washer' (length=13)
  3 => string '<br /> Dryer' (length=12)
  4 => string '<br /> Close to Shops' (length=21)
  5 => string '<br /> Parking' (length=14)
  6 => string '<br /> Fully Furnished' (length=22)
  7 => string ' </div>  <div class='list2'> Cable/Satellite TV' (length=47)
  8 => string '<br /> Internet Connection' (length=26)
  9 => string '<br /> Barbecue: <span class='detail'>no</span><br /> Gated Community' (length=69)
  10 => string '<br /> Close to Schools' (length=23)
  11 => string '<br /> Linens Provided' (length=22)
  12 => string '<br /> Fully Equipped' (length=21)
  13 => string '<br /> Balcony' (length=14)
  14 => string '<br /> Security' (length=15)
  15 => string '<br /> Fenced' (length=13)

Проблема в индексах 7 и 9.

1 Ответ

1 голос
/ 28 февраля 2020

Если перед словом всегда есть тег <br />, вы можете использовать этот шаблон:

$pattern = "> (.*?): <span class='detail'>(?:One block|yes|no)<\/span>/";

Этот шаблон также включает различные значения внутри тега <span> в вашем примере.

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