2016-08-05

cakephpでデータを取得するには

cakephpでデータを取得するには「find」を使用します。
「find」の中身をよく忘れてしまうため、メモも含めブログに書こうと思います。


$this->Model->find(‘all’);
$this->Model->find(‘first’);

$this->Model->find(‘all’,array(‘conditions’=>array(‘Model.field’=>$value),
‘fields’=>array(‘Model.field’)));

「find(‘all’)」の場合、すべて取得
「find(‘first’)」の場合は1行のデータを取得

「’conditions’」は、検索条件
「’fields’」は、取得したいフィールド名を記入します。

author :: shino / Category :: PHP,technology / Date :: 2016-08-05 / Comment :: No Comments »

2016-07-29

PHP:6桁の乱数を取得するには

6桁の乱数をとるには、ランダム関数を使用します。

ランダム関数は主に二つ存在します。

「rand」と「mt_rand」です。

どちらも乱数をとることができますが、「rand」より「mt_rand」のほうが4倍処理がはやいので「mt_rand」を使用することが推奨されているようです。

なので「mt_rand」を使用することにします。


$str="";
for($i=0;$i<6;$i++){
    $str.=mt_rand(0,9);
}

これで、6桁の乱数を取得することができます。

 

 

author :: shino / Category :: PHP,technology / Date :: 2016-07-29 / Comment :: No Comments »

2016-06-21

webで縦書きを表現する方法

CSSで対応する方法と画像に変換する方法があります。

CSSの場合は、こちらのページに書いてありました。「テキストを縦書きに表示する
http://technique.eweb-design.com/0402_tt.html

CSSにて

以下の項目を使うことで実現できます。ただし、IE限定とのことですが、最近のブラウザでは対応しているものが多いようです。

writing-mode: tb-rl;で文章を縦書きにしています。
direction: ltr;左から右にテキストを流しています。

 

ブラウザの差異を気にするようなら、画像を作るしかありません。

ということで、phpで画像に変換できるように作ってみました。

http://studio-q.link/tategaki/FireShot Capture 2 - 縦書き - http___studio-q.link_tategaki_

ゴシック、明朝体、フォントサイズ、1列(縦書きなので)に表示する文字数を指定できます。

出来たのはこんな感じ。
tategaki

詳しいコードを知りたい方は、コメントください。

 

#2017/12/20 更新

ソースコードを整形してから掲載しようと思いましたが、かなり遅くなっちゃってますがまだ整形してませんm(__)m

とりあえず、githubにアップしました。

https://github.com/fokazaki2/tategaki

 

author :: futoshi / Category :: CSS,HTML5,PHP,technology / Date :: 2016-06-21 / Comment :: 2 Comments »

2016-05-16

php7へのアップグレード

phpのバージョンアップスピードの速さはすごいですね。もう7です。RCも取れて現時点での最新は7.0.6です。phpのホームページにもできるだけ以前のバージョンのソースコードが動くように作られていると書いてあったので挑戦してみました。

phpのインストールには、2つの方法があります。phpのホームページより、ソースコードを落としてきて、
./configure
make
make install
という手順と、パッケージをインストールすることです。

今回はパッケージを利用することとします。php含む関連する者たちのバージョン管理が容易になるためですね。

パッケージ管理のyumでインストールすることとします。

ただ、現在のほとんどのLinuxOS(Redhat系)の参照しているyumリポジトリはすべてphpは5.4までとなっています。
そのためphp7の利用できるリポジトリを追加設定します。
一番メジャーなリポジトリがRemiリポジトリです。

remi
http://rpms.famillecollet.com/
Remi’s RPM repository

YumにRemiリポジトリを追加

Remiを追加する際にEPELリポジトリが必要となりますので、EPELとRemiリポジトリを追加します。
以下Remiをインストールすると同時にepelもインストールされますので実際にはRemiのインストールだけで大丈夫です。

以下のコマンドで一気にインストールできます。

yum install http://rpms.famillecollet.com/enterprise/remi-release-`rpm -q --whatprovides /etc/redhat-release --qf '%{version}\n'`.rpm

PHP7のインストール作業

(さらに…)

author :: futoshi / Category :: Blog,PHP,technology / Date :: 2016-05-16 / Comment :: No Comments »

2013-12-25

TwitterのPHPライブラリ[codebird-php]の使い方

codebird-phpは以下のGitHubにあります。
https://github.com/jublonet/codebird-php

ライセンスはGPL。

環境
PHP 5.3.0以上
CURL拡張(libcurl install /  configure –with-curl)
OpenSSL拡張(OpenSSL install / configure –with-openssl)

PHPファイルの先頭に以下のように書きます。(書かなくてもいいですが、\(バックスラッシュ|円マーク)が入るのが違和感があるので、別名を定義しておきます)

use Codebird\Codebird as Cordbird;

codebird-phpのHPには、以下のようにありますが、先頭の\記号はPHPでは推奨されないので、外したほうがいいです。

//\Codebird\Codebird::setConsumerKey('YOURKEY', 'YOURSECRET');
Codebird\Codebird::setConsumerKey('YOURKEY', 'YOURSECRET');

さらにuseで別名を持っているので、以下のように書けます。

Codebird::setConsumerKey('YOURKEY', 'YOURSECRET');
//インスタンスを取得
$cb = Codebird::getInstance();

トークンおよびトークンのシークレットをセット。
アクセスしてきたユーザに認証させたいので、認証用ページを表示させます。
※すでにユーザのトークンを取得しているならそれをセットすればOK。

$cb-&gt;setToken('YOURTOKEN', 'YOURTOKENSECRET');

