php
  • dom
  • 2013-07-17 38 views -3 likes 
    -3

    代替我有一個動態的PHP代碼如下檢查相對URL與絕對

    $url = "http://www.myweb.com/home"; 
    $mycontents = 'These are the contents with <a href="myweb/local.php" />relative link</a> and <a href="http://www.myweb.com/home/loc.php"> absolute link</a> and some images with <img src="myweb/local.jpg" /> with relative link and <img src="http://www.myurl.com/pictures/pic.jpg" />'; 
    

    $url$mycontents根據數據獲取正在發生變化,甚至包含鏈接的變化。任何會爲變量$mycontents掃描的函數,如果發現任何與a或src的鏈接,首先檢查是否是絕對的,如果是,則保留它,如果不是,則使用str_replace str_replace("src=\"", "src=\"".$url, $mycontents)並更改所有鏈接,然後回顯$ mycontents,目標是,一旦$ mycontents得到迴應,必須修改所有相關鏈接掃描,發現改爲絕對。

    +0

    我從幾個網站獲取數據,從它們的內容可能包含相對或絕對鏈接,該網站的URL是可用的上面顯示的$ url,但在回顯$ mycontents之前,鏈接和圖像必須檢查相對或絕對Url,如果相對,更改爲絕對,如果是絕對,保持原樣..幫助請我現在被卡住了.. – user2590639

    回答

    0

    首先,您應該確切知道需要查找哪些屬性並檢查其值。最簡單的檢查當然是簡單地在它們的開頭查找包含http(s)://的URL,並將它們分類爲絕對的,其他任何東西都需要替換。

    這些屬性將爲hrefsrc,作爲基礎。

    當然,這是一個非常基本的檢查,但至少現在它應該適合您的需要,除非可能出現任何邊緣情況。

    +0

    任何PHP函數檢查和更改該PLEASEEE ....我的頭痛! – user2590639

    +0

    您可以使用正則表達式來定位和標識需要替換的字符串。看看['preg_match_all'](http://php.net/preg_match_all) –

    +0

    我認爲這比你真正需要的要複雜得多,但是它會抽出我期望的幾個測試字符串:'#(href | src )=()(((?HTTP \:)。[A-Z0-9 \/\\\])*)\ 2#i' –

    相關問題