ラベル php の投稿を表示しています。 すべての投稿を表示
ラベル php の投稿を表示しています。 すべての投稿を表示

2015/03/25

[PHP]ヒアドキュメント内で関数を実行

ヒアドキュメントの中でPHP関数を実行したい場合、どうすればいいのだろうか?

PHPのヒアドキュメント内で関数を使う。計算もしたい。
によると、いったん、変数に設定すればいけるみたい。

試しに、rand関数でやってみることに。

$rand = "rand";
print <<< EOF
{$rand(1,99)}
EOF;
確かに出力された。

これは便利ー。

2014/10/22

[PHP]ヒアドキュメント内のforループについて

ヒアドキュメントの中でforループを実行することはできるのだろうか?

print <<<EOT
for($i=0;$i<10;$i++){
  $hoge
}
EOT;
上のように実行したら見事にエラーが発生。

同じ悩みを抱えた人がいました。
ヒアドキュメントの中のfor文
でどうやら、上の文章を読むとできないようです。

なーんだ。できないのかよ。

2013/05/16

[PHP][GoogleAppEngine]PHPのサポート?

ついにきたかも!!

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
ずーっと前からtwitter上では、届いてないかもしれないが、要望自体は出していました。

これで一気に、GoogleAppEngineの利用ユーザーが増えそうだなー。

そうすれば、当然、有料課金者も増えることになり、売り上げが増えることでより便利な機能を追加することもできるようになるわけだし。

いい感じですねー。

2012/12/25

[PHP]Mobile Detect

素敵なライブラリがあったので、備忘録。
Photobucket
スマホ・タブレットの判別ができるPHPクラスライブラリ「PHP Mobile Detect」

簡単なコードで、モバイル(正確には、スマホ)を検出してくれるようだ。

この手のプログラムは、ものすごく汚くなる傾向があるので、ライブラリ化してくれると大変助かりますね。

2012/11/07

[PHP]textareaに書いた改行コードをbrタグに変更

同じことを考えていた人がすでにいたようだ。

正しく改行コードを
に変換できないでしょうか?

via:TEXTAREAに書いた改行コードを正しくBRに
それに対する答えは、これ。

nl2br()を使いましょう。
参考URL:http://jp2.php.net/manual/ja/function.nl2br.php

via:TEXTAREAに書いた改行コードを正しくBRに
結果的に、これでできましたー。
ちなみにSmarty版の改行は、以前のエントリーに書いてあります。

2012/11/06

[PHP]ヒアドキュメントについて

PHPでヒアドキュメントを使って文字列を表示しようとしたのだが、なぜかエラー

原因は、

原因その2:
ヒアドキュメントのエンドIDの前にスペースとかインデントとかタブが入っている

via:Parse error: syntax error, unexpected $end in について
実際エラーのときは、こうでした。
  print <<<EOT

  EOT;
で、タブやインデントを省いたのがこれで、正常終了しました。
print <<<EOT

EOT;
忘れそうなので注意したい。

2012/09/12

[PHP]文字列をエンコードする2

大昔にどうやら同じことを思っていたようです。

文字列をエンコードする

その中で、shift-jisの場合は、どうすればいいのかという疑問に対して、「"SJIS-win"」とありましたが、

SJIS
でもいけるようです。また、UTF-8の場合は、
UTF-8
と設定すればおk。

これでやっと正式にPHPのエンコード問題の決着がついたかなーっと。

2012/04/28

[php]isset関数

どうやら同じ悩むを持っていた人がいたようだ。

PHPで、ある変数が既に宣言済みか…、もしくは既に使用されているかどうか確認するすべはありますか?

via:人力検索はてな
これ、ColdFusionの場合は、isDefinedを使えばいいのだが、それに相当するのはどれかなと思い、検索したら、isset関数を使えという回答があり、試しにこの関数を使ったら確かに変数の確認を行うことができました。

なんと便利なことでしょう!!

2011/01/30

[PHP]$_REQUESTって

なにかなーっと思って、$_REQUESTのところを読んだら、「$_GET」、「$_POST」と「 $_COOKIE」のすべてを連想配列にもたした変数のようです。

漠然と処理する分には、この変数でも構わないと思うのですが、なんか処理が重たくなるような気が。。。

実際、どうなのだろうか?

2011/01/20

[PHP][本]初めてのPHP5

病院移動中に読了


訳者まえがき
はじめに
1章 オリエンテーションと始めの一歩
2章 テキストと数の操作
3章 判定と繰り返しについて
4章 配列の操作
5章 関数
6章 Webフォームの作成
7章 データベースに情報を保存
8章 クッキーとセッションでユーザを記憶
9章 日付と時刻の取り扱い
10章 ファイルの操作
11章 XMLのパースと生成
12章 デバッギング
13章 その他のPHPでできること
14章 日本語処理

via:目次

本当にすごくバランスが取れたいい本。これぞ本当の初心者が読むべき本かなと。
バランスってなにかというと、変数の処理の仕方を始め、フォーム変数、関数の作成、DB接続、日付の処理、ファイルの操作、XMLファイルの処理方法、デバッグの方法、さらに日本人にはかかすことができない日本語の処理等、アプリケーションを作る上で必要不可欠だと思われる部分。

プログラム初心者ではないが、PHP初心者という方にもお勧めではないだろうか?

ただし、これだけ読んですべてに対応できるかと言われれば、そうではない。
残念ながら本書から漏れているが、とても需要だと思われるものには以下の項目がある。

・クラス、メソッドの設計(本書に少しあったが、やはり足りない)
・JSONのパースと吐き出し方法
・ajax通信時のクライアントからのパラメータ処理
・SOAP通信時の処理方法

これぐらいカバーしとけばオッケーっしょ。
さらにセキュリティーとかもあるけど。。。

