【jQuery】アラートを一回だけ出す
これで↓「青年」をクリックすると「青年」「ある青年の主張」とアラートが二度出てしまう。
-------------------------------------------------
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(document).on("click", "span", function() {
var get_txt = $(this).text();
alert(get_txt);
});
});
</script>
</head>
<body>
<span>ある<span>青年</span>の主張</span>
</body>
</html>
-------------------------------------------------
「青年」をクリックすると「青年」だけ、その他の文字列をクリックすると「ある青年の主張」というアラートをそれぞれ一度だけアラートするには。
方法1
バブリングを止める
-------------------------------------------------
<script type="text/javascript">
$(document).ready(function(){
$(document).on("click", "span", function(e) {
var get_txt = $(this).text();
alert(get_txt);
e.stopPropagation(e);
});
});
</script>
-------------------------------------------------
stopPropagation で親要素へのイベントの伝播を止めている
方法2
event.target を使う
-------------------------------------------------
<script type="text/javascript">
jQuery(document).on('click', function (event) {
var target = event.target;
if (target.tagName === 'SPAN') {
alert(target.textContent);
}
});
</script>
-------------------------------------------------
event.targetは、イベントバブルのイベントを開始したDOM要素を返すプロパティ。
カテゴリー:javascript, JQUERY
さくらVPS に PHP をインストールしたときにPHPセッションファイルの保存先と保存先の指定方法について調べたときの覚書
セッションファイルの保存場所は、 php.ini の session.save_path ディレクティブで指定できる。しかしデフォルトではコメントアウトになっていた。
その状態で phpinfo() を実行すると、 session.save_path の右カラムは no value になっている。

