পিএইচপি সিরিয়ালাইজ () এবং আনসিরিয়ালাইজ () কে কীভাবে ব্যবহার করবেন


125

আমার সমস্যা খুব বেসিক।

পিএইচপি-র ঠিক কী serialize()এবং এর unserialize()অর্থ কী তা আমি নিজের চাহিদা মেটাতে কোন উদাহরণ পাইনি ? তারা কেবল একটি উদাহরণ দেয় - একটি অ্যারে সিরিয়ালাইজ করে এবং অব্যক্ত বিন্যাসে একটি আউটপুট দেখায়। তাদের জারজুনের মধ্য দিয়ে যাওয়া প্রাথমিক ধারণাটি বোঝা সত্যিই কঠিন।

সম্পাদনা করুন:

<?php

$a= array( '1' => 'elem 1', '2'=> 'elem 2', '3'=>' elem 3');
print_r($a);
echo ("<br></br>");
$b=serialize($a);
print_r($b);

?>

আউটপুট:

Array ( [1] => elem 1 [2] => elem 2 [3] => elem 3 ) 

a:3:{i:1;s:6:"elem 1";i:2;s:6:"elem 2";i:3;s:7:" elem 3";}

আমি দ্বিতীয় আউটপুট বুঝতে পারি না। তদ্ব্যতীত, কেউ কি এমন পরিস্থিতির উদাহরণ দিতে পারে যা আমাকে পিএইচপি অ্যারে ব্যবহারের আগে সিরিয়ালিয়াল করা প্রয়োজন?


10
যদি আপনি "গৌণ আউটপুট" সম্পর্কে এখনও আগ্রহী ছিলেন তবে এটি মোটামুটি সহজ: a = অ্যারে, within} এর মধ্যে তিনটি আকারের উপাদান। এর ভিতরে, আপনার i = পূর্ণসংখ্যা / সূচক সমান 1, লেন 6 এর স্ট্রিং সমান "ইলেম 1", পূর্ণসংখ্যা 2 সমান 2 .. ইত্যাদি ইত্যাদি you আপনি যখন এটি পড়েন তখন এটি মোটামুটি পরিষ্কার। আপনি একাধিক স্তরের অ্যারে / অবজেক্টের মধ্যে সহজেই অন্তর্ভুক্ত রয়েছে তা কল্পনা করতে পারেন, তবে পরিবর্তনটি খুব বুদ্ধিমানের নয়, ধারাবাহিকতাটি নিশ্চিত করার জন্য আপনার সত্যিকারের সংশোধন করে সিরিয়ালাইজ করা উচিত।
গ্রিজলি

2
@IstiaqueAhmed সম্বন্ধে "করতে পারেন যে কেউ একটি অবস্থা যে আমি এটা ব্যবহার করার আগে পিএইচপি অ্যারে ধারাবাহিকভাবে করতে হবে একটি উদাহরণ দিতে" , সেখানে এই ধরনের একটি উদাহরণ stackoverflow.com/a/30436890/632951
Pacerier

@ গ্রিজলি থ্যাঙ্কস ম্যান, আমি দু'বছর ধরে এর মতো উত্তর খুঁজছিলাম, আমি কীভাবে এটি ব্যাখ্যা করতে পারি না বা কীভাবে সেই বৈশিষ্ট্যটি ব্যবহার করার কারণটি যুক্ত করতে পারি তা উত্তরটির জন্য ধন্যবাদ

উত্তর:


169

