iT邦幫忙

0

PHP 更改URL內容

我要用Line Message API透過HEROKU網站,控制家中ESP8266的電器,原做法是在HEROKU上產生一個HTML檔(內含ESP8266的網址及密碼),再按"按鈕"到ESP8266的功能選項(開或關).
現在改執行HEROKU程式時,使用curl_setopt參數直接 POST ESP8266的網址及密碼,能成功的看到ESP8266的功能選項(開或關),但URL仍在HEROKU上,所以我按功能選項時卻在HEROBU上執行,而不是在ESP8266上.

https://ithelp.ithome.com.tw/upload/images/20190318/20116224lFYXWG6t6F.png
上面是我家的捲門程式的開始頁.
我的HEROKU上PHP一段程式
$urls="http://49.211.21.77:8888/";
$ch = curl_init($urls);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,"pswd=bbuxxoo");
$result = curl_exec($ch);
curl_close($ch);

代入網址及密碼,跳過上圖的密碼輸入,直接進入功能選項,
https://ithelp.ithome.com.tw/upload/images/20190317/20116224lfOtzfh5By.png

但URL的網址仍為HEROKU上的程式
(http://iotgxxxx.herokuapp.com/lindaDR.php?par=zssdfxcc)
而不是(http://49.211.21.77:8888/),導致按下選項時變成執行是
(http://iotgxxxx.herokuapp.com/?io=ginda)而不是
(http://49.211.21.77:8888/?io=ginda).
請問先進我要如何更改URL的內容??謝謝.

註冊單 iT邦新手 4 級 ‧ 2019-03-17 20:45:16 檢舉
對ICON按右鍵開啟檔案 選擇你要的瀏覽器

2 個回答

0
最佳解答

依您給的PHP在$result = curl_exec($ch);後面加上
//要被代換的字
$search = 'http://iotgxxxx.herokuapp.com';
//要變成的字
$replace = 'http://49.211.21.77:8888';
$result = str_replace($search, $replace, $result);

0
浩瀚星空
iT邦超人 1 級 ‧ 2019-03-18 11:07:58

你說的情境有點模糊麻煩。不過我有注意到你有用php。

不過目前不太了解的就是你的內部運行情況是如何的。
正常來說,除了可以利用js來做轉頁之外。
你也可以用php的header來幫你做轉頁轉向才對。

如果你不能用js轉的話。是可以利用一下
但因為不太確定你是否是利用了back call的原理。(如ajax)
其原來頁面是否有無可編輯性。

擔心的是你是利用了別人的頁面無可編輯性。或許你可以將你的情境再說明清楚一些會比較好告訴你怎麼處理

對了,可以無視上頭給你的答案,超無厘頭。

froce iT邦大師 1 級 ‧ 2019-03-18 11:17:34 檢舉

我是建議都在後端用curl把網址寫在後端。不要用前端去送給switch。
這樣可以讓前端至少看不出來switch的網址。減少直接打switch的風險。
不過看到這問題描述,我怕說了原po聽不懂...

至於那個無厘頭的回答,真的請完全無視。

我要發表回答

立即登入回答