php 批量查询搜狗sogou代码分享

php
批量查询搜狗sogou的rank,非常不错,主要是使用了php的file_get_contents()方法。

本文实例讲述了Zend
Framework教程之视图组件Zend_View用法。分享给大家供大家参考,具体如下:

查看系统版本命令

[root@VM_176_162_centos ~]# cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core)

2){
    echo $v."
n";
  }else{
    continue;  
  }
}

Zend_View是Zend Framework的视图组件,MVC中的视图层。
Zend_View也是应用的直接对用户展示的页面。这里介绍一下Zend_View的实现类,以及如何和Controller结合在一起的。

1.若之前安装过其他版本PHP,先删除

# yum remove php*

以上所述就是本文的全部内容了,希望大家能够喜欢。

View的实现

2.rpm安装PHP7相应的yum源

CentOS/RHEL 7.x:
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
CentOS/RHEL 6.x:
# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

Zend_View的实现主要是通过如下目录的类实现:

3.yum安装PHP7

# yum install php70w

root@coder-671T-M:/library/Zend# tree | grep View.php│ └── View/├──
View.php

4.安装其他插件(选装)

这一步如果闲麻烦的话直接在上一步执行下面这条命令即可(提示有冲突的话按照提示过滤冲突即可)

意为安装全部插件```

php70w
php70w-opcache
php70w-bcmath
php70w-cli
php70w-common
php70w-dba
php70w-devel
php70w-embedded
php70w-enchant
php70w-fpm
php70w-gd
php70w-imap
php70w-interbase
php70w-intl
php70w-ldap
php70w-mbstring
php70w-mcrypt
php70w-mysql
php70w-mysqlnd
php70w-odbc
php70w-opcache
php70w-pdo
php70w-pdo_dblib
php70w-pear
php70w-pecl-apcu
php70w-pecl-imagick
php70w-pecl-xdebug
php70w-pgsql
php70w-phpdbg
php70w-process
php70w-pspell
php70w-recode
php70w-snmp
php70w-soap
php70w-tidy
php70w-xml
php70w-xmlrpc“`

root@coder-671T-M:/library/Zend/View# tree.├── Abstract.php├──
Exception.php├── Helper│ ├── Abstract.php│ ├── Action.php│ ├──
BaseUrl.php│ ├── Currency.php│ ├── Cycle.php│ ├── DeclareVars.php│ ├──
Doctype.php│ ├── Fieldset.php│ ├── FormButton.php│ ├── FormCheckbox.php│
├── FormElement.php│ ├── FormErrors.php│ ├── FormFile.php│ ├──
FormHidden.php│ ├── FormImage.php│ ├── FormLabel.php│ ├──
FormMultiCheckbox.php│ ├── FormNote.php│ ├── FormPassword.php│ ├──
Form.php│ ├── FormRadio.php│ ├── FormReset.php│ ├── FormSelect.php│ ├──
FormSubmit.php│ ├── FormTextarea.php│ ├── FormText.php│ ├──
Gravatar.php│ ├── HeadLink.php│ ├── HeadMeta.php│ ├── HeadScript.php│
├── HeadStyle.php│ ├── HeadTitle.php│ ├── HtmlElement.php│ ├──
HtmlFlash.php│ ├── HtmlList.php│ ├── HtmlObject.php│ ├── HtmlPage.php│
├── HtmlQuicktime.php│ ├── InlineScript.php│ ├── Interface.php│ ├──
Json.php│ ├── Layout.php│ ├── Navigation│ │ ├── Breadcrumbs.php│ │ ├──
HelperAbstract.php│ │ ├── Helper.php│ │ ├── Links.php│ │ ├── Menu.php│ │
└── Sitemap.php│ ├── Navigation.php│ ├── PaginationControl.php│ ├──
Partial│ │ └── Exception.php│ ├── PartialLoop.php│ ├── Partial.php│ ├──
Placeholder│ │ ├── Container│ │ │ ├── Abstract.php│ │ │ ├──
Exception.php│ │ │ └── Standalone.php│ │ ├── Container.php│ │ ├──
Registry│ │ │ └── Exception.php│ │ └── Registry.php│ ├──
Placeholder.php│ ├── RenderToPlaceholder.php│ ├── ServerUrl.php│ ├──
TinySrc.php│ ├── Translate.php│ ├── Url.php│ └── UserAgent.php├──
Interface.php└── Stream.php

