ヒアドキュメントの中でPHP関数を実行したい場合、どうすればいいのだろうか?
PHPのヒアドキュメント内で関数を使う。計算もしたい。
によると、いったん、変数に設定すればいけるみたい。
試しに、rand関数でやってみることに。
$rand = "rand"; print <<< EOF {$rand(1,99)} EOF;確かに出力された。
これは便利ー。
常にテンパってます。
ヒアドキュメントの中でPHP関数を実行したい場合、どうすればいいのだろうか?
PHPのヒアドキュメント内で関数を使う。計算もしたい。
によると、いったん、変数に設定すればいけるみたい。
試しに、rand関数でやってみることに。
$rand = "rand"; print <<< EOF {$rand(1,99)} EOF;確かに出力された。
ヒアドキュメントの中でforループを実行することはできるのだろうか?
print <<<EOT for($i=0;$i<10;$i++){ $hoge } EOT;上のように実行したら見事にエラーが発生。
ついにきたかも!!
ずーっと前からtwitter上では、届いてないかもしれないが、要望自体は出していました。At Google I/O, we announced PHP as the latest supported runtime for Google App Engine in Limited Preview. PHP is one of the world's most popular programming languages, used by developers to power everything from simple web forms to complex enterprise applications.
via:Get started with App Engine for PHP: scalable, secure and reliable
なぜ、#googleappengine のサポート言語は、 #python と #java だけなのだろうか? #php とか #ruby もサポートすれば、多くのお客様を取り入れ、売上げがあがると思うのだが、実際どうなんでしょうか?
— maitokuwaharaさん (@maito) 2013年3月5日
素敵なライブラリがあったので、備忘録。
スマホ・タブレットの判別ができるPHPクラスライブラリ「PHP Mobile Detect」
簡単なコードで、モバイル(正確には、スマホ)を検出してくれるようだ。
この手のプログラムは、ものすごく汚くなる傾向があるので、ライブラリ化してくれると大変助かりますね。
同じことを考えていた人がすでにいたようだ。
それに対する答えは、これ。正しく改行コードを
via:TEXTAREAに書いた改行コードを正しくBRに
に変換できないでしょうか?
結果的に、これでできましたー。nl2br()を使いましょう。
via:TEXTAREAに書いた改行コードを正しくBRに
参考URL:http://jp2.php.net/manual/ja/function.nl2br.php
PHPでヒアドキュメントを使って文字列を表示しようとしたのだが、なぜかエラー
原因は、
実際エラーのときは、こうでした。原因その2:
via:Parse error: syntax error, unexpected $end in について
ヒアドキュメントのエンドIDの前にスペースとかインデントとかタブが入っている
print <<<EOT EOT;で、タブやインデントを省いたのがこれで、正常終了しました。
print <<<EOT EOT;忘れそうなので注意したい。
大昔にどうやら同じことを思っていたようです。
文字列をエンコードする
その中で、shift-jisの場合は、どうすればいいのかという疑問に対して、「"SJIS-win"」とありましたが、
SJIS |
UTF-8 |
どうやら同じ悩むを持っていた人がいたようだ。
これ、ColdFusionの場合は、isDefinedを使えばいいのだが、それに相当するのはどれかなと思い、検索したら、isset関数を使えという回答があり、試しにこの関数を使ったら確かに変数の確認を行うことができました。PHPで、ある変数が既に宣言済みか…、もしくは既に使用されているかどうか確認するすべはありますか?
via:人力検索はてな
病院移動中に読了
訳者まえがき
via:目次
はじめに
1章 オリエンテーションと始めの一歩
2章 テキストと数の操作
3章 判定と繰り返しについて
4章 配列の操作
5章 関数
6章 Webフォームの作成
7章 データベースに情報を保存
8章 クッキーとセッションでユーザを記憶
9章 日付と時刻の取り扱い
10章 ファイルの操作
11章 XMLのパースと生成
12章 デバッギング
13章 その他のPHPでできること
14章 日本語処理
以前、ゲームアルゴリズムレシピ for JavaScriptを買ったときに、サーバーサイドの処理を組む必要があり、本書に記載されているPerlではなく、PHPで組んだのですが、その際に、正規表現を使ったので、そのやり方をさくっと紹介
処理の内容は、半角英数字以外のものが変数に含まれていた場合、エラーにするという処理です。
if(!ereg("[0-9a-zA-Z]", $new_name)){ //半角英数字以外(エラー)だった場合の処理を記述 } |
前回、ファイル入力処理について書いたので、今度は、ファイルに書き込む方法について。
$fp = fopen('data.txt', 'r+') or exit('error!');
via:PHPでファイル入出力
flock($fp, LOCK_EX); //有効なロック
fwrite($fp, '追記したいデータ');
flock($fp, LOCK_UN);
fclose($fp);
よく、pushなどで配列の最後に値を追加することができますが、配列のある特定のindexに値を挿入すればどうすればいいのかと思い、調べることにしました。
$input = array("red", "green", "blue", "yellow");
via:例1 array_splice() の例
array_splice($input, 3, 0, "purple");
// ここでは $input は array("red", "green",
// "blue", "purple", "yellow"); となる
文字列をあるキーワードで分割を行い配列にする方法を調査しました。
phpのマニュアルを覗くと、explode関数を使って実現できるようです。
$hoge = "1234.56"; $hoge = explode(".",$hoge); print $hoge[0]; print "<br>"; print $hoge[1]; exit; |
あるコンテンツの出力方法を設定したい場合は、header関数を使って設定します。
画像ファイルを出力する場合の例
via:PHPで Content-typeを指定してテキスト以外のファイルを出力する
header('Content-type: image/jpeg');
echo file_get_contents($path);
あるURLにおけるリクエスト種類を取得する方法を調べたところ、
リクエストメソッドを取得するサーバ変数は$_SERVER['REQUEST_METHOD']ですので、それを出力します。
via:ページのリクエストについて
文字のエンコード方法を調べました。
mb_convert_encoding を使います。
via:文字列の文字コード変換
$str = $_GET["q"];
$str = mb_convert_encoding($str, "EUC-JP", "auto");
これで、$str を EUC-JP に変換できます。
"auto" を指定すると 元のエンコーディングを自動検出できますが、完璧でもない場合がありますので厳密にしたい場合は
新ブログを最近開設したのですが、その際に、AppStoreに掲載されているiPhoneアプリの情報を取得したいと思い、調査しました。
で、[net] iPhone/iPod Touch アプリのアイコンを手に入れるにはを参考にさせていただくと、
http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa /wsSearch?country=JP&entity=software&term=検索したいアプリ名 |
require_once 'HTTP/Request.php'; $url = urlencode("検索キーワード"); $url = "http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa /wsSearch?country=JP&entity=software&lang=ja_jp&term=".$url; $request = &new HTTP_Request(); $request->setURL($url); $result = $request->sendRequest(); $result = $request->getResponseBody(); $result = json_decode($result); for($i=0;$i<$result->resultCount ;$i++){ $currentrow = $result->results[$i]; print($currentrow->trackName); //出力したい内容をドンドン書いていく。 } |
一瞬だけPHPを使うことがあり、hoge::foo()みたいな記述があったので、ちょっと調べてみました。
ほでなすPHPさんのクラスの説明によると、どうやらこれは、hogeクラスのfooメソッドを実行せよという処理らしいです。
つまり、クラスメソッドということですね。