(PHP) مشكلة إرجاع قيمة في الدالة copy
السلام عليكم ..
إستخدمت الدالة copy لنسخ محتويات ملف ووضعها في ملف آخر ..
وحصلت معي مشكلة وهي عندما تنجح العملية يرجع لي قيمة 1
مثال :
[تعديل: إضافة ]
الكود المستخدم :
<?php
// if the user click on the submit button
if(isset($_POST['submit'])) {
$SubName = $_POST['SubName'];
$SubText = $_POST['SubText'];
$PagName = $_POST['PagName'].".php";
// connect to db
$connect = mysqli_connect("localhost","root","","test") or die("Problem to connect to db ");
$check = mysqli_query($connect,"SELECT name FROM subject_detail WHERE page_name = '$PagName'");
if($result = mysqli_num_rows($check) == 1) {
echo "There is file with this name , Try to write a different name ";
}
else {
$query = mysqli_query($connect,"INSERT INTO subject_detail (name,message,page_name) VALUES ('$SubName','$SubText','$PagName')");
// check if the data insert into db
$create_file = fopen("$PagName","a");
$write_to_file = fwrite($create_file, copy("index.txt","$PagName"));
if($query) {
if ($create_file) {
if($write_to_file) {
echo "file created";
}
}
}
else { // if($qurey)
echo "Sorry, there's problem to create this file";
}
}
} // close $_POST ['submit']
?>
هذا الكود لطباعة البيانات : ملف(( نصي ))
<?php
// connect to db
include('connect.php');
$page_name = basename($_SERVER['PHP_SELF']);
$query = mysqli_query($connect,"SELECT * FROM subject_detail WHERE page_name = '$page_name' ") or die ("Problem to connect to db");
//fetch the data from db
while($rows = mysqli_fetch_array($query)) {
// display the data to user
echo 'Your Subject name is : ' . $rows['name'] . "<br>";
echo 'Your Message is : ' . $rows['message'] . "<br>";
}
?>
كيف أتفادى هذا وهل هناك دالة بديلة لـ copy لنسخ محتويات ملف ؟
شكرا جميعاً
الإجابة الصحيحة
الإجابات (3)
وعليكم السلام ورحمة الله وبركاته
هل بالامكان تزويدنا بالأكواد المستخدمة للنسخ وللطباعة .
محمد الحربي: تم التحديث وإضافة الاكواد
وعليكم السلام،
ما المقصود بهذا السطر؟
$write_to_file = fwrite($create_file, copy("index.txt","$PagName"));
دالة copy تقوم بنسخ الملف،و ترجع true في حال نجحت العملية، و false في حال الفشل. ولا توضع بداخل fwrite، وضح بالضبط ما الذي تريد فعله بالملف حتى نتمكن من مساعدتك.
محمد الحربي: عندي ملف واريد ان انسخه محتوياته التي تقدمها دالة copy ووضعها في المتغير $PageName الذي هو ملف جديد ينشأ تلقائي عند الضغط على الزر معين
عمار الخوالدة: دالة copy لا تنسخ محتويات الملف، انما تنسخ الملف نفسه، فلا يمكنك استخدامها بهذه الطريقة، فهي ترجع 0 أو 1 ولا ترجع محتويات الملف.
محمد الحربي: هل هناك دالة لنسخ المحتويات ؟
عمار الخوالدة: إما أن تستخدم نفس الدالة copy وتحذف fwrite، أو أن تستخدم fwrite مع file_get_contents
محمد الحربي: شكراً ضبط
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !