【问题标题】:how to set up a direct piwik API calling in php如何在 php 中设置直接 piwik API 调用
【发布时间】:2012-02-11 07:17:46
【问题描述】:

我试图这样做,但它给出了这个错误: Fatal error: Class 'Piwik_FrontController' not found in C:\wamp\www\aqar2\piwik.php on line 11

我的网站路径是:localhost/aqar2 我的 piwik 路径是:localhost/aqar2/piwik

<?php
// if you don't include 'index.php', you must also define PIWIK_DOCUMENT_ROOT
// and include "libs/upgradephp/upgrade.php" and "core/Loader.php"
define('PIWIK_INCLUDE_PATH', realpath('.localhost/aqar2/.'));
define('PIWIK_USER_PATH', realpath('.localhost/aqar2/.'));
define('PIWIK_ENABLE_DISPATCH', false);
define('PIWIK_ENABLE_ERROR_HANDLER', false);
define('PIWIK_ENABLE_SESSION_START', false);
require_once PIWIK_INCLUDE_PATH . "piwik/index.php";
require_once PIWIK_INCLUDE_PATH . "piwik/core/API/Request.php";
Piwik_FrontController::getInstance()->init();
// This inits the API Request with the specified parameters
$request = new Piwik_API_Request('
        method=UserSettings.getResolution
        &idSite=1
        &date=yesterday
        &period=week
        &format=XML
        &filter_limit=3
        &token_auth=&token_auth=a688c5c011dac27cf125eaa84f95e59b
');
// Calls the API and fetch XML data back
$result = $request->process();
echo $result;
?>

【问题讨论】:

    标签: php matomo


    【解决方案1】:

    如果你的php文件在localhost/aqar2/那么路径必须是define('PIWIK_INCLUDE_PATH', realpath('piwik/'));

    我知道你可能已经修复了它,所以我会为可能需要它的人添加它...

    【讨论】:

      【解决方案2】:

      该错误是由于正在使用(或引用)类但尚未加载的结果。这可能是因为您的 PIWIK_INCLUDE_PATH 设置不正确,或者您需要自己包含该类。

      首先,仔细检查PIWIK_INCLUDE_PATH 中设置的值是否是系统上的有效路径,可能是:

      if (is_dir(PIWIK_INCLUDE_PATH)) {
        exit('IT IS A REAL PATH');
      } else {
        exit('IT IS NOT A REAL PATH');
      }
      

      如果事实证明它不是真正的路径,也许您应该查看 '.' 'localhost' 目录上的点前缀。你不是要使用realpath('localhost/aqar2/piwik');。如果这确实有效,您还应该查看如何设置 PIWIK_USER_PATH

      如果这不起作用,您应该考虑自己包含 FrontController 类,但这可能意味着您还必须手动包含该类的所有依赖项。要手动包含该类,请使用include(PIWIK_INCLUDE_PATH . '/core/FrontController.php');

      您尝试使用的目录结构似乎是错误的,也许您应该修改它并尝试将所有文​​件保留在localhost 目录下。

      【讨论】:

      • 我使用了这个define('PIWIK_INCLUDE_PATH', realpath('piwik/'));,它为您的目录检查代码开了绿灯。我不知道用户路径是什么,但我将其定义为与包含路径相同。它仍然给我一个错误。Warning: require_once(C:\wamp\www\aqar2\piwikindex.php) [function.require-once]: failed to open stream: No such file or directory in C:\wamp\www\aqar2\piwik.php on line 16` 致命错误:require_once() [function.require]: Failed opening required 'C:\wamp\www\aqar2\piwikindex.php' (include_path='.;C:\ php\pear') 在 C:\wamp\www\aqar2\piwik.php 第 16 行`
      • 看来你的包含路径还是错误的。也许这是目录结构错误的结果。您可以编辑您的帖子以包含您的 www 目录中的目录结构吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 2019-05-29
      • 2021-09-07
      • 1970-01-01
      相关资源
      最近更新 更多