Sorry if it is repeated question, already tried every single suggestion in google and StackOverflow.
For some reason, my response header always comes as Content-Type:text/html; charset=UTF-8.
I want content type to be json (Content-Type:application/json), Not sure what am I doing wrong. here is my code
<?php
header('Access-Control-Allow-Origin: *');
define('__ROOT__', dirname(dirname(__FILE__)));
require_once(__ROOT__.'/api/csvtojson.php');
require_once(__ROOT__.'/api/retrieve-login-data.php');
require_once(__ROOT__.'/api/access-control.php');
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
//Make sure that it is a POST request.
if(strcasecmp($_SERVER['REQUEST_METHOD'], 'POST') != 0){
throw new Exception('Request method must be POST!');
}
//Make sure that the content type of the POST request has been set to application/json
$contentType = isset($_SERVER["CONTENT_TYPE"]) ? trim($_SERVER["CONTENT_TYPE"]) : '';
if(strcasecmp($contentType, 'application/json') != 0){
throw new Exception('Content type must be: application/json');
}
//Receive the RAW post data.
$content = trim(file_get_contents("php://input"));
//Attempt to decode the incoming RAW post data from JSON.
$decoded = json_decode($content, true);
//If json_decode failed, the JSON is invalid.
if(!is_array($decoded)){
throw new Exception('Received content contained invalid JSON!');
}
$filename = $decoded['filename'];
// open csv file
if (!($fp = fopen($filename, 'r'))) {
die("Can't open file...");
}
//read csv headers
$key = fgetcsv($fp,"1024",",");
// parse csv rows into array
$json = array();
while ($row = fgetcsv($fp,"1024",",")) {
$json[] = array_combine($key, $row);
}
// release file handle
fclose($fp);
// encode array to json
header('Content-Type: application/json;charset=utf-8');
echo (json_encode($json, JSON_PRETTY_PRINT));
Response: