小枝から幹をめざして

今は小枝しか拾えてないけどいつか幹にたどり着くんだ。個人的な勉強の忘備録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