Привет, я хочу интегрировать класс SEOStats с проектом в codeigniter, кто-нибудь предлагает мне решение?
Я попытался сделать класс SEOstats помощником и загрузить помощника в конкретный элемент управления, но показывается пустая страница, я также пытаюсь включить его через представление, но та же самая пустая страница, которую я вижу,
Я включил этот код в свой файл просмотра, каталог SEOstats также в тот же каталог представлений.
<?php require_once 'SEOstats/bootstrap.php'; use \SEOstats\Services as SEOstats; try { $url = 'http://www.google.com/'; // Create a new SEOstats instance. $seostats = new \SEOstats\SEOstats; // Bind the URL to the current SEOstats instance. if ($seostats->setUrl($url)) { echo SEOstats\Alexa::getGlobalRank(); echo SEOstats\Google::getPageRank(); } } catch (SEOstatsException $e) { die($e->getMessage()); }
я также использовал его как библиотеку
<?php namespace SEOstats; use SEOstats\Common\SEOstatsException as E; use SEOstats\Config as Config; use SEOstats\Helper as Helper; use SEOstats\Services as Service; class SEOstats { const BUILD_NO = Config\Package::VERSION_CODE; protected static $_url, $_host, $_lastHtml, $_lastLoadedUrl = false; public function __construct($url = false) { if (false !== $url) { self::setUrl($url); } } public function Alexa() { return new Service\Alexa; } public function Google() { return new Service\Google; } public function OpenSiteExplorer() { return new Service\OpenSiteExplorer; } public function SEMRush() { return new Service\SemRush; } public function Sistrix() { return new Service\Sistrix; } public function Social() { return new Service\Social; } public static function getHost() { return self::$_host; } public static function getLastLoadedHtml() { return self::$_lastHtml; } public static function getLastLoadedUrl() { return self::$_lastLoadedUrl; } /** * Ensure the URL is set, return default otherwise * @return string */ public static function getUrl($url = false) { $url = false !== $url ? $url : self::$_url; return $url; } public function setUrl($url) { if (false !== Helper\Url::isRfc($url)) { self::$_url = $url; self::$_host = Helper\Url::parseHost($url); } else { throw new E('Invalid URL!'); exit(); } return true; } /** * @return DOMDocument */ protected static function _getDOMDocument($html) { $doc = new \DOMDocument; @$doc->loadHtml($html); return $doc; } /** * @return DOMXPath */ protected static function _getDOMXPath($doc) { $xpath = new \DOMXPath($doc); return $xpath; } /** * @return HTML string */ protected static function _getPage($url) { $url = self::getUrl($url); if (self::getLastLoadedUrl() == $url) { return self::getLastLoadedHtml(); } $html = Helper\HttpRequest::sendRequest($url); if ($html) { self::$_lastLoadedUrl = $url; self::_setHtml($html); return $html; } else { self::noDataDefaultValue(); } } protected static function _setHtml($str) { self::$_lastHtml = $str; } protected static function noDataDefaultValue() { return Config\DefaultSettings::DEFAULT_RETURN_NO_DATA; } }
и загрузил библиотеку как
$this->load->library('SEOstats');
Я знаю, что этот пост старый. Но я искал решение, а также недавно, и в конечном итоге написал свой собственный, и решил, что оставлю его здесь, если кто-то еще будет искать решение в будущем.
Поместите следующее в файл библиотеки и автозагрузку, если хотите.
if (!defined('BASEPATH')) exit('No direct script access allowed'); class SEOstatistics { private $seostats; function __construct() { require_once( APPPATH . 'third_party/seostats/bootstrap.php' ); $this->seostats = new \SEOstats\SEOstats; } private function alexa() { return new \SEOstats\Services\Alexa; } private function google() { return new \SEOstats\Services\Google; } private function moz() { return new \SEOstats\Services\Mozscape(); } private function openSiteExplorer() { return new \SEOstats\Services\OpenSiteExplorer(); } private function semRush() { return new \SEOstats\Services\SemRush(); } private function sistrix() { return new \SEOstats\Services\Sistrix(); } private function social() { return new \SEOstats\Services\Social(); } public function __call($method, $url) { if (method_exists($this, $method)) { if ($this->seostats->setUrl($url[0])) { return call_user_func_array(array($this, $method),array()); } return false; } } }
И тогда пример использования его в контроллере или модели:
$google = $this->seostatistics->google($url); $rank = $google->getPageRank();
Вот как я включаю SEOStats на моем веб-сайте Codeigniter
class Cron extends Frontend_Controller { public function get_google_page_rank() { require_once (APPPATH . 'libraries/SEOstats/bootstrap.php'); try { $url = 'http://www.google.com/'; // Get the Google PageRank for the given URL. $pagerank = \SEOstats\Services\Google::getPageRank($url); echo "The current Google PageRank for {$url} is {$pagerank}." . PHP_EOL; } catch(\Exception $e) { echo 'Caught SEOstatsException: ' . $e->getMessage(); } } public function get_alexa_page_rank() { require_once (APPPATH . 'libraries/SEOstats/bootstrap.php'); //use \SEOstats\Services\Alexa as Alexa; try { $url = 'https://www.google.com/'; // Create a new SEOstats instance. $seostats = new \SEOstats\SEOstats; // Bind the URL to the current SEOstats instance. if ($seostats->setUrl($url)) { /** * Print HTML code for the 'daily traffic trend'-graph. */ echo \SEOstats\Services\Alexa::getTrafficGraph(1); /** * Print HTML code for the 'daily pageviews (percent)'-graph. */ echo \SEOstats\Services\Alexa::getTrafficGraph(2); /** * Print HTML code for the 'daily pageviews per user'-graph. */ echo \SEOstats\Services\Alexa::getTrafficGraph(3); /** * Print HTML code for the 'time on site (in minutes)'-graph. */ echo \SEOstats\Services\Alexa::getTrafficGraph(4); /** * Print HTML code for the 'bounce rate (percent)'-graph. */ echo \SEOstats\Services\Alexa::getTrafficGraph(5); /** * Print HTML code for the 'search visits'-graph, using * specific graph dimensions of 320*240 px. */ echo \SEOstats\Services\Alexa::getTrafficGraph(6, false, 320, 240); } } catch(\Exception $e) { echo 'Caught SEOstatsException: ' . $e->getMessage(); } } }
Надеюсь это поможет
PS: Скопируйте папку SEOstats в папку приложений / библиотек