@ImSoSorry

Как вставить переменную в регулярное выражение PHP?

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

Есть site.com где:
<a href="/clothing/jacket/">Jacket</a>
<a href="/clothing/Socks/">Socks</a>
<a href="/clothing/Shoes/">Shoes</a>
<a href="/clothing/Skirt/">Skirt</a>


Туплю над тем как мне найти именно "/clothing/Skirt/" или "/clothing/Shoes/" в зависимости от значения $type.
Если $type = Skirt находит "/clothing/Skirt/", если Socks то соответственно находит "/clothing/Socks/"

Пробовал так, но что то не то, в чем проблема?
$type = 'Skirt';
$html = file_get_contents("http://site.com");
if (preg_match_all('#<a href="(.+?)">'.$type.'<\/a>#', $html, $regs, PREG_PATTERN_ORDER)){
    foreach($regs[1] as $v){

    print_r($v);

    }

}
  • Вопрос задан
  • 733 просмотра
Пригласить эксперта
Ответы на вопрос 2
nokimaro
@nokimaro Куратор тега PHP
https://3v4l.org/25S3Y

<?php
$data = <<<HTML
<a href="/clothing/jacket/">Jacket</a>
<a href="/clothing/Socks/">Socks</a>
<a href="/clothing/Shoes/">Shoes</a>
<a href="/clothing/Skirt/" class="xxx">test Skirt test</a>
HTML;

$type = 'skirt';

preg_match('!href="([^"]+)"[^>]*?>[^<]*?'.$type.'[^<]*?<!usi', $data, $out);

print_r($out[1]);
Ответ написан
@WotKievlanin
Делаю свой сайт diplomus.kiev.ua на чистом коде.
А если с функцией strripos(), substr(),
Вырезать нужную директорию и сравнивать.
Обрезать последний слеш затем получить номер позиции последнего слеша и обрезать всю строку до него получится чистый skirt
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы