Looping through Array PHP

qmar

New Member
I'm trying to loop through a cURL array response to generate XML files. However, my generated files all seem to have exactly the same contents - I don't know if this is the right approach or if I should be using an array, but I can't seem to figure it out and could use some fresh eyes. Basically, I want each \[code\]$playlist\[/code\]'s contents to be in its own separate file.\[code\]for ($i=0; $i<=14; $i++) { $xml_data = http://stackoverflow.com/questions/3936007/generateXML($i); $fileName ="bc_manifest_$i.xml"; $fileHandle = fopen($fileName, 'wb') or die("can't open file"); fwrite ($fileHandle, $xml_data); fclose($fileHandle); //echo $xml_data; echo "Successfully created manifest $i<br />"; }// The holy grailfunction generateXML($i) { $xml_code = array($i); // Start the beginning of the xml doc and save it to our reoccuring xml_code var $xml_code[$i] .= '<?xml version="1.0" encoding="UTF-8"?>' . "\n"; $xml_code[$i] .= '<publisher-upload-manifest publisher-id="xxxxxxx" preparer="Dave" report-success="TRUE">' . "\n"; // Set options to send to brightcove // @page_size $options = array( 'page_size' => '75', 'playlist_ids' => "3690598001,3684920001,8193433701", 'video_fields' => 'referenceId,creationDate' ); // URL Encode the options to prepare for cURL send $post_str = ''; foreach($options as $key=>$value) { $post_str .= $key.'='.urlencode($value).'&'; } $post_str = substr($post_str, 0, -1); // Initiate cURL and send request $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://api.brightcove.com/services/library?command=find_playlists_by_ids&token=xxxxxxxxxx&' ); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_str); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $obj = curl_exec($ch); curl_close($ch); // Decode json response $result = json_decode($obj); // Get playlists from the items object $playlists = $result->{'items'}; //var_dump($playlists); // For each playlist... foreach ($playlists as $playlist){ foreach ($playlist->{'videos'} as $video){ // Convert the creation date to something not so robotic.. $creation_date_ms = $video->creationDate; $creation_date_s = $creation_date_ms / 1000; $date = date('Ymd',$creation_date_s); $time = strtotime($date); //echo $time."<br />"; // and set the reference id for each video. $ref_id = $video->referenceId; // Phew! Now, let's first check that there is a reference id for the video. If not, no biggie. switch ($ref_id) { case "": break; default: // If so, run the function to create an xml object for that video! if ($time <= strtotime('20100519')) { $xml_code[$i] .= reencode_from_existing_source($ref_id); } break; } } } // Finish him. $xml_code[$i] .= '</publisher-upload-manifest>'; return($xml_code[$i]);} //endxml// Creates an xml object for the passed reference id.function reencode_from_existing_source($ref_id){ $xml_obj = '<reencode-from-existing-source title-refid="' . $ref_id . '" encode-to="MP4" encode-multiple="TRUE" overwrite-images="FALSE" />' . "\n"; return ($xml_obj);}\[/code\]Thanks to anyone who can help!
 
Back
Top