(PHP) مشكلة إرجاع قيمة في الدالة copy

محمد الحربي • منذ 5 سنوات

السلام عليكم ..

إستخدمت الدالة 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 لنسخ محتويات ملف ؟

 

شكرا جميعاً

كلمات دليلية: html php

الإجابة الصحيحة

عمار الخوالدة • منذ 5 سنوات

وعليكم السلام،


ما المقصود بهذا السطر؟ 

$write_to_file = fwrite($create_file, copy("index.txt","$PagName"));

 

دالة copy تقوم بنسخ الملف،و ترجع true في حال نجحت العملية، و false في حال الفشل. ولا توضع بداخل fwrite، وضح بالضبط ما الذي تريد فعله بالملف حتى نتمكن من مساعدتك.

الإجابات (3)

Abdullah Alhariri • منذ 5 سنوات

وعليكم السلام ورحمة الله وبركاته

هل بالامكان تزويدنا بالأكواد المستخدمة للنسخ وللطباعة .

محمد الحربي: تم التحديث وإضافة الاكواد

محمد الحربي • منذ 5 سنوات

اي إجابة يا شباب ؟

عمار الخوالدة • منذ 5 سنوات
الإجابة الصحيحة
مميز

وعليكم السلام،


ما المقصود بهذا السطر؟ 

$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

محمد الحربي: شكراً ضبط

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !