2011-11-30 139 views
1

我有一個路徑,我想檢查一個url。如何將我隔離 http://www.mypage.com/pages/morepages/檢查路徑是否在url中

我試着運行在我的網址解析URL功能

「頁/ morepages /」,然後我得到的路徑。我不知道如何訪問該數組中的那個鍵。例如..

$url = 'http://www.mypage.com/pages/morepages/'; 

print_r(parse_url($url)); 

if ($url['path'] == '/pages/morepages/') { 
    echo 'This works.'; 
}; 

我想運行if條件如果該路徑存在,但我無法訪問它。

回答

3

如果您只是在尋找另一個字符串,strpos()將工作得很好。

echo strpos($url, $path) !== false ? 'Exists' : 'Does Not Exist' ; 
+1

引用文檔:'如果你只是想確定是否草垛內發生特定的針,然後用更快,更內存密集型功能strpos()instead.' –

+0

@湯姆好一點。我必須在我的個人項目中停止使用'strstr';)答案已更新。 – Sampson

+0

這是不正確的。 strpos可以返回0,你必須使用!== false。編輯 – dynamic

0

您可以簡單地使用

if (parse_url($url['path'], PHP_URL_PATH) == '/pages/morepages/') { 
    echo 'This works.'; 
} // No semicolon 

它可能更好地使用strpos(),雖然,這是快了不少。

0

函數的結果只是分配給任何變量:

$parts = parse_url($url); 

if ($parts['path'] == '/pages/morepages') { 
} 
2

像查找字符串?

if (strpos($url['path'], '/pages/morepages/') !== false){ 
//echo "this works"; 
} 
2

在這裏你去

$url = 'http://www.mypage.com/pages/morepages/'; 

    if (strpos($url, '/pages/morepages/') !== false) { 
     echo "found"; 
    } else { 
     echo "not found"; 
    } 
0

Parse_url需要的東西返回到一個新的數組變量。如此使用:

$parsedUrl = parse_url($url)); 

if ($parsedUrl['path'] == '/pages/morepages/') { 
    echo 'This works.'; 
}; 
0

您不會將parse_url的輸出分配給變量。 $url仍然等於字符串(parse_url返回一個數組,它不會修改傳入的字符串)。

$url = parse_url($url);