小枝から幹をめざして

今は小枝しか拾えてないけどいつか幹にたどり着くんだ。個人的な勉強の忘備録PHP,MySQL,javascript

【自分用】URLを管理するシステムを作る②

bakeしてたらデータベース設定で
Persistent Connection? (y/n)
というのが出てきた。
http://lab.unicast.ne.jp/2011/09/24/cakephp-%E3%81%AE-database-php-%E3%81%AE-persistent-%E8%A8%AD%E5%AE%9A-%E3%81%A8-mysql_pconnect-%E3%81%AE%E9%96%A2%E4%BF%82/
http://itdoc.hitachi.co.jp/manuals/link/cosmi_v0870/APKW/EU050212.HTM
nがデフォルトだけどyesにしてみる。
後で調べることにする。

Controllerのaddを改変する。
モデル名->create() って何だったっけ…
http://c-brains.jp/blog/wsg/13/12/12-162507.php
あぁ、そうだわ。これやらないとinsertで上書きされるんだわ。

【流れ】
URLを改行入りで複数貼り付けてPOST
POSTデータを配列に格納
foreacheで
→①ハッシュ化
→②ハッシュの重複確認処理
→③タイトル取得
→saveをする


<?php
$sha512 = hash(sha512, 'hoge hoge');
//128byteのハッシュ値が帰ってくる
?>


改行問題ではまる。

複数のURLを一度にPOSTしたい。
最初から配列にしようとしたけどフォーム側の用意がされてないとできない。
https://teratail.com/questions/1855
http://oshiete.goo.ne.jp/qa/2048161.html
http://www.atmarkit.co.jp/ait/articles/1407/02/news038_2.html

FirebugでPOSTの中身をみてみると
%0D%0A
でURLがつながれていた。

http://www.happy2-island.com/access/gogo03/capter90405.shtml
>GET・POSTを問わず、HTTPサーバに何らかの情報を送信する場合、A~Z a~z 0~9 * - . _ 以外の文字は%xxの書式に変換しなくてはなりません
つまりこれは改行コードの<CR><LF>であり \n\r と同一
16進数に変えないとネット上で送受信ができない

http://www.tohoho-web.com/wwwxx011.htm
%0D%0A 16進数(POST・GETするときに使用)
<CR><LF> ASCIIなどの文字コードで既定された制御文字
\n\r プログラミングにおける改行コード
(どういう場面で使うかはあとでまとめます)
http://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89
詳しくはwikipedia参照

あとはstr_replaceなどで置き換えるもよし。
explodeで分割するもよし。
"%0D%0A"や"0D0A"や"CRLF"など試行錯誤したが、

explode("\r\n", $this->request->data['Url']['url']);

これで無事に分割できた。
PHP上では\r\nと書くもののようだ。

                    foreach ($urls as $value) {
                        echo $value +'</br>';
                    }

http://www.koikikukan.com/archives/2013/07/12-011111.php

あと文字化けについて
http://program.station.ez-net.jp/special/php/system/characterset.asp
https://www.softel.co.jp/blogs/tech/archives/99

これで0000000の列挙になってへこむ。
PHPの文字列結合は.だった。基本ができていない。
http://php.net/manual/ja/language.operators.string.php

 

普段Windows7Windows8で使っているのはASCII文字のようだ。
勝手にUTF8らへんだと勘違いしていた。

http://bg.pi-ppi.com/page/g01/000171.html

2015年4月27日14:48



【自分用】URLを管理するシステムを作る

MySQLの話。url文字列をtextのカラムに入れようとしたら
#1170 - BLOB/TEXT column 'url' used in key specification without a key length
というエラーが出た。
TEXT型カラムにUNIQUEキーは張れない
http://www.deftrash.com/blog/archives/2009/11/mysql_keylength.html

http://hamamuratakuo.blog61.fc2.com/blog-entry-963.html
このようにハッシュ値を格納した別カラムにUNIQUEキーを張れば良い。

ハッシュについて勉強。
http://d.hatena.ne.jp/ryster/20110615/p1
>パスワードとかをDBに生で保存するのはほんとやめましょう。
…すみません。

ハッシュの種類
http://sehermitage.web.fc2.com/crypto/digest.html

web上で様々な種類のハッシュ計算ができる
http://good-tool.net/webtool/wt11hash.php