কোনও পিএইচপি অ্যারে বা অবজেক্ট বা অন্যান্য জটিল ডেটা স্ট্রাকচার চালানো পিএইচপি স্ক্রিপ্টের বাইরে ট্রান্সপোর্ট বা সঞ্চিত বা অন্যথায় ব্যবহার করা যায় না । আপনি যদি কোনও স্ক্রিপ্টের একক রানের বাইরেও এই জাতীয় জটিল ডেটা কাঠামো ধরে রাখতে চান তবে আপনার এটির ক্রমিকায়ন করা দরকার । এর অর্থ কেবল কাঠামোটিকে একটি "নিম্ন সাধারণ ডিনোমিনেটর" স্থাপন করা যা পিএইচপি বাদে অন্য জিনিস যেমন ডাটাবেস, পাঠ্য ফাইল, সকেট দ্বারা পরিচালিত হতে পারে। স্ট্যান্ডার্ড পিএইচপি ফাংশনটি serializeএ জাতীয় জিনিস প্রকাশের জন্য কেবল একটি ফর্ম্যাট , এটি কোনও ডেটা স্ট্রাকচারকে স্ট্রিং উপস্থাপনায় সিরিয়াল করে যা পিএইচপি-র অনন্য এবং এটি ব্যবহার করে পিএইচপি অবজেক্টে বিপরীত হতে পারে unserialize। JSON বা XML এর মতো আরও অনেকগুলি ফর্ম্যাট রয়েছে।


উদাহরণস্বরূপ এই সাধারণ সমস্যাটি ধরুন:

আমি কীভাবে জাভাস্ক্রিপ্টে পিএইচপি অ্যারে পাস করব ?

পিএইচপি এবং জাভাস্ক্রিপ্ট কেবল স্ট্রিংয়ের মাধ্যমে যোগাযোগ করতে পারে। আপনি স্ট্রিংটি "foo"জাভাস্ক্রিপ্টে খুব সহজেই পাস করতে পারবেন । আপনি 1জাভাস্ক্রিপ্টে খুব সহজেই নম্বরটি পাস করতে পারবেন । আপনি বুলিয়ান মানগুলি trueএবং falseজাভাস্ক্রিপ্টে সহজেই পাস করতে পারেন। তবে আপনি কীভাবে জাভাস্ক্রিপ্টে এই অ্যারেটি পাস করবেন?

Array ( [1] => elem 1 [2] => elem 2 [3] => elem 3 ) 

উত্তরটি সিরিয়ালকরণ । পিএইচপি / জাভাস্ক্রিপ্টের ক্ষেত্রে, জেএসএন আসলে আরও ভাল সিরিয়ালাইজেশন ফর্ম্যাট:

{ 1 : 'elem 1', 2 : 'elem 2', 3 : 'elem 3' }

জাভাস্ক্রিপ্ট সহজেই এটি একটি আসল জাভাস্ক্রিপ্ট অ্যারে রূপান্তর করতে পারে।

এটি একই ডেটা স্ট্রাকচারের উপস্থাপনা ঠিক যেমন বৈধ:

a:3:{i:1;s:6:"elem 1";i:2;s:6:"elem 2";i:3;s:7:" elem 3";}

তবে বেশিরভাগই কেবল পিএইচপি এটি ব্যবহার করে, অন্য কোথাও এই বিন্যাসের জন্য খুব কম সমর্থন আছে।
এটি খুব সাধারণ এবং পাশাপাশি সমর্থিত:

<array>
    <element key='1'>elem 1</element>
    <element key='2'>elem 2</element>
    <element key='3'>elem 3</element>
</array>

এমন অনেকগুলি পরিস্থিতি রয়েছে যেখানে আপনার স্ট্রিং হিসাবে প্রায় জটিল ডেটা স্ট্রাকচার পাস করতে হবে । সিরিয়ালাইজেশন, স্বেচ্ছাসেবীর ডেটা স্ট্রাকচারকে স্ট্রিং হিসাবে উপস্থাপন করে এটি কীভাবে তা সমাধান করে।


1
আপনার ব্যাখ্যাটি আমার প্রত্যাশা মতো পৌঁছেছে বলে মনে হচ্ছে। আপনি কি আমার সম্পাদনাটি একবার দেখতে পারেন?
ইসতিয়াক আহমেদ

1
এ: আই, এস ইত্যাদির ব্যাখ্যা কী: ৩: {আই: ১; এস::: "এলেম 1"; আই: 2; এস: 6: "এলেম 2"; আই: 3; এস: 7: "এলেম 3";}? এবং যদি আপনি কিছু মনে করেন না, অ্যারে সিরিয়ালাইজ করার একটি উদাহরণ (এটি এই পোস্টের থিমের সাথে প্রাসঙ্গিক নাও হতে পারে) এটি জেএসে প্রেরণ।
ইসতিয়াক আহমেদ

