السلام عليكم
اريد كود php لأرسال رابط و اسمه المختصر من form html الى ملف json
هذا هو form htm
<form method="post">
<input type="text" name="link" placeholder="Link" /><br />
<input type="text" name="custom" placeholder="Custom Link" /><br />
<input type="submit" value="submit" />
</form>
مثلا الرابط في خانة name="link" و اسمه المختصر في خانة name="custom
ليصبح على هذا الشكل في ملف json
{
"google": "https://google.com"
}
وشكــــرا
التعليقات
إن صفحة HTML كما أرفقتها أنت (مع تحديد اسم صفحة PHP التي سوف تستجيب للطلبية kh.php):
<!DOCTYPE html> <html> <head></head> <body> <form method="post" action="kh.php"> <input type="text" name="link" placeholder="Link" /> <br /> <input type="text" name="custom" placeholder="Custom Link" /> <br /> <input type="submit" value="submit" /> </form> </body> </html>
شيفرة PHP:
نستقبل قيم حقول الإدخال من خلال المصفوفة العامة POST_$ :
<?php $link = $_POST['link']; $custom = $_POST['custom'];
ثم نقوم ببناء غرض برمجي ضمن PHP ثم نحوله ل JSON باستخدام دالة json_encode:
$myObj[$link] = $custom; $myJSON = json_encode($myObj); echo $myJSON;
لإنشاء ملف: نستخدم الدالة fopen بنمط الكتابة w = write , ونحدد اسم الملف الهدف ثم نكتب البيانات الناتجة من الخطوة السابقة عن طريق fwiter ثم نغلق الملف
$myfile = fopen("newfile.json", "w") or die("Unable to open file!");
fwrite($myfile, $myJSON);
fclose($myfile);
كامل الشيفرة:
<?php
$link = $_POST['link'];
$custom = $_POST['custom'];
$myObj[$link] = $custom;
$myJSON = json_encode($myObj);
$myfile = fopen("newfile.json", "w") or die("Unable to open file!");
fwrite($myfile, $myJSON);
fclose($myfile);
echo $myJSON;
شكرا اخي على الرد
بمساعدتك توصلت الى نصف الحل
هذا الكود يضيف الرابط و اسمه المختصر
ولكن كلما اردت اضافة رابط اخر واسمه المختصر
يمسح الرابط الذي كان قبله
وانا اريد اضافة الروابط والأسماء المختصرة الى ما نهاية. بدون مسح الرابط السابق...
<center> <h1> add links </1>
<form method="post">
<input type="text" name="link" placeholder="Link" /><br />
<input type="text" name="custom" placeholder="Custom Link" /><br />
<input type="submit" value="submit" />
</form></center>
<?php
$link = $_POST['link'];
$custom = $_POST['custom'];
$links[$custom] = $link;
file_put_contents("links.json", json_encode($links, JSON_PRETTY_PRINT));
?>
حل النصف الآخر للمشكلة:
سوف نجعل الملف يخزن مصفوفة من اغراض JSON. وهذا يجعل الملف ديناميكي..
$data[] = $_POST['data']; // القيمة الجديدة
$inp = file_get_contents('results.json'); // نقرأ محتوى الملف قبل الإضافة
$tempArray = json_decode($inp); // نحول المحتوى لمصفوفة
array_push($tempArray, $data); // نضيف كاىن جيسون جديد
$jsonData = json_encode($tempArray); // نحول المصفوفة لترميز جيسون
file_put_contents('results.json', $jsonData); // نعيد كتابة القيمة الجديدة للملف
تفضل:
<?php
$link = $_POST['link'];
$custom = $_POST['custom'];
$myObj[$link] = $custom;
$inp = file_get_contents('newfile.json'); // نقرأ محتوى الملف قبل الإضافة
$old_data = json_decode($inp); // نحول المحتوى لمصفوفة
$tempArray = $old_data;
$tempArray[] = $myObj; // نضيف كاىن جديد
$jsonData = json_encode($tempArray); // نحول المصفوفة لترميز جيسون
file_put_contents('newfile.json', $jsonData); // نعيد كتابة القيمة الجديدة للملف
//echo $jsonData;