なるべく見ないようにしていたvarcherのサイズ問題
varcher(x)のxはバイト数なのか文字数なのか…
http://togetter.com/li/54358
http://oshiete.goo.ne.jp/qa/1778566.html
ここを見ると半角文字(1バイト文字)と書いてある。あ、でもこれは2005年の質問か。

今はマルチバイト文字数が入るとどこかで読んだはず!
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1197858716
>MySQL5.0.3以降、varcharは文字数です
うん、やっぱりね。カラムに設定してある文字セットの文字数が入るのであって、バイト数は関係ないと。

今回はハッシュ値(1バイト文字)を入れたいのでvarcher(128)

http://kaworu.jpn.org/kaworu/2008-04-02-2.php
mhash?なんだそれ。

http://stackoverflow.com/questions/1996934/in-php-what-is-the-difference-between-hash-and-mhash
「気にするな。mhashはもはや時代遅れだ」
と書いてある気がするので、mhashでなくhashでやることにする。

<?php
$sha512 = hash(sha512, $url);
//128byteのハッシュ値が帰ってくる
?>

駄文、まだまとめてない

■「無いものは無い」と「無いものを出せ」は全然違う。

無いものを出せといい続けるとどうなるか
だんだん人間にとって重要な物を差し出すようになる。
「自分の感情」であり「家族の感情」であり「自分の時間」であり「家族との時間」である。
これらをすべて無視して労働力を提供し続けて、無理難題をかなえようとする。

世間はそれを「努力」や「意思の力」と呼ぶ。
実態は家族内のリソースを消費しているだけで、努力なんていうのは全くの幻想だ。


■極限まで困らないと頼れないのはおかしい■

どうしてもやめたいと言われたら金銭的に頼っている以上どうしようもない。
本当なら6月で辞めるなんて最悪の時期だし、
自営にして会社の目があるためそれすらできない。

→効率面でおかしい。
月2万で住居を提供するほうがずっと金銭的な負担は小さいはずだ。


■リソースを持たない者が「正しい判断をしよう」とする愚かさ■

いわゆる「下手の考え」というやつで、どう転んでも「だいだい間違っている」
それを自分の判断力のせいだと勘違いしてしまい自信喪失、他者不信、疑心暗鬼に陥る。

下手の考え休むに似たり。自分程度がいくら考えても無駄な努力である。
それよりリソースを増やすことを優先せよ。

実は筋トレと片付けだ。リソースを直接的に増やすことにつながる。
本を読み、世間から評価されている人間の言うことに素直に従うことだ。

windows7にubuntoとcentOSインストール

NEC デスクトップにVirtualBoxUbuntuを入れて
ThinkPad T500をWindows7とCentOS6.6のデュアルブートにすることに。

→(リンク)CentOS7初心者には敷居が高い?
http://linux-junkie.at.webry.info/201411/article_1.html

→CentOS6はここを参考にDVD1、DVD2をダウンロードしsum5でチェック
以前ダウンロードファイルが壊れていたのでIrvineを使う。
http://www.geocities.jp/deko394/irvine/irvine.htm
http://www.gigafree.net/internet/download/irvine.html
http://www.geocities.jp/seidy_seidy/bb/download.html

minimamは1枚ですむけど最小構成のインストール
http://pprog.blog.jp/archives/4380871.html
http://symfoware.blog68.fc2.com/blog-entry-1332.html

Windows7の「コントロールパネル」→「管理ツール」→「コンピュータの管理」から開き領域を右クリックして
新しいシンプルボリュームを作成
(空領域だとどうなるか後で確かめる)

ここを見ると未割り当て領域でもいいみたい。
インストール中にフォーマットするから??
http://ufuso.jp/wp/?p=14656

Linuxファイルシステムext3 だけどwindowsからのフォーマットだと
ext3がないのでexFATでフォーマット。
http://blog.livedoor.jp/hiroumauma/archives/930483.html
http://worklife-create.com/ntfs-fat32-exfa-hdd.html

VirtualBoxを4.2から4.3xに変更
するとUbuntuの32bitは出てくるのに64bitが出てこない
http://acball.hatenablog.com/entry/2013/11/05/205712
http://qiita.com/kmats@github/items/a2396aa5b6f397d447b8
http://blog.yoshikawa.64kb.net/2013/12/29/1229

FuelPHP windows7のxamppにインストールしたい・・・


jstreeのデータベースがやりたかったのでQuiita yumura shihoさんの
jsTreeの使い方を参考にした。

