2011-04-24 75 views
1

當我嘗試使用下面的代碼:簡單的html dom和a?在url

$html = new simple_html_dom(); 
$url = "http://www.example.com/changeCity.php?city=NewYork="; 

$html->load_file($url); 

它加載http://www.example.com/changeCity.php

我如何得到它加載NewYork city?

我知道整個網址是什麼,它只是我不知道如何處理它時,它有它?

**

我仍然沒有* ** * *編輯* ** * ** * ***祝你好運。上面的代碼實際上加載了http://www.example.com/index.php - 我在上面提出了一個錯誤。 changeCity.php?city = NewYork =應該將城市改爲紐約,但是這仍然會在url http://www.example.com/index.php之下。所有城市都有相同的網址 - http://www.example.com/index.php

發生什麼事是代碼確實正在加載http://www.example.com/index.php,但它總是默認爲默認城市,基本上變化城市不起作用。我也試過其他城市,不僅紐約,但加載的網址總是默認回到默認城市。由於某些原因,代碼無法識別?它重定向的網址。

尾隨=並沒有什麼區別,我試過帶和沒有=的代碼。

任何想法?

+1

它應該像你顯示的那樣工作,只需要尾隨的'='是沒有必要的。什麼不工作? – 2011-04-24 12:44:34

+1

沒有理由,它不應該工作。除非example.com正在檢查UA或其他東西。 – JohnP 2011-04-24 12:46:49

+0

@Pekka:查詢字符串被省略,如問題所述。 – 2011-04-24 12:47:01

回答

0

您是否嘗試過urlencode $ url?

$url = urlencode("http://www.example.com/changeCity.php?city=NewYork"); 
+5

不要'urlencode'完整的URL,只有你想發送的查詢字符串。 – 2011-04-24 12:54:33

+0

值得編碼的唯一字符是尾部的'=',但這可能是一個錯字。 – Rudie 2011-04-24 12:58:18

0

我不知道什麼simple_html_dom,但你可以嘗試什麼:

$html = str_get_html(file_get_contents($url)); 

str_get_html是PHP LIB的一部分。第二個選項卡(「如何修改HTML元素?」)http://simplehtmldom.sourceforge.net/

您應該確實刪除或編碼尾部斜線。

0

這將加載changeCity.php,並通過NewYork=作爲$ _GET數組中的變量。你可以用這個變量做些事情。換句話說,就是$_GET['city'] == NewYork=

如果要加載有紐約的一個文件名的頁面,那麼你可以這樣做:

// changeCity.php 
$page = $_GET['city']; 
// secure $page variable 
incude($page . '.php'); 

我敢肯定你明白這一點,但OP並不完全清楚。

+0

@steve你現在修好了嗎? – 2011-04-28 23:00:30