studiosx Posted March 21, 2014 Share Posted March 21, 2014 I want to export videos, thumbs, duration, etc from my website into a xml format. I got this error: Invalid argument supplied for foreach() $output .= ' <clips>';if (!is_array( $vids )) { $vids = array( ); foreach ($imgs as $img) { $img = explode( '.', $img ); $vids[] = '0' . $img[0] . '.flv'; }}@sort( $vids );@sort( $imgs );$i = 38;foreach ($vids as $v) { $output .= ' <clip>'; $output .= ' <duration>' . $duration . '</duration>'; $output .= ' <width>' . $width . '</width>'; $output .= ' <height>' . $height . '</height>'; $output .= ' <flv>' . $v . '</flv>'; $output .= ' <screens> <screen>' . trim( $imgs[$i] ) . '</screen> </screens>'; $output .= ' </clip>'; ++$i;}$output .= ' </clips>'; Thank you! Link to comment Share on other sites More sharing options...
Petrucho Posted March 21, 2014 Share Posted March 21, 2014 (edited) Seems something wrong with the argument you send for your first foreach. try to use <?phpdie(var_dump($imgs));?> before the foreach(); and post here the output it returns Edited March 21, 2014 by Yolo Link to comment Share on other sites More sharing options...
studiosx Posted March 21, 2014 Author Share Posted March 21, 2014 NULL Link to comment Share on other sites More sharing options...
Petrucho Posted March 21, 2014 Share Posted March 21, 2014 (edited) I guess now you understand the problem. What are you expecting $imgs to hold? where you initialize this variable?? Edited March 21, 2014 by Yolo Link to comment Share on other sites More sharing options...
Ingolme Posted March 21, 2014 Share Posted March 21, 2014 In which part of the code are you iniitalizing $imgs? Link to comment Share on other sites More sharing options...
studiosx Posted March 21, 2014 Author Share Posted March 21, 2014 This is all whole code: <?phpheader( 'content-type: text/xml' );require_once( 'config/con_db.class.php' );require_once( 'function/function.php' );$db = new db( );$hostedServer = ishostedserver( );$level = 38;$admin_delete = false;if (isset( $_COOKIE['userid'] )) { $userid = get_uid_fromusers( safe_string( $_COOKIE['userid'] ) ); $level = check_if_admin( $userid ); if ($level == 1) { $admin_delete = true; }}$channels = safe_string( $_GET['channels'] );if (strpos( $channels, ',' )) { $channels = explode( ',', $channels );}else { $channels = array( $channels );}$todayforsql = date( 'Y-m-d H:i:s', mktime( date( 'H' ), date( 'i' ), 0, date( 'm' ), date( 'd' ), date( 'Y' ) ) );$category = safe_string( $_GET['category'] );if (strpos( $category, ',' )) { $category = explode( ',', $category );}else { $category = array( $category );}$_GET['start'] = ($_GET['start'] ? intval( $_GET['start'] ) : 0);$limit = ($_GET['limit'] ? ' LIMIT ' . intval( $_GET['start'] ) . ', ' . intval( $_GET['limit'] ) : ' LIMIT 50');$limit = (intval( $_GET['limit'] ) <= 500 ? $limit : ' LIMIT ' . intval( $_GET['start'] ) . ', 500');if (( $admin_delete && $_GET['limit'] )) { $limit = ' LIMIT ' . intval( $_GET['start'] ) . ', ' . intval( $_GET['limit'] );}if ($_GET['recent']) { $limit = 'limit 0,50';}else { $recent = null;}$path = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];$path = str_replace( 'xml.php', '', $path );$catIDS = null;$chaIDS = null;$tagArray = array( );$urlArray = array( );$vidArray = array( );$imgArray = array( );$partOneSQL = null;$partTwoSQL = null;$partThreeSQL = null;$partFourSQL = null;if (0 < $category[0]) { $catIDS = '('; foreach ($category as $v) { $catIDS .= $v . ','; } $catIDS = trim( $catIDS, ',' ) . ')';}if (0 < $channels[0]) { $chaIDS = '('; foreach ($channels as $v) { $chaIDS .= $v . ','; } $chaIDS = trim( $chaIDS, ',' ) . ')';}$maxdatequery = 'select max(`date_added`) as da from videos v, channels ch ';$maxdatequery .= ($catIDS ? ', hostedgals_niche n, hostedgals_cats c ' : null);$maxdatequery .= ' WHERE 1';$maxdatequery .= ($chaIDS ? ' and v.channel IN ' . $chaIDS . ' ' : null);$maxdatequery .= ($catIDS ? ' and n.cat_id IN ' . $catIDS . ' AND n.cat_id = c.uid AND n.hostedgal_id = v.uid' : null);$maxdatequery .= ' AND v.date_added <= '' . $todayforsql . '' ';$maxdatequery .= ' AND v.channel = ch.uid ';$maxdatequery .= ' AND v.active = 1 ';$maxdatequery .= ' AND v.queue = 1';$getmaxdate = mysql_query( '' . $maxdatequery );$timeforupdate = strtotime( mysql_result( $getmaxdate, 0, 'da' ) );$partOneSQL = 'SELECT v.uid AS vid_id, v.description, v.tag, v.duration, v.height, v.hotlink_id, v.width, v.date_added, v.hotlinkimg_id, v.img_type, v.vid_type, s.sitename, ch.name as chaname, ch.uid as chaid FROM videos v, settings s, channels ch';$partOneSQL .= ($catIDS ? ', hostedgals_niche n, hostedgals_cats c ' : null);$partOneSQL .= ' WHERE 1';$partOneSQL .= ($chaIDS ? ' and v.channel IN ' . $chaIDS . ' ' : null);$partOneSQL .= ($catIDS ? ' and n.cat_id IN ' . $catIDS . ' AND n.cat_id = c.uid AND n.hostedgal_id = v.uid' : null);$partOneSQL .= ' AND v.date_added <= '' . $todayforsql . '' ';$partOneSQL .= ' AND v.channel = ch.uid ';$partOneSQL .= ' AND v.active = 1 ';$partOneSQL .= ' AND v.queue = 1 ';$partOneSQL .= ' ORDER BY v.date_added DESC ';$partOneSQL .= $limit;$partOneResult = mysql_query( $partOneSQL, $db->con );if ($row = mysql_fetch_object( $partOneResult )) { $vid_ids[] = $row->vid_id;}$from_sql_one = implode( ',', $vid_ids );mysql_data_seek( $partOneResult, 0 );$partTwoSQL = 'SELECT hostedgals_niche.cat_id, hostedgals_niche.hostedgal_id FROM hostedgals_niche JOIN videos ON (videos.uid = hostedgals_niche.hostedgal_id) where hostedgal_id IN(' . $from_sql_one . ')';$partThreeSQL = 'SELECT videos.uid, `hotlink`.`url` AS clip, `hotlinkimg`.`url` AS screen FROM `hotlink` , `hotlinkimg` , videos WHERE videos.hotlink_id = hotlink.uid AND videos.hotlinkimg_id = hotlinkimg.uid AND videos.uid IN(' . $from_sql_one . ') GROUP BY videos.uid';$partFourSQL = 'SELECT `videos`.`uid` , `hotlink_files`.`filename` , `hotlink_files`.`type` FROM `hotlink_files` , `videos` WHERE hotlink_files.video_uid = videos.uid AND videos.uid IN(' . $from_sql_one . ')';$getcatnames = mysql_query( 'select name, uid from hostedgals_cats where status = 1' );while ($row = mysql_fetch_assoc( $getcatnames )) { extract( $row ); $catarray[$uid] = $name;}$partTwoResult = mysql_query( $partTwoSQL, $db->con );while ($row = mysql_fetch_array( $partTwoResult )) { @extract( $row ); $tagArray[$hostedgal_id][] = $cat_id;}$partThreeResult = mysql_query( $partThreeSQL, $db->con );while ($row = mysql_fetch_array( $partThreeResult )) { @extract( $row ); $urlArray[$uid][] = $clip; $urlArray[$uid][] = $screen;}$partFourResult = mysql_query( $partFourSQL, $db->con );while ($row = mysql_fetch_array( $partFourResult )) { @extract( $row ); if ($type == '1') { $vidArray[$uid][] = $filename; } $imgArray[$uid][] = $filename;}$numRows = mysql_num_rows( $partOneResult );$output = '';$output .= '<videos>';$output .= ' <updated>' . date( 'Y-m-d', $timeforupdate ) . '</updated>';$output .= ' <total>' . $numRows . '</total>';while ($row = mysql_fetch_array( $partOneResult )) { $thisPath = $path; @extract( $row ); $output .= ' <video>'; $output .= ' <id>' . $vid_id . '</id>'; $output .= ' <tag>' . $tag . '</tag>'; $output .= ' <title>' . htmlentities( $description ) . '</title>'; $output .= ' <description>' . htmlentities( $description ) . '</description>'; $output .= ' <tags>'; $vtags = $tagArray[$vid_id]; $urls = $urlArray[$vid_id]; $vids = $vidArray[$vid_id]; $imgs = $imgArray[$vid_id]; if (is_array( $vtags )) { $vtags = array_unique( $tagArray[$vid_id] ); $temp = ''; foreach ($vtags as $v) { if ($catarray[$v]) { $temp .= $catarray[$v] . ','; continue; } } $temp = trim( $temp, ',' ); $output .= ' ' . $temp . ' '; } $output .= ' </tags>'; $output .= ' <paysite>' . $chaname . '</paysite>'; $output .= ' <clip_url>'; if (( $vid_type == 'local' && $hostedServer != '' )) { $thisPath = $hostedServer . 'vid/' . $chaid . '/' . $tag . '/'; } else { if (( $vid_type == 'local' && $hostedServer == '' )) { $thisPath = $thisPath . 'vid/' . $chaid . '/' . $tag . '/'; } else { if ($vid_type == 'hotlink') { $thisPath = trim( $urls[0] ); } } } $output .= $thisPath . ''; $output .= ' </clip_url>'; $thisPath = $path; $output .= ' <screen_url>'; if (( $img_type == 'local' && $hostedServer != '' )) { $thisPath = $hostedServer . 'vid/' . $chaid . '/' . $tag . '/'; } else { if (( $img_type == 'local' && $hostedServer == '' )) { $thisPath = $thisPath . 'vid/' . $chaid . '/' . $tag . '/'; } else { if ($img_type == 'hotlink') { $thisPath = trim( $urls[1] ); } } } $output .= $thisPath . ''; $output .= ' </screen_url>'; $output .= ' <clips>'; if (!is_array( $vids )) { $vids = array( ); foreach ($imgs as $img) { $img = explode( '.', $img ); $vids[] = '0' . $img[0] . '.flv'; } } @sort( $vids ); @sort( $imgs ); $i = 38; foreach ($vids as $v) { $output .= ' <clip>'; $output .= ' <duration>' . $duration . '</duration>'; $output .= ' <width>' . $width . '</width>'; $output .= ' <height>' . $height . '</height>'; $output .= ' <flv>' . $v . '</flv>'; $output .= ' <screens> <screen>' . trim( $imgs[$i] ) . '</screen> </screens>'; $output .= ' </clip>'; ++$i; } $output .= ' </clips>'; $output .= ' </video>';}$output .= '</videos>';echo $output;?> Link to comment Share on other sites More sharing options...
Ingolme Posted March 21, 2014 Share Posted March 21, 2014 It seems it's being set at this line: $imgs = $imgArray[$vid_id]; Have you checked that $imgArray has an element with the key $vid_id? You can use print_r($imgArray); and echo $vid_id; to check that the values are what you expected. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now