سؤال
أنا أعاني بعض المشاكل مع ob_*
وظيفة عندما يعمل ككرونجوب:
<?php
function getLayout($file, $extract=array()) {
if (is_file($file)) {
if (count($extract) > 0) {
extract($extract);
}
ob_start();
include $file;
$contents = ob_get_contents();
ob_end_clean();
return $contents;
}
return false;
}
file_put_contents('somecachefile.html', getLayout('somefile.php', array('var1'=>$val1, 'var2'=>$val2)));
?>
يعد Cronjob مثل هذا: (يعمل كل دقيقة)
* * * * * /usr/bin/php /path/to/cron.php > /dev/null
في هذه الحالة لا يحدث شيء ولكن كرون ركض حقا.
إذا اتصلت بهذا (/usr/bin/php /path/to/cron.php
) من سطر الأوامر كل شيء يعمل كما هو متوقع.
أي أفكار ارتكبت فيها خطأ؟
شكرا للمساعدة المقدمة!
المحلول
ربما تحتاج إلى استخدام المسار المطلق على "SomeFile.php". ربما يتم إنشاؤه في PWD من كرون. أو يمكنك القيام ب ChDIR في بداية البرنامج النصي في بيان Cron.
لا تنتمي إلى StackOverflow