2
আমি যতদূর জানি যে এই ফর্ম্যাটের কোনও আনুষ্ঠানিক স্পেসিফিকেশন খুব কমই পাওয়া যায়, তবে আপনি অনুমান করতে পারেন, তাই না? i:1= পূর্ণসংখ্যা 1, s:6:"elem 1"= 6 অক্ষর "এলেম 1" সহ স্ট্রিং ... এবং আপনি কোন উদাহরণের জন্য জিজ্ঞাসা করছেন, আমি ভেবেছিলাম আমি একটি দিয়েছি?
প্রতারণা

"তবে আপনি কীভাবে জাভাস্ক্রিপ্টে এই অ্যারেটি পাস করবেন? অ্যারে ([1] => এলেম 1 [2] => এলেম 2 [3] => এলেম 3)" ... এর ঠিক সঠিক কোড স্নিপেট
ইসতিয়াক আহমেদ

echo json_encode($array);কিভাবে ঠিক আপনি পাস এটা পরিস্থিতির উপর নির্ভর করে। যে খুব ঝুলন্ত না।
ছদ্মবেশ

27

পিএইচপি সিরিয়ালাইজ () unserialize () ব্যবহার

http://freeonlinetools24.com/serialize

echo '<pre>';
// say you have an array something like this 
$multidimentional_array= array(
    array(
        array("rose", 1.25, 15),
        array("daisy", 0.75, 25),
        array("orchid", 4, 7) 
       ),
    array(
        array("rose", 1.25, 15),
        array("daisy", 0.75, 25),
        array("orchid", 5, 7) 
       ),
    array(
        array("rose", 1.25, 15),
        array("daisy", 0.75, 25),
        array("orchid", 8, 7) 
    )
);

// serialize 
$serialized_array=serialize($multidimentional_array);
print_r($serialized_array);

যা আপনাকে এরকম একটি আউটপুট দেয়

a:3:{i:0;a:3:{i:0;a:3:{i:0;s:4:"rose";i:1;d:1.25;i:2;i:15;}i:1;a:3:{i:0;s:5:"daisy";i:1;d:0.75;i:2;i:25;}i:2;a:3:{i:0;s:6:"orchid";i:1;i:4;i:2;i:7;}}i:1;a:3:{i:0;a:3:{i:0;s:4:"rose";i:1;d:1.25;i:2;i:15;}i:1;a:3:{i:0;s:5:"daisy";i:1;d:0.75;i:2;i:25;}i:2;a:3:{i:0;s:6:"orchid";i:1;i:5;i:2;i:7;}}i:2;a:3:{i:0;a:3:{i:0;s:4:"rose";i:1;d:1.25;i:2;i:15;}i:1;a:3:{i:0;s:5:"daisy";i:1;d:0.75;i:2;i:25;}i:2;a:3:{i:0;s:6:"orchid";i:1;i:8;i:2;i:7;}}}

আবার যদি আপনি মূল অ্যারেটি ফিরে পেতে চান তবে কেবল পিএইচপি আনসিরিয়াল () ফাংশন ব্যবহার করুন

$original_array=unserialize($serialized_array);
var_export($original_array);

আমি আশা করি এটি সাহায্য করবে


7

আপনি যখন আপনার পিএইচপি মানকে স্ট্যাটিভ করতে চান, আপনাকে এটিকে স্ট্রিং মান হিসাবে পরিণত করতে হবে, এটিই সিরিয়ালাইজ () করে। এবং unserialize () বিপরীত জিনিস করে।


1
'স্ট্যাটেবল' এর অর্থ কী? আপনি উল্লিখিত পৃষ্ঠাটি দিয়ে গিয়েছিলাম। আপনি দয়া করে পিএইচপি, এবং মাইএসকিএলে একটি উদাহরণ দেখাতে পারেন (প্রয়োজনে)?
ইসতিয়াক আহমেদ

