Below are the codes from http://d.hatena.ne.jp/dix3/20081002/1222899116 , and the codes work well.
This is an example of using snoopy in codeigniter.
Q1. Am I saying correctly that I cannot use,
$this -> load -> library('snoopy')
since Snoopy.php does not create an object. And the example below is a way to do this? If so, can you explain / send me the textbook or explain how to do this in detail?
if ( ! class_exists('Snoopy')) { require_once(APPPATH.'libraries/Snoopy'.EXT); }
Q2. Why is the author using
$to_specialchars=true
Is this necessary for this?
Q3. Could you explain APPPATH and EXT.
APPPATH.'libraries/Snoopy'.EXT
I checked it in php.net, but I could not find it. EXT should be an extension, but can it be used anywhere?
Thanks in advance.
I have snoopy in /library/Snoopy.php application
I have an application /library/Snoopy.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Scraping{ var $c; function Scraping(){ if ( ! class_exists('Snoopy')) { require_once(APPPATH.'libraries/Snoopy'.EXT); } $this -> c = new Snoopy(); } function getWebHtml($url="",$to_specialchars=true){ $this ->c -> fetch( $url ); $str = mb_convert_encoding( (string) $this -> c -> results,"UTF-8","auto"); return ($to_specialchars) ? htmlspecialchars($str , ENT_QUOTES , "UTF-8" ) : $str ; } function getWebText($url="",$to_specialchars=true){ $this -> c -> fetchtext( $url ); $str = mb_convert_encoding( (string) $this -> c -> results,"UTF-8","auto"); return ($to_specialchars) ? htmlspecialchars($str , ENT_QUOTES , "UTF-8" ) : $str ; } function getWebLinks($url=""){ $this -> c -> fetchlinks( $url ); return (array) $this-> c -> results ; } function getWebLinksText($url="",$delimiter="<br>"){ $arr = $this-> getWebLinks($url) ; $ret =""; foreach($arr as $k => $v){ $ret .= $v . $delimiter ; } return $ret; } }
I have a controller application / controller / mytasklist.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Mytasklist extends Controller { function Mytasklist() { parent :: Controller(); $this -> load -> helper( 'url' ); } function index() { $data = ""; $this -> _SetTpl( $data ); } function _SetTpl( $data ) { $this -> load -> library("scraping"); $data["scraping"]["text"] = $this-> scraping -> getWebText("http://www.example.com/"); $data["scraping"]["html"] = $this-> scraping -> getWebHtml("http://www.example.com/"); $data["scraping"]["link"] = $this-> scraping -> getWebLinksText("http://www.example.com/","\n"); $tpl["page_title"] = "Welcome"; $tpl["main_content"] = $this -> load -> view( 'tasklist_view', $data , true ); $this -> load -> view( 'base_view', $tpl ); } }
And I have a view, application / view / base_view.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <meta name="keywords" content="keyword here" /> <meta name="description" content="description here" /> <title><?php if(isset($page_title)){echo $page_title ;}?></title> <?php if(isset($xajax_js)){echo $xajax_js ;}?> <link href="http://127.0.0.1/ci_day4/css/mystyle.css" rel="stylesheet" type="text/css"/> </head> <body> <div id="container"> <div id="rightblock"> <div id="content"> <?=$main_content?> </div> </div> </div> </body> </html>