5. 安装完毕,测试是否安装成功

# php -v

6 directories, 70 files

6.要运行PHP网页,要启动php-fpm解释器

# service php-fpm start

Zend_View和Zend_Controller的整合

主要在Zend_Controller_Action类中,

/** * Initialize View object * * Initializes {@link $view} if not otherwise a Zend_View_Interface. * * If {@link $view} is not otherwise set, instantiates a new Zend_View * object, using the 'views' subdirectory at the same level as the * controller directory for the current module as the base directory. * It uses this to set the following: * - script path = views/scripts/ * - helper path = views/helpers/ * - filter path = views/filters/ * * @return Zend_View_Interface * @throws Zend_Controller_Exception if base view directory does not exist */ public function initView() { if (!$this->getInvokeArg && $this->_helper->hasHelper { return $this->view; } require_once 'Zend/View/Interface.php'; if  && ($this->view instanceof Zend_View_Interface)) { return $this->view; } $request = $this->getRequest(); $module = $request->getModuleName(); $dirs = $this->getFrontController()->getControllerDirectory || !isset { $module = $this->getFrontController->getDefaultModule(); } $baseDir = dirname . DIRECTORY_SEPARATOR . 'views'; if (!file_exists || !is_dir { require_once 'Zend/Controller/Exception.php'; throw new Zend_Controller_Exception('Missing base view directory ; } require_once 'Zend/View.php'; $this->view = new Zend_View(array('basePath' => $baseDir)); return $this->view; } /** * Render a view * * Renders a view. By default, views are found in the view script path as * /.phtml. You may change the script suffix by * resetting {@link $viewSuffix}. You may omit the controller directory * prefix by specifying boolean true for $noController. * * By default, the rendered contents are appended to the response. You may * specify the named body content segment to set by specifying a $name. * * @see Zend_Controller_Response_Abstract::appendBody() * @param string|null $action Defaults to action registered in request object * @param string|null $name Response object named path segment to use; defaults to null * @param bool $noController Defaults to false; i.e. use controller name as subdir in which to search for view script * @return void */ public function render($action = null, $name = null, $noController = false) { if (!$this->getInvokeArg && $this->_helper->hasHelper { return $this->_helper->viewRenderer->render($action, $name, $noController); } $view = $this->initView(); $script = $this->getViewScript($action, $noController); $this->getResponse()->appendBody( $view->render; } /** * Render a given view script * * Similar to {@link render()}, this method renders a view script. Unlike render(), * however, it does not autodetermine the view script via {@link getViewScript()}, * but instead renders the script passed to it. Use this if you know the * exact view script name and path you wish to use, or if using paths that do not * conform to the spec defined with getViewScript(). * * By default, the rendered contents are appended to the response. You may * specify the named body content segment to set by specifying a $name. * * @param string $script * @param string $name * @return void */ public function renderScript($script, $name = null) { if (!$this->getInvokeArg && $this->_helper->hasHelper { return $this->_helper->viewRenderer->renderScript; } $view = $this->initView(); $this->getResponse()->appendBody( $view->render; }

Zend_View.php类

_useViewStream =  ini_get ? false : true; if ($this->_useViewStream) { if (!in_array('zend.view', stream_get_wrappers { require_once 'Zend/View/Stream.php'; stream_wrapper_register('zend.view', 'Zend_View_Stream'); } } if (array_key_exists('useStreamWrapper', $config)) { $this->setUseStreamWrapper($config['useStreamWrapper']); } parent::__construct; } /** * Set flag indicating if stream wrapper should be used if short_open_tag is off * * @param bool $flag * @return Zend_View */ public function setUseStreamWrapper { $this->_useStreamWrapper =  $flag; return $this; } /** * Should the stream wrapper be used if short_open_tag is off? * * @return bool */ public function useStreamWrapper() { return $this->_useStreamWrapper; } /** * Includes the view script in a scope with only public $this variables. * * @param string The view script to execute. */ protected function _run() { if ($this->_useViewStream && $this->useStreamWrapper { include 'zend.view://' . func_get_arg; } else { include func_get_arg; } }}

默认情况会自动通过Controller会通过render方法来实例化Zend_View,
然后rener到对应的视图文件中。当然可以自己实例化Zend_View,然后使用。

action默认指向的文件是和action的名称相同,如果要指定视图文件,可以通过$this->render的相关方法指定.也可以通过addScriptPath和setScriptPath设置视图文件的目录。

$view = new Zend_View();$view->addScriptPath;$view->addScriptPath;// 如果调用 $view->render, Zend_View 将// 首先查找 "/www/app/myviews/example.php", 找不到再找"/www/app/viewscomm/example.php", 如果还找不到,最后查找当前目录下/的"example.php".

Zend_View的常用方法

public function __construct

array, 'encoding' => array;

escape、encoding、basePath、basePathPrefix、scriptPath、helperPath、
helperPathPrefix、filterPath、filterPathPrefix、filterpublic function
getEngine() Return the template engine object

public function init()初始化函数

/*** Given a base path, sets the script, helper, and filter paths relative to it** Assumes a directory structure of:* * basePath/* scripts/* helpers/* filters/* ** @param string $path* @param string $prefix Prefix to use for helper and filter paths* @return Zend_View_Abstract*/public function setBasePath($path, $classPrefix = 'Zend_View')/*** Given a base path, add script, helper, and filter paths relative to it** Assumes a directory structure of:* * basePath/* scripts/* helpers/* filters/* ** @param string $path* @param string $prefix Prefix to use for helper and filter paths* @return Zend_View_Abstract*/public function addBasePath($path, $classPrefix = 'Zend_View')public function addScriptPathAdds to the stack of view script paths in LIFO order.public function setScriptPath Resets the stack of view script paths.public function getScriptPathReturn full path to a view script specified by $namepublic function getScriptPaths()Returns an array of all currently set script pathspublic function addHelperPath($path, $classPrefix = 'Zend_View_Helper_')Adds to the stack of helper paths in LIFO order.public function setHelperPath($path, $classPrefix = 'Zend_View_Helper_')Resets the stack of helper paths.public function getHelperPath Get full path to a helper class file specified by $namepublic function getHelperPaths()Returns an array of all currently set helper pathspublic function getHelper Get a helper by namepublic function getHelpers()Get array of all active helperspublic function getAllPaths() Return associative array of path types => pathspublic function setEscape/*** Assigns variables to the view script via differing strategies.** Zend_View::assign assigns a variable called 'name'* with the corresponding $value.** Zend_View::assign assigns the array keys as variable* names (with the corresponding array values).** @see __set()* @param string|array The assignment strategy to use.* @param mixed  If assigning a named variable, use this* as the value.* @return Zend_View_Abstract Fluent interface* @throws Zend_View_Exception if $spec is neither a string nor an array,* or if an attempt to set a private or protected member is detected*/public function assign

在controller的action可以通过assign传递参数到视图脚本。

$this->view->assign;$this->view->assign;$this->view->assign;

$this->view->roles=$roles;$this->view->a=$a;public function render Processes a view script and returns the output.public function escape:Escapes a value for output in a view script.public function setEncoding Set encoding to use with htmlentities() and htmlspecialchars()public function getEncoding() :Return current escape encoding

视图脚本文件中的常见用法

$this->roles

使用一些常见的助手方法:

$this->baseUrl;$this->paginationControl

在bootstrap初始化view或者controller的init文件中

/** * Initialize the common view helper */protected function _initViewHelper(){ $boot=$this->bootstrap; $view = $boot->getResource; $view->setHelperPath('Sql/View/Helper', 'Sql_View_Helper');}

/** * * @return void */public function listAction(){ $this->view->assign;}

更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend
FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

发表评论

电子邮件地址不会被公开。 必填项已用*标注