404 Posted February 13, 2010 Report Share Posted February 13, 2010 (edited) Ir grabberītis,kas izmantojot CURL ievāc saturu no uzdotās adreses.Gribētos uzlabot,lai varētu to darīt no vairākām adresēm vienlaicīgi,bet katrai vajag atšķirīgus curl_setopt uzstādījumus.Katrai adresei rakstīt savu setopt funkciju nelikās prātīgi,tāpēc radās doma izveidot config failiņus,no kuriem šos uzstādījumus nolasīt,un pēc vajadzības dinamiski pārrakstīt.Doma bija darīt kaut kā šādi: conf.txt saturs: CURLOPT_CONNECTTIMEOUT|20 CURLOPT_TIMEOUT|20 CURLOPT_HEADER|0 CURLOPT_AUTOREFERER|1 CURLOPT_FOLLOWLOCATION|0 CURLOPT_RETURNTRANSFER|1 CURLOPT_ENCODING|utf-8 CURLOPT_COOKIEJAR|cookie.txt CURLOPT_COOKIEFILE|cookie.txt CURLOPT_SSL_VERIFYPEER|0 CURLOPT_SSL_VERIFYHOST|0 CURLOPT_USERAGENT|Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6 $configuration = file('sites/'.$site.'/conf.txt'); $options = array(); foreach($configuration as $row) { $parts = explode('|', $row); $key = ($parts[0]); $value = ($parts[1]); $options[$key] = $value; } $ch = curl_init( $url ); curl_setopt_array( $ch, $options ); $content = curl_exec( $ch ); $error = curl_errno( $ch ); $errmsg = curl_error( $ch ); $info = curl_getinfo( $ch ); Tas neiet cauri.Masīvs ir,values ir,bet CURL paziņo: "Warning: curl_setopt_array(): Array keys must be CURLOPT constants or equivalent interger values." Cik saprotu,tad $options masīvā esošās atslēgas netiek uztvertas kā CURL konstantes.Kā viņas varētu padarīt šim redzamas? Mēģināju lasot masīvā šīs definēt kā konstantes,bet tad atkal paziņo,ka viņas jau ir: "Notice: Constant already defined" eval($key) arī laikam neko nevar līdzēt. Kā šo vispār varētu dabūt gatavu? Edited February 13, 2010 by 404 Quote Link to comment Share on other sites More sharing options...
bubu Posted February 13, 2010 Report Share Posted February 13, 2010 $key = constant ($parts[0]); Quote Link to comment Share on other sites More sharing options...
404 Posted February 13, 2010 Author Report Share Posted February 13, 2010 Izrādās ka elementāri.Paldies :) Quote Link to comment Share on other sites More sharing options...
2easy Posted February 13, 2010 Report Share Posted February 13, 2010 define('TEST', 123); echo eval('return TEST;'); // tā es rakstīju līdz šim echo constant('TEST'); // tā es rakstīšu tagad! paldies, bubu :)) Quote Link to comment Share on other sites More sharing options...
waplet Posted February 13, 2010 Report Share Posted February 13, 2010 define('TEST', 123); echo eval('return TEST;'); // tā es rakstīju līdz šim echo constant('TEST'); // tā es rakstīšu tagad! paldies, bubu :)) nu nu :D ja nemaldos, pats man teici constant().. bet varbūt es maldos.. prostite za oftopik. Quote Link to comment Share on other sites More sharing options...
2easy Posted February 13, 2010 Report Share Posted February 13, 2010 maldies Quote Link to comment Share on other sites More sharing options...
bubu Posted February 13, 2010 Report Share Posted February 13, 2010 Es pirms šī topika arī nezināju par tādu constant funkcijas esamību. Kā mācēt šādu informāciju atrast? Ļoti vienkārši! Mums vajag kautko par konstantēm. Ok. Kā konstantes definē? Ar define funkciju. Skatamies un lasam tā dokumentāciju - http://php.net/define See Alsodefined() - Checks whether a given named constant exists constant() - Returns the value of a constant O, constant izkslausās kautkas interesants. Skatamies to: http://php.net/constantReturn the value of the constant indicated by name . constant() is useful if you need to retrieve the value of a constant, but do not know its name. I.e. it is stored in a variable or returned by a function Ideāli. Tieši tas, kas ir vajadzīgs. Ļoti vienkārši un neprasīja vairāk kā 1 minūti laika, lai šo atrastu un uzzinātu. Quote Link to comment Share on other sites More sharing options...
2easy Posted February 13, 2010 Report Share Posted February 13, 2010 (edited) btw šādos gadījumos ērti ir izmantot list $parts = explode('|', $row); $key = ($parts[0]); $value = ($parts[1]); list($key, $value) = explode('|', $row); ... Ideāli. Tieši tas, kas ir vajadzīgs. Ļoti vienkārši un neprasīja vairāk kā 1 minūti laika, lai šo atrastu un uzzinātu. tur jau tā lieta, ka tik vnkāršas funkcijas kā define(), pats manuālī vairs neskaties ;) bet vsp es arī daudz visādus tādus sīkumus iemācos, atbildot uz elementāriem jautājumiem. dažreiz sanāk, ka pa ceļam pats uzzinu vairāk nekā tas, kuram palīdzu :)) Edited February 13, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
404 Posted February 13, 2010 Author Report Share Posted February 13, 2010 Nu šī nianse mani pārsteidza galīgi nesagatavotu.Esot pārliecībā,ka par it kā tik vienkāršu funkciju jau viss ir zināms,tika pēc kļūdas keywordiem problēma googlēta,aizmaldoties citā virzienā.Ikdienā,kamēr uz tādu lietu neuzraujas,tikmēr pat nojausmas nav.Tāpēc vien ir interesanti ko jaunu mēģināt,lai to uzzinātu.Būs kārtējā mācība,ka visbiežāk viss ir manuālī acu priekšā :D Quote Link to comment Share on other sites More sharing options...
endrju Posted February 13, 2010 Report Share Posted February 13, 2010 Es pirms šī topika arī nezināju par tādu constant funkcijas esamību. Es ceru, ka tā bija ironija. define('TEST', 123); echo eval('return TEST;'); // tā es rakstīju līdz šim echo constant('TEST'); // tā es rakstīšu tagad! paldies, bubu :)) Diez vai aizdomātos *tā* lietot eval(). Paldies par ROFLMAO. Quote Link to comment Share on other sites More sharing options...
2easy Posted February 13, 2010 Report Share Posted February 13, 2010 (edited) smejies vesels ;) mani posti bieži ir 50% joke. forši, ka izdodas arī kādu sasmīdināt :D bet ja nopietni, tad php to funkciju ir tik daudz, ka dažreiz tiešām kko daru caur izpūtēju vai izgudroju savu riteni, lai gan php priekš tam ir gatava funkcija jau no php3 laikiem... piemēram, ar mysql_result() var uzreiz paņemt viena lauka vērtību, nevis fetchot array/object un tikai pēc tam ņemt to vērtību Edited February 13, 2010 by 2easy Quote Link to comment Share on other sites More sharing options...
endrju Posted February 13, 2010 Report Share Posted February 13, 2010 smejies vesels ;) mani posti bieži ir 50% joke. forši, ka izdodas arī kādu sasmīdināt :D bet ja nopietni, tad php to funkciju ir tik daudz, ka dažreiz tiešām kko daru caur izpūtēju vai izgudroju savu riteni, lai gan php priekš tam ir gatava funkcija jau no php3 laikiem... piemēram, ar mysql_result() var uzreiz paņemt viena lauka vērtību, nevis fetchot array/object un tikai pēc tam ņemt to vērtību Nu, jā. Arī Tavs ieraksts par if/switch bija varen' smieklīgs, kur Tu ieteici if/if/if vs. switch, nevis if/elseif/elseif vs switch. Cerams, ka vismaz atšķirību saproti. Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted February 13, 2010 Report Share Posted February 13, 2010 Bet if tak ir īsāk, nekā elseif :D Quote Link to comment Share on other sites More sharing options...
bubu Posted February 13, 2010 Report Share Posted February 13, 2010 Es ceru, ka tā bija ironija. Nē, nebija. Tas bija teikts pavisam nopietni. Es taču php neprogrammēju vairāk kā tikai šajā forumā. Nav man tas ikdienas darbs. Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted February 13, 2010 Report Share Posted February 13, 2010 Ja godīgi, tad es arī, par constant() f-jas esamību uzzināju tikai pirms kādas nedēļas, šeit pat php.lv forumā :) Nebija nekad bijusi (un joprojām nav) vajadzība dabūt konstantes vērtību nezinot, kuras tieši konstantes vērtību tad man vajag. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.