個人的なまとめ。

てきとーに何か書きます。

hetemlでPHP7.1とMySQL5.6の連携

ヘテムルの公式サイトに上がっている方法では,PHPMySQLの連携が出来なかった.
heteml.jp

公式サイトの方法では,PHPのバージョンが4または5の時のみ有効で,PHP7の場合では別の方法を使用する必要があります.

というか,mysql_connect(PHP: mysql_connect - Manual)自体があまり推奨じゃなくなってきているので,PHP5以上の場合は下記の方法に変更した方が無難です.

続きを読む

PHPで配列を連想配列に入れる

例えば、下記のような要素を持つ配列があるとする。

$name[5] = {"Taro", "Jiro", "Saburo", "Shiro", "Goro"};
$hegith[5] = {"150", "170","180", "140", "175"};

この配列を連想配列に使用したい場合は、

for($i = 0; $i < count($name); $i++){
  $person[$i] = array(
                "name" => "{$name[$i]}",
                "height" => "{$height[$i]}"
                 );
}

という感じに書けば良い。

[追記] ファイル更新監視用ライブラリについてのメモ

ファイル変更監視用のライブラリについてのメモ

watchdog(watchmedo)は,ローカルのファイルの変更を検知するには十分
しかし,NFSへの対応はしていないような気がする.
ただ,これはログが非常に見やすいので,わかりやすい.

表示例:

kosuke@~/Desktop : watchmedo log --recursive --patterns "*.txt;*.png" ./
on_created(self=<watchdog.tricks.LoggerTrick object at 0x7f424aaea208>, event=<FileCreatedEvent: src_path='./test.txt'>)
on_modified(self=<watchdog.tricks.LoggerTrick object at 0x7f424aaea208>, event=<FileModifiedEvent: src_path='./test.txt'>)


pyinotifyは,ファイルの変更だけではなく,ターミナル上でcd /Desktopとかした時のコマンドでさえも検知してくれる.
しかし,1つのファイルを作成した場合だと,それだけで30行ぐらいのログが出てくるのが難点.
ログに関しても,今回作成したファイルだけではなく,既にそのディレクトリにあるファイルまでも表示をしているようで,非常に見づらい.
また,これもNFSに対応していない.
表示例:

kosuke@~/Desktop : python3 -m pyinotify -v ~/Desktop/
[2017-12-27 02:39:12,829 pyinotify DEBUG] Event queue size: 128
[2017-12-27 02:39:12,829 pyinotify DEBUG] <_RawEvent cookie=0 mask=0x100 name=test.txt wd=1 >
[2017-12-27 02:39:12,830 pyinotify DEBUG] <_RawEvent cookie=0 mask=0x20 name=test.txt wd=1 >
[2017-12-27 02:39:12,830 pyinotify DEBUG] <_RawEvent cookie=0 mask=0x4 name=test.txt wd=1 >
[2017-12-27 02:39:12,830 pyinotify DEBUG] <_RawEvent cookie=0 mask=0x8 name=test.txt wd=1 >
<Event dir=False mask=0x100 maskname=IN_CREATE name=test.txt path=/home/kosuke/Desktop pathname=/home/kosuke/Desktop/test.txt wd=1 >
<Event dir=False mask=0x20 maskname=IN_OPEN name=test.txt path=/home/kosuke/Desktop pathname=/home/kosuke/Desktop/test.txt wd=1 >
<Event dir=False mask=0x4 maskname=IN_ATTRIB name=test.txt path=/home/kosuke/Desktop pathname=/home/kosuke/Desktop/test.txt wd=1 >
<Event dir=False mask=0x8 maskname=IN_CLOSE_WRITE name=test.txt path=/home/kosuke/Desktop pathname=/home/kosuke/Desktop/test.txt wd=1 >


MacFSEventsの場合は,gitを見ると,build failingとなっていたので試していない.


他に,ファイル更新監視用ライブラリがあれば試して追加する.


 ----追記--- 2018/02/19 ----
PythonNFSのファイル変更を検知するには,

import os
import time

PATH = '/mnt/nfs/AAA'

while True:
    if os.path.exists(PATH):
        break
    time.sleep(5)

と,してやればいいです.

/mnt/nfs内にAAAというファイルが作成されるまで,5秒ごとにファイルのチェックを行っています.
もし,ファイルが検知されたらbreakする,という流れです.

PythonでYouTubeから動画をDLしたい

研究に使用する為にYouTubeから動画をDLしたい。
特にPythonであれば簡単にできるということが分かったので、メモしておこうと思う。

※2018/06/05時点での最新バージョン8.0.2でも動作確認済み

著作権には気を付けて使用してください。

sudo pip3 install pytube

pytube : For Downloding YouTube Videos

続きを読む