首頁 >後端開發 >PHP問題 >php如何實現相對路徑轉絕對路徑

php如何實現相對路徑轉絕對路徑

王林
王林原創
2020-07-10 09:54:023714瀏覽

php實作相對路徑轉絕對路徑的方法:可以透過preg_replace()函數來實作。 preg_replace()函數可以執行一個正規表示式的搜尋和取代。若搜尋目標是字串數組,則函數傳回一個數組。

php如何實現相對路徑轉絕對路徑

我們可以透過preg_replace()函數來實作相對路徑轉絕對路徑。

(推薦學習:php教學

函數介紹

preg_replace() 函數執行一個正規表示式的搜尋和取代。

函數語法

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

搜尋 subject 中符合 pattern 的部分, 以 replacement 取代。

參數說明:

  • $pattern: 要搜尋的模式,可以是字串或字串陣列。

  • $replacement: 用於替換的字串或字串陣列。

  • $subject: 要搜尋已取代的目標字串或字串陣列。

  • $limit: 可選,對於每個模式用於每個 subject 字串的最大可替換次數。預設是-1(無限制)。

  • $count: 可選,為替換執行的次數。

傳回值

如果 subject 是一個數組, preg_replace() 傳回一個數組, 其他情況下傳回一個字串。

如果匹配被查找到,替換後的 subject 被返回,其他情況下 返回沒有改變的 subject。如果發生錯誤,則傳回 NULL。

程式碼實作:

//相对路径转化成绝对路径
<?
function relative_to_absolute($content, $feed_url) { 
preg_match(&#39;/(http|https|ftp):///&#39;, $feed_url, $protocol); 
$server_url = preg_replace("/(http|https|ftp|news):///", "", $feed_url);
//开源OSPhP.COM.CN
$server_url = preg_replace("//.*/", "", $server_url); 
    if ($server_url == &#39;&#39;) { 
        return $content; 
    } 
    if (isset($protocol[0])) {
//开源代码OSPhP.COm.CN
$new_content = preg_replace(&#39;/href="//&#39;, &#39;href="&#39;.$protocol[0].$server_url.&#39;/&#39;, $content); 
$new_content = preg_replace(&#39;/src="//&#39;, &#39;src="&#39;.$protocol[0].$server_url.&#39;/&#39;, $new_content);  //开源OSPhP.COM.CN
    } else { 
$new_content = $content; 
    } 
    return $new_content; 
} 
?>

以上是php如何實現相對路徑轉絕對路徑的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn