Как удалить теги <a></a> с помощью str_replace для определенного домена? - PullRequest
0 голосов
/ 03 марта 2019

Я хотел бы удалить тег из определенного домена с помощью str_replace

  <a href="google.com/1235"> content1
    </a>
    <a href="somelink.com/2455"> content12
    </a>
    <a href="google2.com/3"> content13
    </a>
    <a href="some.com/34858"> content14
    </a>
    <a href="somelink.com/3"> content14
    </a>
    <a href="somelink.com/31111"> content14
    </a>
    <a href="somelink.com/3111d1"> content16
    </a> ........ ect ... 

Здесь я хочу удалить тег для домена: somelink.com

Это то, что у меня есть:

$abcont = file_get_contents ("http://www.example.com");

preg_match_all ('{<a href=somelink.com/.*?> (. *?) </a>}', $abcont, $allLinksMatchs);

$abcont = str_replace ("<a href =", $allLinksMatchs, $abcont);

так что получается:

<a href="google.com/1235"> content1
    </a>
     content12

    <a href="google2.com/3"> content13
    </a>
    <a href="some.com/34858"> content14
    </a>
  content14

     content14

     content16
   ....... ect ... 

1 Ответ

0 голосов
/ 03 марта 2019

Хм, зачем использовать str_replace при наличии preg_replace ?

Этот код будет работать для вас для одного домена:

$domain = 'somelink.com';

$abcont = preg_replace("/<a href=\"{$domain}.+\">(.+)<\/a>/iUs", "$1", $abcont);

или если вы хотите использовать несколько доменов, вместо переменной $ domain мы будем использовать массив $ domains

$domains = ['somelink.com'];

$abcont = preg_replace("/<a href=\"(" . join("|", $domains) . ").+\">(.+)<\/a>/iUs", "$2", $abcont);
...