কিভাবে পিএইচপি দিয়ে .json ফাইল জেনারেট করবেন?


127
CREATE TABLE Posts
{
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200),
url VARCHAR(200)
}

json.php কোড

<?php
$sql=mysql_query("select * from Posts limit 20");
echo '{"posts": [';
while($row=mysql_fetch_array($sql))
{
$title=$row['title'];
$url=$row['url'];
echo '

{

"title":"'.$title.'",

"url":"'.$url.'"

},'; 
}
echo ']}';

?>

আমাকে results.jsonফাইল তৈরি করতে হবে।


1
আমাদের প্রশ্নে কিছু ব্যাখ্যা / প্রসঙ্গ থাকা খুব স্বল্প বিনয়ের মধ্যে। এই প্রশ্নটি বিশেষত কারও কাছে এবং সাধারণভাবে স্ট্যাক ওভারফ্লো সম্প্রদায়ের কাছে অন্তর্নিহিত আদেশের মতো বলে মনে হচ্ছে ..
Sl4rtib4rtf4st

উত্তর:


247

এখানে একটি নমুনা কোড রয়েছে:

<?php 
$sql="select * from Posts limit 20"; 

$response = array();
$posts = array();
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)) { 
  $title=$row['title']; 
  $url=$row['url']; 

  $posts[] = array('title'=> $title, 'url'=> $url);
} 

$response['posts'] = $posts;

$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($response));
fclose($fp);


?> 

1
আমি আমার প্রকল্পে এই কোডটি ব্যবহার করেছি। ফলাফল.json ফাইলটি স্থানীয় হোস্টে ভাল কাজ করে এবং রিমোট সার্ভারে ব্যর্থ হয়। কেন আপনি তা ব্যাখ্যা করতে পারেন ..
Vignesh Gopalakrishnan

4
আপনার সার্ভার সেটিংসে ফাইরাইট বন্ধ করা যেতে পারে
ক্রিস

তবে এটি দুর্দান্ত কারণ সম্ভবত আমি এখন পিএইচপি 5 ব্যবহার করছি এবং এই উত্তরটি পোস্ট করার সময় এটি পাওয়া যায় নি তবে আপনি ফলাফল = রেখা থেকে মুক্তি পেতে পারেন এবং আপনার সময় লুপটি কেবল mysql_feth_array ($ sql) তৈরি করতে পারেন

দয়া করে প্রথম লাইনটিকে $ sql = এ আপডেট করুন "পোস্টের সীমা 20 থেকে নির্বাচন করুন"; , mysql_query () অপসারণ করুন
শচীন বৈরাগী

6
fwrite($fp, json_encode($response,JSON_PRETTY_PRINT));- JSON ফর্ম্যাট করতে সাদা স্থান ব্যবহার করে। এখানে
স্থিরস্থানীয়

49

এটা ব্যবহার কর:

$json_data = json_encode($posts);
file_put_contents('myfile.json', $json_data);

স্ক্রিপ্টটি চালানোর আগে আপনাকে myfile.json তৈরি করতে হবে।


আসলে মন্তব্যের তারিখে তথ্য সংরক্ষণের আগে ফাইলটি তৈরি করার দরকার নেই। যদিও আপনাকে এখনও সংরক্ষণের পথে অস্তিত্বহীন সাবফোল্ডারগুলি তৈরি করতে হবে, যদি থাকে তবে। এখানে কেবল সুবিধার জন্য ফাইল_পুট_কন্টেন্টের অফিসিয়াল ডক is
ভ্যালেন্টাইন শি

1
হ্যাঁ, প্রোগ্রামিং ভাষাগুলি বিকশিত হয়েছে M আমার পোস্টের উত্তরটি 2017 এ পোস্ট করা হয়েছিল 2017 আপনার কেবলমাত্র একটি নতুন উত্তর পোস্ট করা উচিত ছিল 2017 সালে কাজ করে এমন
ডাউনভোটেড

1
আপনি যে স্নিপড দিয়েছিলেন তাতে কোনও পরিবর্তন নেই। file_put_contentsআমার প্রাথমিক মন্তব্যে যেভাবে কাজ করা হয়েছে তা উল্লেখ করেছি।
ভ্যালেন্টাইন শি

30

আপনার প্রাপ্ত মানগুলি প্রতিধ্বনির পরিবর্তে একটি অ্যারেতে প্রবেশ করুন।

যদি আপনার ডেটা হয় তবে সেই ফাইলটি ব্যবহার করুন file_put_contents()এবং sert োকান।json_encode($rows)$rows


2
আমি দেখছি আপনার উত্তরটি সর্বাধিক উত্সাহিতের আগে পোস্ট করা হয়েছিল। যদি আপনি কিছু উদাহরণ কোড রেখে থাকেন তবে আপনি আরও অনেক বেশি ভোট পেয়েছেন।
ইঞ্জিন ইয়াপিসি

7

এখানে আমি সৃষ্টি করি জন্য সহজ syntex উল্লেখ করেছি ফাইল JSON ভিতরে অ্যারের মান প্রিন্ট JSON চমত্কার পদ্ধতিতে ফাইল।

$array = array('name' => $name,'id' => $id,'url' => $url);
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($array, JSON_PRETTY_PRINT));   // here it will print the array pretty
fclose($fp);

আশা করি এটি আপনার পক্ষে কাজ করবে ....



6

আপনি কেবল পিএইচপি এর json_encode ফাংশন ব্যবহার করতে পারেন এবং ফাইল হ্যান্ডলিং ফাংশন যেমন fopen এবং fwrite সঙ্গে ফাইল সংরক্ষণ করতে পারেন ।


6

আপনি যদি গতিশীল রেকর্ডগুলি টানছেন তবে 1 পিএইচপি ফাইল থাকা ভাল যা একটি জসন উপস্থাপনা তৈরি করে এবং প্রতিবার একটি ফাইল তৈরি না করে।

my_json.php

$array = array(
    'title' => $title,
    'url' => $url
);

echo stripslashes(json_encode($array)); 

তারপরে আপনার স্ক্রিপ্টে ফাইলটির পথ নির্ধারণ করুন my_json.php


1
যখন আমি getJason ব্যবহার করে এটি চালানোর চেষ্টা করি, তখন আমি রিসোর্সটিকে স্ক্রিপ্ট হিসাবে ব্যাখ্যা করি তবে কনসোলে MIME টাইপ পাঠ্য / এইচটিএমএল দিয়ে স্থানান্তরিত করি
কোডিংবিবিএইচ

@ নুবকোড এটি ঠিক করতে, আমার মনে হয় আপনার নিজের 'মাই_জসন.এফপি' তে একটি 'সামগ্রী-টাইপ' শিরোনাম সেট করা উচিত।
কাতালিন_2003

5

প্রথমত, আপনি এটি ডিকোড করতে হবে:

$jsonString = file_get_contents('jsonFile.json');
$data = json_decode($jsonString, true);

তারপরে ডেটা পরিবর্তন করুন:

$data[0]['activity_name'] = "TENNIS";
// or if you want to change all entries with activity_code "1"
foreach ($data as $key => $entry) {
    if ($entry['activity_code'] == '1') {
        $data[$key]['activity_name'] = "TENNIS";
    }
}

তারপরে এটিকে পুনরায় এনকোড করুন এবং ফাইলে এটি সংরক্ষণ করুন:

$newJsonString = json_encode($data);
file_put_contents('jsonFile.json', $newJsonString);

কপি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.