2
@ ইসতিয়াক আহমেদ উদাহরণস্বরূপ, আপনি যখন ডিস্কে কোনও ফাইলের জন্য কোনও অ্যারে সঞ্চয় করতে চান, আপনি সরাসরি অ্যারে সংরক্ষণ করতে পারবেন না তবে এটিকে একটি স্ট্যাটিভ মানটিতে পরিণত করতে পারেন এবং এটি স্ট্রিং।
xdazz

তবে আমরা পিএইচপি মাইএসকিএল-এ সিরিয়াল না করে সরাসরি ডাটাবেসে ভেরিয়েবল sertোকাতে পারি। ব্যাখ্যা করুন।
ইসতিয়াক আহমেদ

9
"আমরা ডাটাবেসে সিরিয়াল না করে ভেরিয়েবল সন্নিবেশ করতে পারি" । এটি কেবলমাত্র মৌলিক ডেটা ধরণের (স্ট্রিং, পূর্ণসংখ্যা, সংখ্যা) জন্য সত্য। আমরা সরাসরি ডিবি বা ফাইল সিস্টেমে অ্যারে এবং অবজেক্টগুলি সন্নিবেশ করতে পারি না । এটিই serialize()এবং unserialize()এর জন্য তৈরি।
lorenzo-s

আপনি কিছু তথ্য নিয়ে যান এবং এটি দিয়ে কোথাও এটি পাঠাতে / প্রস্তুত করার জন্য প্রস্তুত আপনার পিএইচপি স্ক্রিপ্টে কিছু কাজ করেন। আপনার কাছে একটি টেবিল তৈরি করার বিকল্প রয়েছে যা প্রত্যাশিত ডেটার সাথে ঠিক মেলে, তবে এটি ক্লান্তিকর আপনি মূলত আপনার কাজের চাপ দ্বিগুণ করছেন কারণ আপনার কোডটিও খুব বেশি মেলে যা লিখতে হবে, সাথে সাথে ডাটাবেসের পরিবর্তনের কোড বা তদ্বিপরীত পরিবর্তন প্রয়োজন। সিরিয়ালযুক্ত হয়ে গেলে আপনি কেবল দুটি কলাম আইডি ইন্ট (10) এবং তথ্য বিএলওবি সহ একটি টেবিল তৈরি করতে পারেন। সিরিয়ালাইজ আপনাকে সন্নিবেশ করানোর এবং আনসিরিয়ালাইজ করার জন্য একটি স্ট্রিং দেয় যা তথ্যটিকে তার মূল অবস্থায় ফিরিয়ে দেয়। এটি স্বতঃস্ফূর্ত ক্ষেত্রে আছে, পিএইচপি ডক্স সেগুলি কভার করে।
ক্রিস

7
<?php
$a= array("1","2","3");
print_r($a);
$b=serialize($a);
echo $b;
$c=unserialize($b);
print_r($c);

এই প্রোগ্রামটি এর আউটপুট প্রতিধ্বনি চালান

a:3:{i:0;s:1:"1";i:1;s:1:"2";i:2;s:1:"3";}


এখানে
a = অ্যারের আকার
i = অ্যারের সংখ্যার
s = অ্যারের মানের আকার

আপনি ডাটাবেসে অ্যারের ডেটা সঞ্চয় করতে সিরিয়ালাইজ ব্যবহার করতে পারেন
এবং ইউএন-সিরিয়াল ব্যবহার করতে ডেটা পুনরুদ্ধার করতে এবং করতে পারেন।


6

বেশিরভাগ স্টোরেজ মিডিয়াম স্ট্রিংয়ের ধরণ সঞ্চয় করতে পারে । তারা কোনও পিএইচপি ডেটা কাঠামো যেমন অ্যারে বা অবজেক্টের মতো সরাসরি সঞ্চয় করতে পারে না এবং তাদের উচিত নয়, কারণ এটি পিএইচপি দিয়ে ডেটা স্টোরেজ মিডিয়ামটিকে যুগল করে।

