[請益] PHP CURL問題

看板PHP作者 (雲淡風輕)時間17年前 (2008/10/07 03:00), 編輯推噓3(3016)
留言19則, 4人參與, 最新討論串1/1
我今天想要利用CURL向一個網站請求結果 不過一直失敗 有人能幫忙看一下嗎? 程式如下 function get_query($anotation,$SEQ,$Temp) { $info= "SEQ_NAME=".urlencode($anotation). "&SEQ=".urlencode($SEQ). "&CONSTRAINTS=". "&LorC=linear". "&T=".$Temp. "&PERCENT=5". "&MAX_FOLDS=5". "&WINDOW=default". "&MAX_LP=30". "&MAX_AS=30". "&MAXBP=no+limit". "&BATCH=An+immediate". "&EMAIL_ADDR=YYOOCC@gmail.com". "&IMG_WID=936". "&MODE=auto". "&GRID=OFF". "&ANGLES=default". "&LAB_FR=default". "&OFFSET=0". "&REG_DEG=0". "&ROT_ANG=auto". "&ANN=None". "&HILITE=". "&MAX_LENGTH1=800". "&MAX_LENGTH2=6000". "&NA=RNA". "&RH=bio218.bioinfo.yzu.edu.tw"; $query=curl_init(); curl_setopt($query,CURLOPT_URL, "http://mfold.bioinfo.rpi.edu/cgi-bin/mfold-3.2.cgi"); curl_setopt($query,CURLOPT_HEARDER,true); curl_setopt($query,CURLOPT_REFERER, "http://mfold.bioinfo.rpi.edu/cgi-bin/rna-form1-2.3.cgi"); curl_setopt($query,CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); curl_setopt($query,CURLOPT_CRLF,true); curl_setopt($query, CURLOPT_RETURNTRANSFER, 1); curl_setopt($query,CURLOPT_POST,true); curl_setopt($query,CURLOPT_FOLLOWLOCATION,true); curl_setopt($query,CURLOPT_POSTFIELDS,$info."\n"); $result=curl_exec($query); curl_close($query); return $result; } 以上這段程式我是想要對http://mfold.bioinfo.rpi.edu/cgi-bin/rna-form1-2.3.cgi 丟出一個sequence 然後接收回來的網頁 有人能幫一下嘛? 感謝~ ------------------ 這是回傳的訊息 但是我真的有確定$info中是有內容的 <html> <head> <title>Error! No sequence.</title> </head> <body bgcolor="#ffffff" text="#800000"> <center> <h1>No Sequence!</h1><br> <h2> Please go back to the form and enter a sequence to be folded. </h2> </center> </body> </html> 以下是$info的內容 SEQ_NAME=NP_851096_7&SEQ=TGCCATCATACGG&CONSTRAINTS=&LorC=linear&T=25&PERCENT=5\ &MAX_FOLDS=5&WINDOW=default&MAX_LP=30&MAX_AS=30&MAXBP=no+limit&BATCH=\ An+immediate&EMAIL_ADDR=YYOOCC@gmail.com&IMG_WID=936&MODE=auto&GRID=OFF&ANGLES\ =default&LAB_FR=default&OFFSET=0&REG_DEG=0&ROT_ANG=auto&ANN=None&HILITE=&MAX_L\ ENGTH1=800&MAX_LENGTH2=6000&NA=RNA&RH=bio218.bioinfo.yzu.edu.tw 拜託大家了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.155.216 ※ 編輯: windincloud 來自: 140.138.155.216 (10/07 03:01)

10/07 03:04, , 1F
CURLOPT_POSTFIELDS <- 筆誤?
10/07 03:04, 1F

10/07 03:48, , 2F
貼上來時打錯~ sorry
10/07 03:48, 2F
※ 編輯: windincloud 來自: 140.138.155.216 (10/07 03:48)

10/07 04:34, , 3F
最後一個RH=bio218.bioinfo.那裡有沒有少一個&?
10/07 04:34, 3F

10/07 05:49, , 4F
感謝~ 不過修正過後還是無法得到結果~
10/07 05:49, 4F

10/07 05:50, , 5F
我多加回傳的訊息到文中好了~ :)
10/07 05:50, 5F
※ 編輯: windincloud 來自: 140.138.155.216 (10/07 05:59)

10/07 14:33, , 6F
幫你測了一下,CURLOPT_HEARDER,打錯了
10/07 14:33, 6F

10/07 14:34, , 7F
然後你少傳了一個&SEQUENCE= 這個好像一定要傳
10/07 14:34, 7F

10/07 14:35, , 8F
接下來他好像有擋,只有RH='XXX'的網域他才允許
10/07 14:35, 8F

10/07 14:35, , 9F
hit the mfold server automatically 這是他傳回的話
10/07 14:35, 9F

10/07 14:35, , 10F
所以你再試試看吧~
10/07 14:35, 10F

10/07 14:36, , 11F
If you wish to hit the mfold server automatically
10/07 14:36, 11F

10/07 14:36, , 12F
please identify yourself
10/07 14:36, 12F

10/07 14:36, , 13F
(上面)這是他回傳的東西
10/07 14:36, 13F

10/07 19:08, , 14F
感謝~ 原來是我看POST封包時看錯變數~ 不過現在遇到
10/07 19:08, 14F

10/07 19:09, , 15F
要是他回傳的網頁是用<meta http-equiv="refresh">
10/07 19:09, 15F

10/07 19:10, , 16F
這樣的方式做redirect的話 那CURLOPT_FOLLOWLOCATION
10/07 19:10, 16F

10/07 19:11, , 17F
會有作用嗎? 還是要自己抓<META>來看?
10/07 19:11, 17F

10/07 20:25, , 18F
有個demo的網站嗎?
10/07 20:25, 18F

10/07 20:26, , 19F
照理說用FOLLOWLOCATION應該是可以
10/07 20:26, 19F
文章代碼(AID): #18wc19Tl (PHP)
文章代碼(AID): #18wc19Tl (PHP)