取得してないなら自分のトークンをセットしてから認証ページ情報を取得して認証ページを取得して、認証の戻りからアクセスユーザのトークンを取得するという手順になります。

//自分自身に戻るようにcallback先を指定
$reply = $cb-&gt;oauth_requestToken(array('oauth_callback' =&gt; 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']));
// トークンをセット(developerのtoken, token_secret)
$cb-&gt;setToken($reply-&gt;oauth_token, $reply-&gt;oauth_token_secret);
// リダイレクトで認証ページを表示
header('Location: ' . $cb-&gt;oauth_authorize());
die();

認証ページからCallbackで戻ってきたらアクセスしてきたユーザのアクセストークンを取得。
(ユーザがキャンセルした場合は、呼び出し元に戻るかどうかTwitter側で画面が表示されます)

$cb-&gt;setToken($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); // oauth_token secret はdeveloperのを指定。
$reply = $cb-&gt;oauth_accessToken(array(
'oauth_verifier' =&gt; $_GET['oauth_verifier']
));

アクセスユーザのトークンをセット

$cb-&gt;setToken($reply-&gt;oauth_token, $reply-&gt;oauth_token_secret);

アクセスユーザの情報を取得!

$me = $cb-&gt;account_verifyCredentials();

$meにいろいろ情報がセットされます。

サンプルはcodebird-phpにあるので割愛します。
それぞれなにをやっているかちゃんと理解すれば、応用がきくと思います。

質問等ありましたらいつでもコメントどうぞ。


author :: futoshi / Category :: PHP,technology / Date :: 2013-12-25 / Comment :: 1 Comment »

2013-11-20

Excelからjson形式へ変換 by Mr. Data Converter

Mr. Data Converter

mrdataconverter

ウェブシステムを作っていてサンプルデータを作ってモック作りたい!ということありませんか?
そんなとき、2,3件のデータを用意するのは手作業が早いけど、もっと10件とか20件のデータを扱う場合、json形式だったりxmlだったり用意するのが大変です。
そんなときに便利なサイトがありました。

Mr. Data Converter
http://shancarter.github.io/mr-data-converter/

すばらしいです。
XMLやJSON形式以外にももっとあります。ASP/VBScriptやphpの場合は、言語の配列Arrayに入れてくれます。

  • Actionscript
  • ASP/VBScript
  • HTML
  • JSON – Properties
  • JSON – Column Arrays
  • JSON – Row Arrays
  • MySQL
  • PHP
  • Python – Dict
  • Ruby
  • XML – Properties
  • XML – Nodes
  • XML – Illustrator

変換元のデータは、CSVでもOKですが、便利なのはExcelで表を作ってそれをコピーして貼り付けすればよいです。
Excel上でコピーされたデータは、クリップボード上ではセル間がtabで区切られた状態となっております。
もちろん、Mr. Data Cenverterは、tab区切りにも対応しています。

あとは、Output asで出力形式を選べば出力OK。
簡単ですね。

各言語の配列の持ち方などその言語、構造を初めて学ぶときにも、Excel上のこの表は、どのような表現になるのかテストするの飲みよいでしょう。

 

author :: futoshi / Category :: ASP.NET,Blog,Flash,HTML5,iOS,Javascript,PHP,technology / Date :: 2013-11-20 / Comment :: 1 Comment »

2013-07-06

PHPのSmaryとJQuery(Javascript)を使うには?

自分の過去のブログで実は実現していたことがすっかり忘れていたので、再投稿。
JQuert(Javascript)でのデータ形式であるJSON形式。これは、”{“や”}”が使われるため、SmartyのTemplateタグと同じです。これがあると、Smartyとして解釈されてしまうため、例外が発生してしまいます。これをパスするために、Smartyのデリミタである”{“を変更します。
あまりにも違うものだと他の人が見たときに分かりづらくなるので、”{!”こんな感じか、”<!{” “}>”こんな感じにすることで、回避させます。

http://gcblog.net/tips/archives/2008/1126_083630.html

Smartyクラスを継承しxxxSmaryという独自のクラスを定義。独自クラスを定義せずとも、

new Smarty();で作成したインスタンスで、直接->left_delimiter、right_delimiterを設定することで対応も可能だけど、多用する場合は、クラスで定義しておくと便利。

ついでに、template_dirとかも。

class xxxxSmarty extends Smarty{ // Smartyクラスを継承したxxxxSmaryクラスを定義します。
  public function __construct(){    // __construct()はPH5以上です。
    $this->Smarty();
    $this->left_delimiter = "{!";    
    $this->right_delimiter = "}";
    $this->template_dir = "xxxxxxxx/templates";
    $this->compile_dir = "xxxxxxxx/templates_c";
  }
}

author :: futoshi / Category :: Javascript,PHP / Date :: 2013-07-06 / Comment :: No Comments »

2011-09-24

iPhone、iPad CSS振り分け

20110924-125004.jpg

iPad、iPhone、PCのブラウザでCSSを振り分けで、ブラウザウィンドウの幅だけでの判断では駄目なようだ。
なぜなら、iPadの場合はPCブラウザでも存在する可能性があるため、反映されない。
それなら、ブラウザのタイプでCSSを振り分けられれば良いのだからと、下記内容で出来る事が判明。
(PC用のCSSの下に振り分け記述をしてあげるのが良いみたいだ。)


'."\n"
	);
}else if($isiPhone){
	echo(
	''."\n"
	);
}
?>

これで、しっかり振り分けられる。

author :: hiroki / Category :: PHP,technology / Date :: 2011-09-24 / Comment :: No Comments »

PR