var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;// ex) 100(px)
スクロール位置を取得する
2
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;// ex) 100(px)
以下のように、Zend_Controller_Router_Route_Regexを使用する。
$front->getRouter()->addRoute( 'page', new Zend_Controller_Router_Route_Regex( 'page_(\d+)\.html', array( 'controller' => 'Index', 'action' => 'page' ), array( 1 => 'pageid' ) ) );
Actionからは以下のコードでマッチした部分を参照できる。
$this->_getParam('pageid');
但し、URLヘルパーやこのクラスのメソッドを使用する場合は第4引数が必要となる。
$front->getRouter()->addRoute( 'page', new Zend_Controller_Router_Route_Regex( 'page_(\d+)\.html', array( 'controller' => 'Index', 'action' => 'page' ), array( 1 => 'pageid' ), 'page_%d.html' ) );
/home/user/directory配下のファイルの所有者を全てftp_userにする。
chown -R ftp_user /home/user/directory
var_dump($_SERVER['SERVER_NAME']); //string(16) "sample.org"
マルチドメイン、シングルホスティングの時には使いそうだ。
インストール直後は何もパスワードが設定されていないので注意すること!
SET PASSWORD FOR root@localhost=PASSWORD('password');
vi /etc/ssh/sshd_config
以下のオプションをnoにしてあげる。
PermitRootLogin no
その前にポート3306は初期状態では閉じられているので開ける。
iptables -I INPUT -j ACCEPT -p tcp -s x.x.x.x --dport 3306
IPはクライアント側のIP。このIPからだけ接続できる。192.168.1.%のようにワイルドカードも使える。
GRANT ALL PRIVILEGES ON *.* to user@'192.168.1.1' IDENTIFIED BY 'password';
vi /etc/vsftpd/vsftpd.conf
chroot_list_enableとchroot_list_fileの記述を以下のように修正する。
chroot_list_enable=YES chroot_list_file=/etc/vsftpdd.chroot_list
vi /etc/vsftpd/vsftpd.conf
ファイルに制限したいユーザ名を書く。
ftp_user
再起動を忘れずに。
/etc/init.d/vsftpd restart
ftp_userがホームディレクトリより上にいけなくなる。
コマンドラインにおけるオプションの設定・取得。|の後がエイリアス名、=の後の文字列で型を指定できる。
try { $options = new Zend_Console_Getopt( array( 'help|h' => 'help.', 'zfm|m=s' => 'module', 'zfc|c=s' => 'controller', 'zfa|a=s' => 'action' ) ); $options->parse(); } catch(Zend_Console_Getopt_Exception $e){ die($e->getMessage() . ' : ' . $e->getUsageMessage()); }
Zend_Controller_Request_Simpleがポイント。アクション、コントローラ、モジュールを引数に指定してリクエストオブジェクトを取得する。
if(isset($options->zfa) && isset($options->zfc) && isset($options->zfm)){ $request = new Zend_Controller_Request_Simple( $options->zfa, $options->zfc, $options->zfm ); $front = Zend_Controller_Front::getInstance(); $front->setRequest($request); $front->setRouter(new Custom_Controller_Router_Cli()); $front->setResponse(new Zend_Controller_Response_Cli()); $front->throwExceptions(true); $front->addModuleDirectory(dirname(__FILE__) . '/application/modules'); $front->dispatch(); }
Custom_Controller_Router_Cliはこんな感じ。
<?php require_once 'Zend/Controller/Router/Interface.php'; require_once 'Zend/Controller/Router/Abstract.php'; class Custom_Controller_Router_Cli extends Zend_Controller_Router_Abstract implements Zend_Controller_Router_Interface { public function assemble($userParams, $name = null, $reset = false, $encode = true) {} public function route(Zend_Controller_Request_Abstract $dispatcher) {} }
基本的には以上で実行できるが
アクセスコントロールを行っている場合は上述のコードよりも先にアクセスできるようにしなければならない。以下は一例。
$sesion = new Zend_Session_Namespace('global'); $sesion->userLevel = 'admin'; $acl = new Zend_Acl(); $acl->addRole(new Zend_Acl_Role('guest')); $acl->addRole(new Zend_Acl_Role('admin'), 'guest'); $acl->add(new Zend_Acl_Resource('guestPage')); $acl->add(new Zend_Acl_Resource('adminPage')); $acl->allow('guest'); $acl->allow('admin'); $acl->deny('guest', 'adminPage'); $acl->allow('admin', 'adminPage'); Zend_Registry::set('acl', $acl);
基本的には一般ユーザが閲覧(実行)できる場所に、このファイルを配置するのは良くない。
OS名
echo PHP_OS;
パスを区切る文字
echo PATH_SEPARATOR;// linux => ';', win => ':'
ディレクトリを区切る文字
echo DIRECTORY_SEPARATOR;// linux => '/', win => '\'