2014-02-15 29 views
-1

我一直在尋找谷歌和stackflow的答案,並測試了一些發現,但我仍然無法得到這個工作。用PHP清理URL

所有這些結束我的鏈接在一個空間。例如www.website.com/movies/movie
當我試圖把它讀www.website.com/movies/movie with spaces here.mp4

$namehref = "movie/" . $dirArray[$index]. " download"; 

$DoStream = "<a href=" . $the_dir . ">Watch</a>"; 
$DoDownload = "<a href=" . $the_dir . ">Download</a>"; 

但是這個代碼不刪除空格???

$name = $dirArray[$index]; 
$movienameonly = substr($name, 0, -4); 

例如www.website.com/movies/movie用空格這裏


所以我的問題是 - 爲什麼的代碼的第一部分中的空格和如何糾正它。除了空格之外,我也會遇到錯誤。
例如他們here.mp4

回答

0

要完全刪除空格:

preg_replace("/\s/", "", $your_url); 

若要%20(最好的方法)代替空格:

preg_replace("/\s/", "%20", $your_url); 

要使用替代空間+ like url_encode($url) does:

preg_replace("/\s/", "+", $your_url); 

要使用%27替換'

preg_replace("/\s/", "%20", $your_url); 

你得到錯誤,因爲空間不能在瀏覽器中輸入並轉換空間,以20%和撇號至27%

+0

我無法弄清楚發生了什麼,因爲它仍然無法正常工作。你的代碼確實起作用,我能夠在其他地方測試它,但是我還有其他的東西在我還沒有找到。 當我右鍵點擊鏈接查看屬性我看到這 ​Watch Movie​ 然而,就在它旁邊,我使用相同的代碼來抓取正確打印「30分鐘或更少」的電影名稱。任何想法爲什麼會這樣做? –

0

我發現它:
$DoStream = "<a href=" . $the_dir . ">Watch</a>";

本來應該 $DoStream = "<a href='$the_dir'>Watch</a>";