اريد كود php لأرسال رابط من form html الى ملف json

السلام عليكم
اريد كود 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;

@waelaljamal

شكرا اخي على الرد

بمساعدتك توصلت الى نصف الحل

هذا الكود يضيف الرابط و اسمه المختصر

ولكن كلما اردت اضافة رابط اخر واسمه المختصر

يمسح الرابط الذي كان قبله

وانا اريد اضافة الروابط والأسماء المختصرة الى ما نهاية. بدون مسح الرابط السابق...

<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 مدمج مع كود form html

يكون شغال معاك

الشيفرة تحتاج لتعديل أسماء المتغيرات فقط..

تاكد من تطابقهم واسم الملف وسيعمل.

اعتبره تدريب لك

هذه محاولتي في هذا الرابط اسفله

ممكن تصحح لي الأخطاء .

جزاك الله خيرا .

تفضل:

<?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;


@waelaljamal

بارك الله في عمرك اخي الكريم.

و شكرا على مساعدتك ...