ターミナルから phpinfo を見る場合
-------------------------------------------------
cat /etc/php.ini | grep session.save_path
-------------------------------------------------
実際のセッションファイルは左カラムに記載されているパスにある。
セッションファイルのあるパス
-------------------------------------------------
/var/lib/php/session
-------------------------------------------------
で、このパス(/var/lib/php/session)はどこで設定しているのかというと、php.conf ファイルになる。
-------------------------------------------------
cat /etc/httpd/conf.d/php.conf
-------------------------------------------------
php.conf 内の記述
-------------------------------------------------
php_value session.save_path "/var/lib/php/session"
-------------------------------------------------
セッションファイルの保存先を変更したいなら、php.ini の session.save_path のコメントアウトを外して有効にすればいい。
変更前
-------------------------------------------------
;session.save_path = "/tmp"
-------------------------------------------------
変更後
-------------------------------------------------
session.save_path = "希望の保存先パス"
-------------------------------------------------
カテゴリー:CentOS, PHP, さくらインターネット
さくらVPSで外部ホストからmysqlに接続するには、接続を許可するユーザーを作ればいい。
参考サイト
MySQLに外部ホストから接続できるように設定する
接続を許可するユーザーを作るSQL
-------------------------------------------------
grant all privileges on 接続を許可するDB名.* to new_user_name@"接続元のホスト" identified by 'password' with grant option;
-------------------------------------------------
grant → 付与。許諾する。mysqlで権限を付与する命令。
all privileges → 全ての権限を与える。
privileges → プリビレッジ。権限の意。
カテゴリー:mysql, unix, さくらインターネット
さくらVPSにphp-mecabを入れたときの覚書手順
1.mecab を入れる
2.php-mecab を入れる
参考にしたサイト
phpでmecab
手順は参考サイトどおり。自分なりの捕捉を入れた。
ソースコードをインストールする場所に移動
-------------------------------------------------
cd /usr/local/src/
-------------------------------------------------
ダウンロードと解凍
-------------------------------------------------
wget http://mecab.googlecode.com/files/mecab-0.996.tar.gz
tar xvf mecab-0.996.tar.gz
-------------------------------------------------
解凍したディレクトリに移動
-------------------------------------------------
cd mecab-0.996
-------------------------------------------------
configure で Makefile をつくる
-------------------------------------------------
sudo ./configure --enable-utf8-only
-------------------------------------------------
※「configure」というシェルスクリプトを実行することで、ソースファイルをコンパイルする前に、インストール対象となるシステム特有の機能/情報をチェックし、チェック状況を記述したMakefileが作成される。
コンパイルとインストール
-------------------------------------------------
sudo make
sudo make install
-------------------------------------------------
この時点で mecab を実行すると 辞書がないエラーが出る
-------------------------------------------------
# mecab
param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc
-------------------------------------------------
バージョン確認だけならエラーは出ない
-------------------------------------------------
# mecab -v
mecab of 0.996
-------------------------------------------------
ipa辞書のインストール
ipa辞書のダウンロード先をつくる
-------------------------------------------------
cd /usr/local/src/mecab-0.996/
mkdir library
-------------------------------------------------
ダウンロードして ipa辞書を解凍
--------------------------------------------------
tar xvf mecab-ipadic-2.7.0-20070801.tar.gz
--------------------------------------------------
configure で Makefile をつくる
--------------------------------------------------
./configure --with-charset=utf8
--------------------------------------------------
コンパイルとインストール
-------------------------------------------------
sudo make
sudo make install
-------------------------------------------------
動作確認する
-------------------------------------------------
mecab
すもももももももものうち
-------------------------------------------------
任意。
辞書「mecab-ipadic-neologd」のインストール
(ipa 辞書を先にインストールしておかないと効果は薄い?要確認)
-------------------------------------------------
cd /usr/local/src/mecab-0.996/
mkdir library
cd /usr/local/src/mecab-0.996/library
git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
cd /usr/local/src/mecab-0.996/library/mecab-ipadic-neologd/
./bin/install-mecab-ipadic-neologd -n
-------------------------------------------------
動作確認が終了したら続いて、php-mecab のインストール
-------------------------------------------------
cd /usr/local/src/
wget https://github.com/rsky/php-mecab/archive/master.zip
unzip master.zip
cd php-mecab-master/mecab
phpize
(sudo ./configure
↑だとエラーが出た、configure: error: mecab-config not found)
sudo ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
sudo make
sudo make install
-------------------------------------------------
./configure の途中で re2c が無いみたいなエラーが出たのでインストールする
re2c をインストール
-------------------------------------------------
wget http://jaist.dl.sourceforge.net/project/re2c/re2c/0.13.7.5/re2c-0.13.7.5.tar.gz
tar zxvf re2c-0.13.6.tar.gz
cd re2c-0.13.6
./configure
make
make install
-------------------------------------------------
再び./configure からやり直し
-------------------------------------------------
sudo ./configure
sudo ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
sudo make
sudo make install
-------------------------------------------------
シンボリックリンクの作成
-------------------------------------------------
sudo ln -s /usr/lib64/php/modules/mecab.so /etc/php.d
-------------------------------------------------
php.iniの編集
-------------------------------------------------
vim /etc/php.ini
-------------------------------------------------
/etc/php.ini
-------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; ... or under UNIX:
;
; extension=msql.so
;
; ... or with a path:
;
; extension=/path/to/extension/msql.so
;
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.
;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;
;php-mecab を動かす記述
extension=mecab.so
;mecab-php の辞書のパス
mecab.default_dicdir="/usr/local/lib/mecab/dic/mecab-ipadic-neologd"
-------------------------------------------------
apacheの再起動
-------------------------------------------------
service httpd restart
-------------------------------------------------
動作確認
-------------------------------------------------
php -r 'phpinfo();' | grep 'mecab' -i
-------------------------------------------------
以下のようになっていれば問題ない。
-------------------------------------------------
mecab
MeCab Support => enabled
MeCab Library => 0.996 => 0.996
mecab.default_dicdir => no value => no value
mecab.default_rcfile => no value => no value
mecab.default_userdic => no value => no value
-------------------------------------------------
test.php
辞書の読み込みをしてないとエラーになる
-------------------------------------------------
<?php
$str = 'この焼肉は焼きにくい';
$mecab = new Mecab();
$nodes = $mecab->parseToNode($str);
foreach ($nodes as $n)
{
echo $n->getSurface() . "
";
echo $n->getFeature() . "
";
}
?>
-------------------------------------------------
使用する辞書を PHP で指定する場合
-------------------------------------------------
$options = array('-d', '/usr/local/lib/mecab/dic/mecab-ipadic-neologd');
$mecab = new MeCab_Tagger($options);
-------------------------------------------------
カテゴリー:CentOS, mecab, PHP, unix