php
  • regex
  • url
  • 2017-05-14 48 views 0 likes 
    0

    我有很多的新聞項目數據庫和我有這樣相對URL替換爲絕對與正則表達式,如果輸入的網址不存在

    /index.php?news etc... 
    

    我需要這些URL轉換爲絕對,像這樣相對URL:

    http(or - s)//example.com/index.php?news etc..

    我也有這樣的代碼和它的作品

    $regex = '~<a([^>]*)href=["\']([^"\']*)["\']([^>]*)>~'; 
    $replace = '<a$1href="'. $absolute_url .'/$2"$3>'; 
    $data->introtext = preg_replace($regex, $replace, $news->introtext); 
    

    其中$news->introtext是我的文字有很多環節,例如:

    <a href="/index.php">some text</a> some text here <a href="https://facebook.com/etc"> 
    

    代碼是這樣的:

    <a href="http://example.com/index.php">some text</a> some text here <a href="http://example.com/https://facebook.com/etc"> 
    

    ,我不希望添加http://example.com/如果鏈接就像是https://facebook.com/etc

    回答

    0

    找到好方式:

    $data->introtext = preg_replace("#(<\s*a\s+[^>]*href\s*=\s*[\"'])(?!http)([^\"'>]+)([\"'>]+)#", '$1http://example.com/$2$3', $news->introtext); 
    

    if ur ls不存在然後添加url

    相關問題