Re: Output of curl to an array.

From: Date: Thu, 21 Mar 2002 13:13:48 +0000
Subject: Re: Output of curl to an array.
Groups: php.db 
Request: Send a blank email to php-db+get-17798@lists.php.net to get a copy of this message
Hi Keith, I read your post and decided to write a function for you. Basically what it does is does, is take in a string, and optional newline and value separators, and outputs an associative array. It actually works, and has a few comments... so yeah, enjoy.. and thanks for the challenge : ) Adam You can use it like so... PHP Script (of course, you must either have the function on the same page or include() it like so): <?php include('extractPairs.php'); header("Content-Type: text/plain"); $strText = "Name1=Value1 \n Name2 = Value 2\nName 3 =Value 3"; $arrPairs = extractPairs($strText); print_r($arrPairs); ?> Output: Array (
    [Name1] => Value1
    [Name2] => Value 2
    [Name 3] => Value 3
) //=====> extractPairs.php <?php function extractPairs($strText,$strValueSeparator="=",$strNewlineSeparator="\n"){ // kill the bad stuff... prevent a meaningless array if (!is_string($strText)){ return array(""=>""); } // gets rid of newlines/spaces etc so we don't get a crap array $strText = trim($strText); // separate each line in an element in an array $arrLines = explode($strNewlineSeparator,$strText); // loop through $arrLines, separating the names/values and placing them in $arrOutput for ($i=0;$i<count($arrLines);$i++){ $pos = strpos($arrLines[$i],$strValueSeparator); // get the text before and after the found position // and get rid of the whitespace b4 and after $arrOutput[trim(substr($arrLines[$i],0,$pos))] = trim(substr($arrLines[$i],$pos+1)); } return $arrOutput; } ?>
Ok, lets say I have some code here: $result = array(); $ch = curl_init ("https://www.myverificationplace.com/verify.asp"); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, $args); curl_setopt ($ch, CURLOPT_TIMEOUT, 120); // Set the timeout, in seconds. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec ($ch); curl_close ($ch); Now that we see that, how can I make it so that the output from curl, which is in the variable $result, will be an array, for each line of output? Some of the line of output looks like this: ssl_result_message=APPROVED ssl_txn_id=00000000-0000-0000-0000-000000000000 ssl_approval_code=000000 I need each of the lines to be turned into a variable. Any ideas as to how I might go about this? Thanks, Keith Posehn


« previous php.db (#17798) next »