পরিবর্তে, serialize()আপনাকে স্ট্রিং হিসাবে এই স্ট্রাকগুলির একটি সংরক্ষণ করতে দেয়। এটির সাথে এর স্ট্রিং প্রতিনিধিত্ব থেকে ডি-সিরিয়াল করা যেতে পারে unserialize()

যদি আপনি json_encode()এবং json_decode()(এবং জেএসএন সাধারণভাবে) সাথে পরিচিত হন তবে ধারণাটি একই রকম।


জেসন এর সাথে পরিচিত পিএইচপি জিনিসটিতে এখনও অস্পষ্টতা। আমার পোস্টটি সম্পাদনা করেছেন
ইসতিয়াক আহমেদ

যদি কোন জেসন_এনকোড থাকে তবে কেন সিরিয়ালাইজ করা দরকার? আপনি যদি জানেন দয়া করে ব্যাখ্যা করুন। ধন্যবাদ।
ইয়েভেগেনি আফানসিয়েভ

1
@ ইয়েজেগেনিআফানাসিয়েভ সম্ভবত আপনি কিছু উপসর্গের জন্য নাও পারেন। তবে আমি মনে করি serialize()জেএসওএনকে পূর্বাভাস দেয়।
অ্যালেক্স

5

অনুগ্রহ! অনুগ্রহ! অনুগ্রহ! ডেটা ক্রমিক করবেন না এবং এটি আপনার ডাটাবেসে রাখবেন না। সিরিয়ালাইজটি সেভাবে ব্যবহার করা যেতে পারে তবে এটি আপনার ডেটাবেস ইঞ্জিনের অন্তর্নিহিত কোনও সম্পর্কিত ডেটাবেস এবং ডেটাটাইপগুলির বিন্দুটি হারিয়েছে। এটি করার ফলে আপনার ডাটাবেসে ডেটা অ-বহনযোগ্য, পড়তে অসুবিধা এবং প্রশ্নগুলিকে জটিল করে তুলতে পারে। আপনি যদি নিজের অ্যাপ্লিকেশনটি অন্য ভাষাগুলির কাছে পোর্টেবল করতে চান তবে যেমন ধরুন যে আপনি নিজের অ্যাপ্লিকেশনের কিছু অংশ জাভা ব্যবহার করতে চান তা জাভা ব্যবহার করা বোধগম্য হয়, সিরিয়ালাইজেশন নিতম্বের ব্যথা হয়ে যাবে। আপনার partyোকাতে তৃতীয় পক্ষের মধ্যস্থতাকারী সরঞ্জামটি ব্যবহার না করেই সর্বদা ডেটাবেজে ডেটাটি অনুসন্ধান এবং সংশোধন করতে সক্ষম হওয়া উচিত।

কোড, বহনযোগ্যতার সমস্যাযুক্ত কোড এবং ডেটা বজায় রাখা সত্যিই কঠিন করে তোলে যা অন্য আরডিএমএস সিস্টেমগুলিতে, নতুন স্কিমা ইত্যাদিতে স্থানান্তরিত করা আরও কঠিন of এটির একটির উপর ভিত্তি করে আপনার ডাটাবেস অনুসন্ধানে এটি অগোছালো করার অতিরিক্ত অসুবিধাও রয়েছে ক্ষেত্রগুলি যা আপনি সিরিয়াল করেছেন।

এটি সিরিয়ালাইজ () অকেজো বলে মনে হয় না। এটি নয় ... এটি ব্যবহারের জন্য একটি ভাল জায়গা উদাহরণস্বরূপ, ডেটা নিবিড় ক্রিয়াকলাপের ফলাফল ধারণ করে এমন একটি ক্যাশে ফাইল হতে পারে। আরও অনেকগুলি আছে ... কেবল সিরিয়ালাইজ করুন না কারণ পরবর্তী ছেলেটি যে আসবে তার একটি রক্ষণাবেক্ষণ বা মাইগ্রেশন দুঃস্বপ্ন হবে।