FuelPHPに組み込んでの利用」らしいので、せっかくだからFuelPHPを勉強してみる。

ためしにShihoYumuraさんのGitHubからまるっとダウンロードしたものを
xampp/htdocs内に突っ込む。

すると

「Interface 'Psr\Log\LoggerInterface' not found」

とエラーが出る。FuelPHPのエラーかな。
何かが見つからないらしい。
調べてみるとFuelPHPはComposerとかGitとかいるらしい。
CakePHPみたいにそのまま突っ込めばいいわけじゃないのね。


http://dev.classmethod.jp/server-side/framework/fuelphp002/
こちらを参考にxamppにFuelPHPをインストール。

FuelPHPをダウンロード
●zipを解凍して、xamppにfuelphpという名前で移動
●C:\xampp\apache\conf\extra\vhostsフォルダにfuelphp.confを以下のように作成する

<VirtualHost *:80>
    ServerName fuelphp.local
    DocumentRoot "C:\xampp\fuelphp\public"
    <Directory "C:\xampp\fuelphp\public">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

これはapacheのバーチャルホストの設定

●C:\Windows\System32\drivers\etcのhostsファイルに
127.0.0.1 fuelphp.local
を追加。

この状態でブラウザからfuelphp.localにアクセスすると
fuelphp.local/xampp
に飛ばされる。

飛ばされるのはhtdocs/index.phpが犯人。htdocs/xamppに飛ぶようにしていた。
このファイルをすべてコメントアウトしてみる。
すると真っ白。当たり前か。

というか、↑↑この作業は意味なし。
ドキュメントルートがC:\xampp\htdocsのままになっている。
C:\xampp\fuelphp\publicになってなきゃいけないのに・・・。


http://www.adminweb.jp/apache/virtual/index2.html
によると
apachehttpd.confで作成したhttpd-vhosts.confを読み込む作業をしなければいけない。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
と書いてある行を探して
Include conf/extra/vhosts/fuelphp.conf
に変更してapache再起動


jstreeのデータベースがやりたかったのでQuiita yumura shihoさんの
jsTreeの使い方を参考にした。

FuelPHPに組み込んでの利用」らしいので、せっかくだからFuelPHPを勉強してみる。

ためしにShihoYumuraさんのGitHubからまるっとダウンロードしたものを
xampp/htdocs内に突っ込む。

すると

「Interface 'Psr\Log\LoggerInterface' not found」

とエラーが出る。FuelPHPのエラーかな。
何かが見つからないらしい。
調べてみるとFuelPHPはComposerとかGitとかいるらしい。
CakePHPみたいにそのまま突っ込めばいいわけじゃないのね。


http://dev.classmethod.jp/server-side/framework/fuelphp002/
こちらを参考にxamppにFuelPHPをインストール。

FuelPHPをダウンロード
●zipを解凍して、xamppにfuelphpという名前で移動
●C:\xampp\apache\conf\extra\vhostsフォルダにfuelphp.confを以下のように作成する

<VirtualHost *:80>
    ServerName fuelphp.local
    DocumentRoot "C:\xampp\fuelphp\public"
    <Directory "C:\xampp\fuelphp\public">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

これはapacheのバーチャルホストの設定

●C:\Windows\System32\drivers\etcのhostsファイルに
127.0.0.1 fuelphp.local
を追加。

この状態でブラウザからfuelphp.localにアクセスすると
fuelphp.local/xampp
に飛ばされる。

飛ばされるのはhtdocs/index.phpが犯人。htdocs/xamppに飛ぶようにしていた。
このファイルをすべてコメントアウトしてみる。
すると真っ白。当たり前か。

というか、↑↑この作業は意味なし。
ドキュメントルートがC:\xampp\htdocsのままになっている。
C:\xampp\fuelphp\publicになってなきゃいけないのに・・・。


http://www.adminweb.jp/apache/virtual/index2.html
によると
apachehttpd.confで作成したhttpd-vhosts.confを読み込む作業をしなければいけない。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
と書いてある行を探して
Include conf/extra/vhosts/fuelphp.conf
に変更してapache再起動

http://www.fuelphp.local/にアクセスすると
サーバが見つかりませんでした
だめだこりゃ

javascriptのオブジェクトとnew関連

jstreeがV3になってxmlが使えなくなったっぽい。
新しいオプションを設定したいので、プラグインを作りたいんだけど、まだそこまで追いつけない。
基本的な部分でjavascriptのオブジェクトとnewについて調べた。

 

