AndzX8-842 Posted May 29, 2006 Report Share Posted May 29, 2006 (edited) Fsockopen(); nestrādā, ja šai funkcijai tiek padots URL lapa:ports formātā. <?php $fp = fsockopen("$url", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: $url\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?> Pieņemot, ka $url = www.example.com:80 lapu atverot nekādus datus no tās dabūt nevar. Parādās HTML status -- lapa nav atrasta. Ja man tās saites, kuras jāapskata nāk formātā lapa:ports, tad tās paliek neizmantojamas vai vismaz neizmantojamas tādā veidā, kā es viņas cenšos atvērt... Ir kāds veids kā varētu iemānīt portu tādā lapa:ports formātā? Problēma būtu minimāla, ja saites tā arī beigots ar kolu + skaitļiem. Bet tās tur nebeidzas...līdz ar to tā vienkārši nogriest nost to portu nevar un dabūt(piem. http://lapa:ports/lapa/lapa/...). Varētu mēģināt CURL, bet php nav kopā ar to sakompilēts, tā, ka tas atkrīt. Idejas? PHP versija ir 5.0.x. Edited May 29, 2006 by AndzX8-842 Link to comment Share on other sites More sharing options...
bubu Posted May 29, 2006 Report Share Posted May 29, 2006 Tak ports jāpadod otrajā parametrā. Tev pašam tas jāatdala un jāpadod tur kur vajag. parse_url skaties. Link to comment Share on other sites More sharing options...
AndzX8-842 Posted May 29, 2006 Author Report Share Posted May 29, 2006 (edited) Tur jau tā problēma, ka tur tas ports ir jāpadod. Man tas neder vai vismaz nederēja. Atradu atrisinājumu kā dabūt to portu laukā no pašas saites un arī iekšā citā string. Ja kādam interesē, te ir atbilde :). $str = trim($str, "qwertyuiopasdfghjklzxcvbnm!@#$%^&*()_+=-~`[]{}\|:;,./<>?/*-¼½¾€¢™©°·°"); Viss, kas paliek ir skaitļi un varbūt vēl kāda zīme. Tagad ir mazliet savādāka ķibele. Kā, lai caur fsockopen() padod datus lapai, kura tiek vērta vaļā, to vispār var izdarīt caur fsockopen? $out = "GET / HTTP/1.1\r\n"; $out .= "Host: $tracker\r\n"; $out .= "Connection: Close\r\n\r\n"; Kā tas rakstāms, ja to var izdarīt? Edited May 29, 2006 by AndzX8-842 Link to comment Share on other sites More sharing options...
bubu Posted May 29, 2006 Report Share Posted May 29, 2006 Par portu - es atkārtojos - parse_url. Par datu padošanu, ja domāji POST pieprasījumu, tad tāds arī jāraksta, nevis GET pieprasījums. ja domāji GET parametrus, tad tie padodās aiz visiem headeriem aiz viena entera. Palasi http specifikāciju (RFCā). Link to comment Share on other sites More sharing options...
Recommended Posts