隐藏php echo输出

i'm sending data to a javascript function from a php script with help of ajax.

echo json_encode($rows);

The issue i'm having is that i'm running the php script right when the page loads, and the output is then displayed on the page, which I dont actually want to display. I tried to hide the echo with ob_end_clean() but this kinda breaks everything.

I am sure you are making ajax request to same page, in that case you can check the request for ajax like this

/* AJAX check  */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&  
    strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
   /* your ajax here code will go here */
   header('Content-type: application/json');
   echo json_encode($rows);
   exit();
}

//non ajax code ...
...

that way echo will only run if its an AJAX call