我使用的cronjob以下方式來觸發一個PHP腳本:的cronjob需要絕對路徑
/web/cgi-bin/php5 $HOME/html/library/myScript.php auth_key=xxxxxxx
但我遇到問題需要和我都試過了我能找到的stackO了。 似乎無法加載SendGrid自動加載
//myScript.php
#!/web/cgi-bin/php5
<?php
include('../config.php'); // this works well for some reason...
if(isset($_GET['auth_key']) && $_GET['auth_key'] == "xxxxxxx")
{
// send email
include('home/content/aa/bbbbbb/html/scripts/sendgrid/lib/SendGrid.php'); // this works only this way
include('home/content/aa/bbbbbb/html/scripts/unirest/lib/Unirest.php'); // this too
SendGrid::register_autoloader(); // fails here!
}
?>
而且這也沒有工作,要麼:
set_include_path('/home/content/aa/bbbbbb/html/');
require 'scripts/sendgrid/lib/SendGrid.php';
require 'scripts/unirest/lib/Unirest.php';
我也沒有這樣的:
chdir(dirname(__FILE__));
的SendGrid.php是folowwin,我認爲問題出在某個地方,因爲這也需要調用!
//SendGrid.php
<?php
class SendGrid {
const VERSION = "1.1.5";
protected $namespace = "SendGrid",
$username,
$password,
$web,
$smtp;
public function __construct($username, $password) {
$this->username = $username;
$this->password = $password;
}
public static function register_autoloader() {
spl_autoload_register(array('SendGrid', 'autoloader'));
}
public static function autoloader($class) {
// Check that the class starts with "SendGrid"
if ($class == 'SendGrid' || stripos($class, 'SendGrid\\') === 0) {
$file = str_replace('\\', '/', $class);
if (file_exists(dirname(__FILE__) . '/' . $file . '.php')) {
require_once(dirname(__FILE__) . '/' . $file . '.php');
}
}
}
public function __get($api) {
$name = $api;
if($this->$name != null) {
return $this->$name;
}
$api = $this->namespace . "\\" . ucwords($api);
$class_name = str_replace('\\', '/', "$api.php");
$file = __dir__ . DIRECTORY_SEPARATOR . $class_name;
if (!file_exists($file)) {
throw new Exception("Api '$class_name' not found.");
}
require_once $file;
$this->$name = new $api($this->username, $this->password);
return $this->$name;
}
}
當然,任何幫助是非常感謝! 由於提前,洛伊絲
大家好,感謝您的回覆!那麼我試圖包括這些庫,它只有當我這樣做時才起作用我在我的帖子中描述 – Lois