X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=mod%2Fuexport.php;h=e1fb22855a6066fa8b99336b837f29ef9ebbb0ea;hb=640f258f187674e037655ee461ea483c7c92ef23;hp=d8f9315932aacce78bc5ce4c8a72ab3ef849e329;hpb=f20464112f274d720649c2f92480cc235df4db19;p=friendica.git diff --git a/mod/uexport.php b/mod/uexport.php index d8f9315932..e1fb22855a 100644 --- a/mod/uexport.php +++ b/mod/uexport.php @@ -17,7 +17,7 @@ function uexport_init(&$a) { } $contact = array(); $r = q("SELECT * FROM `contact` WHERE `uid` = %d ", - local_user() + intval(local_user()) ); if(count($r)) { foreach($r as $rr) @@ -28,7 +28,7 @@ function uexport_init(&$a) { $profile = array(); $r = q("SELECT * FROM `profile` WHERE `uid` = %d ", - local_user() + intval(local_user()) ); if(count($r)) { foreach($r as $rr) @@ -38,8 +38,34 @@ function uexport_init(&$a) { $output = array('user' => $user, 'contact' => $contact, 'profile' => $profile ); - header("Content-type: text/json"); - echo str_replace('\\/','/',json_encode($output)); + header("Content-type: application/json"); + echo json_encode($output); + + $r = q("SELECT count(*) as `total` FROM `item` WHERE `uid` = %d ", + intval(local_user()) + ); + if(count($r)) + $total = $r[0]['total']; + + // chunk the output to avoid exhausting memory + + for($x = 0; $x < $total; $x += 500) { + $item = array(); + $r = q("SELECT * FROM `item` WHERE `uid` = %d LIMIT %d, %d", + intval(local_user()), + intval($x), + intval(500) + ); + if(count($r)) { + foreach($r as $rr) + foreach($rr as $k => $v) + $item[][$k] = $v; + } + + $output = array('item' => $item); + echo json_encode($output); + } + killme();