সিরিয়ালাইজ () এবং আনসিরিয়ালাইজ () এর একটি ভাল উদাহরণ এটি হতে পারে:

$posts = base64_encode(serialize($_POST));
header("Location: $_SERVER[REQUEST_URI]?x=$posts");

পৃষ্ঠায় আনসিরিয়ালাইজ করুন

if($_GET['x']) {
   // unpack serialize and encoded URL
   $_POST = unserialize(base64_decode($_GET['x']));
}

2
প্রদত্ত কোডটিতে বেশ কয়েকটি সুরক্ষিত দুর্বলতা রয়েছে, লোকেরা আগত এবং কপির পেস্টিং কোডকে সতর্ক করতে হবে।
ড্যানিয়েল ডাব্লু

প্রদত্ত কোডটি কীভাবে অনুসন্ধান এবং আনসিরিয়াল ফাংশনটি ব্যবহার করতে হয় তার একটি উদাহরণ।
অবনীশ অলোক

2

Http://php.net/manual/en/function.serialize.php থেকে :

একটি মান একটি স্থির প্রতিনিধিত্ব উত্পন্ন। এটি পিএইচপি মানগুলি তাদের ধরণ এবং কাঠামো না হারিয়ে চারপাশে সঞ্চয় বা পাস করার জন্য দরকারী।

মূলত, এটি পিএইচপি অ্যারে বা অবজেক্ট নেয় এবং এটিকে স্ট্রিংয়ে রূপান্তর করে (যা আপনি উপযুক্ত হিসাবে দেখতে সঞ্চারিত বা সঞ্চয় করতে পারবেন)।

স্ট্রিংটিকে কোনও বস্তুতে রূপান্তর করতে আনসিরিয়ালাইজ ব্যবহার করা হয়।


'স্থির প্রতিনিধিত্ব' এর ব্যাখ্যা কী?
ইসতিয়াক আহমেদ

ive কেবল তখনই ব্যবহৃত সিরিয়ালাইজ দেখা যায় যখন কেউ পিএইচপি অ্যারে নিতে এবং এটি একটি ডেটাবেজে সঞ্চয় করতে চায়। আপনি সিরিয়ালায়িত করতে পারেন, আপনার ডাটাবেসে একটি স্ট্রিং ফিল্ডে আউটপুট সংরক্ষণ করতে পারেন এবং তারপরে আবার ব্যবহার করতে চাইলে এটিকে ধরে ফেলুন এবং আনসিরিয়ালাইজ করতে পারেন।
মিঃগ্লাস

1

মূলত, আপনি যখন অ্যারে বা অবজেক্টগুলি ক্রমিক করেন তখন আপনি এটিকে কেবল একটি বৈধ স্ট্রিং ফর্ম্যাটে পরিণত করেন যাতে আপনি এগুলি পিএইচপি স্ক্রিপ্টের বাইরে সহজেই সঞ্চয় করতে পারেন।

  1. ডাটাবেসে কোনও অবজেক্টের অবস্থা বাঁচাতে সিরিয়ালাইজ ব্যবহার করুন (উদাহরণস্বরূপ ব্যবহারকারীর শ্রেণিটি নেওয়া যাক) পূর্ববর্তী স্থিতিকে বস্তুতে লোড করার জন্য উপাত্তটি অনিরিয়ালাইজ করুন (পদ্ধতিগুলি সিরিয়াল নয় যা ব্যবহার করতে সক্ষম হওয়ার জন্য আপনাকে অবজেক্ট শ্রেণি অন্তর্ভুক্ত করতে হবে এটা)
    • ব্যবহারকারীর ব্যক্তিগতকরণ

অবজেক্টের জন্য দ্রষ্টব্য আপনার যাদু __ ঘুম এবং __টেকআপ পদ্ধতিগুলি ব্যবহার করা উচিত। __ ঘুমকে সিরিয়ালাইজ () বলে। একটি ঘুম পদ্ধতি আপনাকে অব্যাহত রাখতে চাইলে অবজেক্ট থেকে মানগুলির একটি অ্যারে ফিরিয়ে দেবে।

