اذهب إلى المحتوى
  • 0

كيف أقوم بتضمين سكريبت من لغة أخرى غير PHP وتشغيله في مشروع لارافل

Abdelrahman Mostafa10

السؤال

أريد تشغيل سكريبت بايثون في مشروع لارافل لدي، حيث وضعت السكريبت في مجلد باسم python داخل مجلد resources، حيث يعمل السكريبت على تحويل ملفات بأحجام كبيرة من xlsx إلى CSV.

فما هي الطريقة الصحيحة، فأنا مُعتاد على تشغيل السكريبت بشكل منفصل في مشروع بايثون.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يمكنك تشغيل السكريبت عبر الدالة exec في PHP ستنادي علي سكريبت بايثون من داخل متغير Controller باستخدام الخاصية PHP `exec()` أو `system()`

// اسم ملف السكريبت في مجلد resources/python
$scriptPath = base_path('resources/python/index.py');

// الأمر لتشغيل سكريبت Python
$command = "python $scriptPath";

// تشغيل السكريبت
exec($command, $output, $exitCode);

// التحقق من إذا كان هناك أخطاء
if ($exitCode !== 0) {
echo "حدث خطأ أثناء تشغيل السكريبت";
} else {
echo "تم تحويل الملفات بنجاح!";
}

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 16‏/1‏/2024 at 11:58 قال Khaled Osama3:

يمكنك تشغيل السكريبت عبر الدالة exec في PHP ستنادي علي سكريبت بايثون من داخل متغير Controller باستخدام الخاصية PHP `exec()` أو `system()`

// اسم ملف السكريبت في مجلد resources/python
$scriptPath = base_path('resources/python/index.py');

// الأمر لتشغيل سكريبت Python
$command = "python $scriptPath";

// تشغيل السكريبت
exec($command, $output, $exitCode);

// التحقق من إذا كان هناك أخطاء
if ($exitCode !== 0) {
echo "حدث خطأ أثناء تشغيل السكريبت";
} else {
echo "تم تحويل الملفات بنجاح!";
}

 

بالإضافة لذلك توفر Laravel واجهة برمجية API للتعامل مع العمليات (Processes) من خلال الصنف (class)

اقتباس

Illuminate\Support\Facades\Process

ويمكنك تشغيل السكربت من خلال التابع run مثال توضيحي:

// في بداية الملف
use Illuminate\Support\Facades\Process;
// في الصنف الخاص بك
private function execPythonScript():void{
	$result = Process::run('python script.py');
	// لطباعة النتيجة
	// echo $result->output();
}

لمعلومات إضافية يمكنك قراءة التوثيق الرسمي: Processes

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...