2011/01/05

[php]readfileについて

昔のエントリーを検索して発見できなかったので、1エントリー。

最近、readfile関数を使う機会があったのでちょっと内容を調査。

リンク先の記事を読んでみると、引数の内容を読み込んでそれを画面に出力してくれるようです。

なので、画像やら、リンク先のurlやらを設定するといいようです。

2010/11/16

[PHP]正規表現 半角英数字チェック

以前、ゲームアルゴリズムレシピ for JavaScriptを買ったときに、サーバーサイドの処理を組む必要があり、本書に記載されているPerlではなく、PHPで組んだのですが、その際に、正規表現を使ったので、そのやり方をさくっと紹介

処理の内容は、半角英数字以外のものが変数に含まれていた場合、エラーにするという処理です。

if(!ereg("[0-9a-zA-Z]", $new_name)){
//半角英数字以外(エラー)だった場合の処理を記述

}

上の処理は、変数new_nameにereg関数を使って中身をチェックしている処理です。

こうしてまとめておけば次回からさくっと取り出せるので便利です。

参考:詳解 正規表現 第3版

2010/11/08

[PHP]ファイルに書き込み

前回、ファイル入力処理について書いたので、今度は、ファイルに書き込む方法について。

$fp = fopen('data.txt', 'r+') or exit('error!');
flock($fp, LOCK_EX); //有効なロック
fwrite($fp, '追記したいデータ');
flock($fp, LOCK_UN);
fclose($fp);

via:PHPでファイル入出力

これでもいけちゃうようなのですが、実際、fwrite($fp, '追記したいデータ')をfputs($fp,"書き込む文字列")にしても正常動作しました。

後、最後に、fclose関数を絶対にコールするので、flock($fp, LOCK_UN)を省略して実行しても特に問題は発生せず。

また、オープン時のモードですが、具体的な値については、こちらから確認を行うことができます。

これぐらい押さえておけば、ファイルの書き込みに関しては、問題はないのかなーっと

2010/10/28

[PHP]配列のある特定のindexに値を挿入する

よく、pushなどで配列の最後に値を追加することができますが、配列のある特定のindexに値を挿入すればどうすればいいのかと思い、調べることにしました。

$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// ここでは $input は array("red", "green",
// "blue", "purple", "yellow"); となる

via:例1 array_splice() の例

ということは、array_splice関数で、第三引数を0にし、第二引数に挿入したいindexの値を入れると値を挿入できるということですね。

実際に、試したところきちんと正常終了しました。

逆に、ある特定のindexの値を削除する方法はどうするんだろーっとふと疑問に思ったのだが、それはまた後に調査していきたいと思う。

2010/10/27

[PHP]文字列をあるキーワードで分割

文字列をあるキーワードで分割を行い配列にする方法を調査しました。

phpのマニュアルを覗くと、explode関数を使って実現できるようです。

$hoge = "1234.56";
$hoge = explode(".",$hoge);
print $hoge[0];
print "<br>";
print $hoge[1];
exit;

上のソースを実行すると確かに文字列が分割されて配列になりました。

2010/10/26

[PHP]ヘッダー出力の設定

あるコンテンツの出力方法を設定したい場合は、header関数を使って設定します。

画像ファイルを出力する場合の例
header('Content-type: image/jpeg');
echo file_get_contents($path);

via:PHPで Content-typeを指定してテキスト以外のファイルを出力する

これで変幻自在にhedaerを操ることができて便利ですね。

だいぶ前に、[php]phpファイルでrssを実装する際の注意点というエントリーで、header関数に触れたが、探すのに苦労したので、追記という形でやはり1エントリー残しておく。

2010/10/25

[PHP]リクエストの種類の取得方法

あるURLにおけるリクエスト種類を取得する方法を調べたところ、

リクエストメソッドを取得するサーバ変数は$_SERVER['REQUEST_METHOD']ですので、それを出力します。

via:ページのリクエストについて

で、実際に試したところ、きちんと取得することができました。

2010/08/25

[PHP]文字列をエンコードする

文字のエンコード方法を調べました。

mb_convert_encoding を使います。

$str = $_GET["q"];
$str = mb_convert_encoding($str, "EUC-JP", "auto");

これで、$str を EUC-JP に変換できます。
"auto" を指定すると 元のエンコーディングを自動検出できますが、完璧でもない場合がありますので厳密にしたい場合は

via:文字列の文字コード変換

ここでも疑問が発生するのですが、shift-jisの場合はどうするのでしょうか?
【php】文字コードの変換を拝見すると、"SJIS-win"と指定すればいいみたいです。

2010/06/07

[PHP]iPhone/iPod Touch アプリの情報をゲットする方法

新ブログを最近開設したのですが、その際に、AppStoreに掲載されているiPhoneアプリの情報を取得したいと思い、調査しました。

で、[net] iPhone/iPod Touch アプリのアイコンを手に入れるにはを参考にさせていただくと、

http://ax.phobos.apple.com.edgesuite.net/WebObjects/MZStoreServices.woa/wa
/wsSearch?country=JP&entity=software&term=検索したいアプリ名

にアクセスすれば検索結果をJSONで返してくれるみたいです。

で、毎回、毎回、手で実行するのもメンドイので、PHPでアクセスプログラムを作ってみました。
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);
//出力したい内容をドンドン書いていく。

}

動作確認したところ、正常終了したので、是非、是非、お使いください。

2010/06/04

[PHP]クラスメソッドの実行

一瞬だけPHPを使うことがあり、hoge::foo()みたいな記述があったので、ちょっと調べてみました。

ほでなすPHPさんのクラスの説明によると、どうやらこれは、hogeクラスのfooメソッドを実行せよという処理らしいです。

つまり、クラスメソッドということですね。