http://taiju.hatenablog.com/entry/20090706/1246840565
http://blog.livedoor.jp/dankogai/archives/51223538.html
http://blog.livedoor.jp/dankogai/archives/50958256.html
http://taiju.hatenablog.com/entry/20090612/1244765780
http://nanto.asablo.jp/blog/2005/10/24/118564
http://akioblog.com/2013/03/26/1170/
http://d.hatena.ne.jp/vividcode/20110514/1305359722
http://d.hatena.ne.jp/vividcode/20110218/1298057185
http://liosk.blog103.fc2.com/blog-entry-202.html
http://blog.tojiru.net/article/200776782.html
http://d.hatena.ne.jp/yuyakko/20100503/1272879683
http://zombiebook.seesaa.net/article/139377003.html

PHPエラーについて

PHP の「エラー処理ハンドラ」「シャットダウンハンドラ」「例外処理ハンドラ」の挙動 - Web/DB プログラミング徹底解説


PHPエラーにはレベルがある。
ユーザー定義のエラーハンドル関数を使ってハンドリングできる

ただし以下のエラー Fatal error (致命的エラー) はハンドリングできない。
エラー発生時点でスクリプトが停止処理されるため。

    E_ERROR
    E_PARSE
    E_CORE_ERROR
    E_CORE_WARNING
    E_COMPILE_ERROR
    E_COMPILE_WARNING

上記のような例ではスクリプトのシャットダウン関数 register_shutdown_function を使用し、エラーハンドルを呼び出す。(ただし復帰はできない)

基本的にFatal errorは復帰できないが
エラーメッセージに例外が発生している場合はtry-catchで補足可能。


20150214のam5:30~am6:50までの勉強

Warning (2): simplexml_load_file(): I/O warning : failed to load external entity "https://app.rakuten.co.jp/services/api/BooksBook/Search/20130522?format=xml&title=%E5%90%8D%E6%8E%A2%E5%81%B5%E3%82%B3%E3%83%8A%E3%83%B3&publisherName=%E5%B0%8F%E5%AD%A6%E9%A4%A8&sort=%2BreleaseDate&applicationId=1097399746630387113" [APP\Controller\Component\IsbnComponent.php, line 25]

XMLパースエラー


simplexml_load_file():だとどうもよくないみたい

http://q.hatena.ne.jp/1180553984
http://q.hatena.ne.jp/1182783456
http://deaimobi.com/mbnk-122/


名探偵コナン楽天APIから引っ張ると劇場版とか特別編もめっちゃ入る。
name = 名探偵コナン(1) だけ残すにはどうしたらいいか。

これはサブクエリかと思ったらNOTを入れただけでよかった。
DELETE FROM `kantitles` WHERE `zenkantitle_id`= '27' and NOT name LIKE '%(%)%'

http://purazumakoi.hatenablog.com/entry/20090704/1246719876
http://www.feedsoft.net/access/sql/sql29.html
http://blog.doli.jp/blog/2012/post509/
http://www.dbonline.jp/mysql/select/index20.html
http://el.jibun.atmarkit.co.jp/garyotensei/2012/07/mysql-465d.html
http://purazumakoi.hatenablog.com/entry/20090704/1246719876

XamppのMySQLをnet startできない

(今日の課題)
XamppのMySQLをnet startできない→Windowsサービスへの登録が必要
登録するコマンド
登録したのにコントロールパネル→管理ツール→サービスに表示されない
結局XAMPPを管理者権限で実行したらSVCのマークが表示された
でもGUIでサービス登録するなんて、なんか負けた気分…

そういうわけで自力でサービス登録する方法を調べた。時間がないので今度やる。
PowerShellという新たにやるべきこともできた。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11114256601
http://algorhythnn.jp/blg/2013/10/30/add-windows-service/
http://nasunoblog.blogspot.jp/2014/05/windows-create-and-delete-service.html
http://sakuramochi702.hatenablog.com/entry/2013/09/05/233352
http://algorhythnn.jp/blg/2013/10/30/add-windows-service/
http://www.phppro.jp/school/mysql/vol2/1
http://norm-nois.com/blog/archives/678
http://www.atmarkit.co.jp/ait/articles/0708/30/news137.html
http://itpro.nikkeibp.co.jp/article/COLUMN/20070604/273464/


やっぱりどこかで見たように実力をつけるためにはXAPMMを今すぐ捨てないといけないのかも。