__ওয়াকআপকে আনসিরিয়ালে () দ্বারা ডাকা হয়। একটি ওয়েকআপ পদ্ধতির অপ্রচলিত মানগুলি গ্রহণ করা উচিত এবং তাদেরকে বস্তুতে তাদের আরম্ভ করা উচিত।

পিএইচপি এবং জেএস এর মধ্যে ডেটা পাস করার জন্য আপনি পিএইচপি অ্যারেটিকে বৈধ জসন ফর্ম্যাটে পরিণত করতে json_encode ব্যবহার করবেন। বা অন্যভাবে রাউন্ড - কোনও আউটপুট ডেটা (স্ট্রিং) কে বৈধ জেসন অবজেক্টে রূপান্তর করতে JSON.parese () ব্যবহার করুন। স্থানীয় স্টোরেজটি ব্যবহার করতে আপনি এটি করতে চান। (অফলাইন ডেটা অ্যাক্সেস)


যদি কোন জেসন_এনকোড থাকে তবে কেন সিরিয়ালাইজ করা দরকার? আপনি যদি জানেন দয়া করে ব্যাখ্যা করুন। ধন্যবাদ।
ইয়েভেগেনি আফানসিয়েভ

1
সিরিয়ালাইজ এবং আনসিরিয়ালাইস ব্যবহার করার সময় কল করা হয় এমন যাদু পদ্ধতিটি কাস্টমাইজ করতে সক্ষম হয়ে আপনি উপকার পেতে পারেন। এটি বলেছিল যে আপনি জসন_নকোড () এবং জসন_ডেকোড () অনেক বেশি গ্রহণ করতে পারেন এবং প্রতিটি বস্তু এই ফান্টিনোগুলিকে তার অনন্য উপায়ে পরিচালনা করতে পারে। এজন্য আপনি এগুলি ব্যবহার করতে চান।
DevWL

1
এটি আরও অনেক কিছু আছে। আরও তথ্যের জন্য এই উত্তরটি দেখুন stackoverflow.com/questions/804045/...
DevWL

1
json_encode দ্রুত (আপনি যে পিএইচপি সংস্করণ ব্যবহার করছেন তার উপর নির্ভর করে), জেসনটি স্টাডক্লাস হিসাবে ডিকোড করে, সিরিলিকৃত বস্তুটিকে প্রকৃত শ্রেণীর উদাহরণ হিসাবে আনসিরিয়ালাইজ করে, কিছু কনফিগারেশন আমাকে ইউএসএফ -8 এনকোডিং অপরিবর্তিত রাখার জন্য জেএসনকে তৈরি করেছে, সিরিয়ালাইজটি এনকোডিং পরিবর্তন করে না। আপনি যদি ডেটা ক্রস প্ল্যাটফর্মটি JSON ব্যবহার করতে চান, আপনি যদি কেবলমাত্র পিএইচপিতে কাজ করেন তবে আপনি সিরিয়ালাইজেশনটি কাস্টমাইজ করতে __ ঘুম এবং __টেকআপ যাদু পদ্ধতি ব্যবহার করতে পারেন।
ডেভডব্লুএল

0

হ্যা আমি পারি. ধরুন আমাদের আপনার সিস্টেমের ট্র্যাক করা দরকার যার অর্থ আপনার সিস্টেমে একাধিক অ্যাডমিন এবং সাব-এডমিন রয়েছে, এগুলি সমস্তই কোনও তথ্য সন্নিবেশ বা আপডেট করতে বা সম্পাদনা করতে পারে who এই পরিবর্তনটি কে করছেন তা আপনার আরও জানতে হবে। এই সমস্যা সমাধানের জন্য আপনার সিরিয়ালাইজ করা দরকার।

  **Explain:**Create a table named history which stores all changes. Each time there is a change insert a new row in this table. It might have this fields:

  history(id,target_table(name of the table), target_id (ID of the saved entry),create/edit/change data (serialized data of the saved row),date)

আমি আশা করি এটা তোমাকে সাহায্য করবে।


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