陽気なシステム屋が世界を変える

Tag Archives: php

PHPで文字列の切り出し

Posted on 2014年5月23日 by osaka

こんにちは。
陽気なシステム屋の一員のシホンヌです。

最近ワタクシ、不慣れなPHPでの開発に再度携わっています。
不慣れゆえに、初歩的なプログラムを組むのにもすぐにググります。

先日は「文字列の切り出しってどうやるんだっけ?」とググりました。

長らくJavaをやっていたので

「substringと同等の関数を使用して、切り出す文字の位置を指定すればいい」
「先頭の1文字だけ切り出したいので、0番目から1文字切り出す指定をすればいい」
「charAtに値する関数を探せばいい」

という風に考えていたのですが、「PHP substr」でググってびっくり。
文字列中の1文字だけを取得したい場合は

文字列[切り出したい文字の位置]

と書けば取得できるようです。

たとえば、

$moji = ‘ABCDE’;
echo $moji[0];  // 「A」が出力される
echo $moji[2];  // 「C」が出力される
echo $moji[strlen($moji)-1];  // 「E」が出力される

このような感じで。

[]は{}でも使用可能です。(ただし、{}仕様での方法はPHP 6 で廃止予定だそうです…)
charAtを使用する感覚で()を使用するとエラーになりますのでご注意を!

言語によって、微妙に異なるので気を付けないといけませんね(^^;;

 

iPhoneアプリ開発実績はこちら

Posted in 開発言語 | Tags: cakePHP, php | Leave a comment |

AjaxでJSONファイルを読み込む方法

Posted on 2013年12月20日 by osaka

こんにちは。
陽気なシステム屋の一員のシホンヌです。

昨日ワタクシ、javaScriptで初めて「AjaxでJSONファイルを読み込む」という事を行いました。

恥ずかしながら、Ajaxをアジャックスと読むほどAjaxのことを知らず、JSONと聞いてベタに映画「13日の金曜日」しか思い出せないという阿呆っぷりを発揮しましたが、なんとかできたので今回は備忘録を兼ねてその方法を紹介します。

私が今回やりたかったことは

「PHPのselectボックスで選んだ会社Noから会社名と住所を取得し画面に表示する。」

です。
selectボックスのonChange処理時の実装をこのようにしました。

function getXXXInfo() {

  // selectボックスで選択した会社Noを取得
  var select = document.getElementById(‘selectXXXNo’);
  var options =document.getElementById(‘selectXXXNo’).options;
  var xxxNo = options.item(select.selectedIndex).value;

  // AjaxでJSONファイルを読み込む
  $.ajax({
    url: “http://xxx/getXXXInfo.json”, <– (1)リクエストするURLを指定
    type: “POST”, <– (2)HTTP通信の種類を指定
    data: { xxx_no : xxxNo }, <– (3)サーバに送信する値を指定
    success: function(data) {
      // データ取得成功時
      // (4)取得したデータをJSON文字列に変換
      var stringData = JSON.stringify(data);
      // (5)JSON文字列をオブジェクトに変換
      var parseData = JSON.parse(stringData);
      // (6)取得した値を表示
      var xxxName=document.getElementById(“xxx_name”);
      var xxxAddress=document.getElementById(“xxx_address”);
      xxxName.innerText=parseData.result.xxx_name;
      xxxAddress.innerText=parseData.result.xxx_address;
    }
  });
}

これで、やりたかった処理ができました。

やったー!

取得したデータをどうやって取り出すかに悩みました…。

(4)取得したデータをJSON文字列に変換
(5)JSON文字列をオブジェクトに変換

という手順を踏んだ後、(5)で取得したオブジェクト内から値を取り出さなければならないようです。
ちなみに取得したデータはこのような形のオブジェクトです。

{“result”:
  {
    ”xxx_no”:”1″,
    ”xxx_name”:”会社名001”,
    ”xxx_address”:”会社住所001”
  }
}

ちなみに、Ajaxを使うときはjQeryをダウンロードしないで、URLから直接取るようにhead内に下記1行を追加しました。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>



他にもっと賢い方法があったらどなたかご教授ください(^-^)

Webサイト開発実績はこちら。

Posted in webサイト, 開発全般, 開発言語 | Tags: Ajax, JavaScript, JSON, php | Leave a comment |

インクリメントの方法

Posted on 2013年12月4日 by osaka

こんにちは。
陽気なシステム屋の一員のシホンヌです。

昨日、これまたシステム屋のなんちゃんに、インクリメントについての知識をもらったので紹介します。

私シホンヌはシステム屋人生10余年、インクリメントといえば、変数の後に++をつけていました。
たとえば、int型の変数cntをインクリメントしたい時は

cnt++;

こうすれば、「cnt = cnt + 1」という意味になって、わざわざ計算式を書かなくてもcntは自動的にカウントアップされます。
まぁこれは常識ですね。

しかし今回、うっかりミスのおかげでPHPの開発中にcnt++でインクリメントができず、グーグル先生に聞いたところ

++$cnt;

という記述を見つけてびっくりしました。

そうなんだ!?PHPはインクリメントする場合、変数の前に++をつけるのか!
知らなかった!こりゃーブログに書かなければ!
と、思ったところ、なんちゃんに「PHPは変数++でもイケますよ」とのこと。

えーまじで?

しかも、「前に++するか後に++するかにはちゃんと意味があるんですよ。」とも教えてもらいました。

変数++の場合は、
「まず変数の値を返して、それから変数+1をする」

++変数の場合は
「まず変数+1をして、変数の値を返す」

ということです。
どういうことかと言うと、

echo “カウントその1:”.$cnt++;
echo “カウントその2:”.$cnt;

と書いた場合は

カウントその1:0 ‘<– カウントアップする前の変数の値が表示される
カウントその2:1 ‘<– 上でカウントアップ後の変数の値が表示される

となり、

$cnt = 0;
echo “カウントその3:”.++$cnt;
echo “カウントその4:”.$cnt;

と書いた場合は、

カウントその3:1 '<– カウントアップ後の変数の値が表示される
カウントその4:1 ‘<– 上でカウントアップ後の変数の値が表示される

ということになります。
些細なことかも知れませんが、知らなかったので目からウロコでした。
今度インクリメントする際は、「++変数」でやってみようと思います!

 

 

Webサイト開発実績はこちら。

Posted in 未分類, 開発言語 | Tags: cakePHP, php, インクリメント | Leave a comment |

PHP:名前のとおりコンパクト!compact関数

Posted on 2013年11月6日 by consumer

こんにちは

寒くなり、鍋のおいしい季節となりましたね。
鍋をつつきながら、冷酒を飲むのが、私の冬の唯一の楽しみです。

鍋は、様々な具材を引数にとりますが、
受け取る引数が多い場合、連想配列で受け取るようにしますね。
このような関数に引数を渡すとき、値をどのように渡してますか?
compact関数を使うと、いいですよ!

名前や住所などの情報を受け取り、標準出力する関数を例に見てみましょう。


 function outputData($data){
  echo(“名前:{$data[‘name’]}\n”);
  echo(“年齢:{$data[‘age’]}\n”);
  echo(“性別:{$data[‘sex’]}\n”);
  echo(“住所:{$data[‘address’]}\n”);
  echo(“電話番号:{$data[‘tel’]}\n”);
 }


上記outputData関数を実行するのに、


 $name = ‘愛円太郎’;
 $age = ’20歳’;
 $sex = ‘男’;
 $address = ‘東京都渋谷区’;
 $tel = ’03-XXXX-XXXX’;

 // データチェック処理など
 // …

 // 引数生成
 $data = array(
  ‘name’ => $name,
  ‘age’ => $age,
  ‘sex’ => $sex,
  ‘address’ => $address,
  ‘tel’ => $tel);

 // 出力
 outputData($data);


と、連想配列$dataを作る必要がありますね。
$dataを作るのに、compact関数が便利です。
compact関数は、変数名を文字列で渡すと、

array(変数名 => 変数の値)

とした連想配列を返してくれます。ですので、

$data = compact('name','age','sex','address','tel');

と一行で記述することができます。

ソースコードがすっきりしますね。
連想配列から変数を生成するextract関数もあります。

compact関数、extract関数をうまく使って、
きれいなソースコードを書いて、
おいしい鍋を食べて、
寒い冬を乗りきりましょう!

Posted in webサイト | Tags: php | Leave a comment |

PHPの用意されている関数をうまく使う

Posted on 2013年7月24日 by consumer

大学時代から9年以上使用していたノートPCと先週ようやくおさらばした、

陽気なシステム屋のひとりです☆

最近、業後に先輩と喫茶店で話をしていた際に、

出題された問題があります。

問)

<?php
class SampleClass
{

function smplA()
{
// 引数取得
$args = func_get_args();
var_dump($args);
}

function smplB()
{
// smplAに取得した引数を渡す
//@todo
}

function main()
{
$this->smplB(‘a’, ‘b’, ‘c’);
$this->smplB(1,2,3,4,5,6,7,8,9,10);
}
}

$smpl = new SampleClass();
$smpl->main();

?>

上記のようにmainメソッドからsmplBメソッドの引数として3個渡す時もあれば10個渡す時もある場合で

なおかつsmplBでは受け取った引数すべてをsmplAに渡したい場合

smplBメソッドの@todoにはどのような処理を記載しますか?

解)
call_user_func_array(array($this,’smplA’), func_get_args())

ちなみに私は全くわかりませんでした・・・。

これで何を言いたかったかというと

今回のは関数に渡すパラメータを配列で渡すことができるphpの関数でしたが、

他にも配列関数など便利な関数がたくさんあります。

こんなことができる関数があったなとさえ覚えておけばあとは検索すれば

使い方などはわかります。

引き出しを増やすためにも勉強は必要なんですね・・・・

Posted in 未分類, 開発全般 | Tags: php | Leave a comment |

フレームワークとは…

Posted on 2012年12月10日 by ほんだ

こんにちは、月曜担当・ほんだです。

 

最近忘年会に向けて出し物の練習をしています。

日頃のデスクワークのツケか、運動不足のせいか、常にどこかが筋肉痛です。

 

本日は、PHPのフレームワークについて色々書いてみたいと思います。

色々と言いますが、私はまだフレームワークを使いこなすには程遠いレベルですので、

「これオススメ!」というものはありません。

広く浅く特徴を書いていくつもりです。

そもそもフレームワークとは…機能としてよく使うものをまとめたものです。

ここから引っ張ってくれば、いちいちコードを書かずとも時間短縮ができるというわけです。

 

まず、こちらをご覧ください。

http://www.bestwebframeworks.com/compare-web-frameworks/php/

フレームワークごとの特徴をあらわした表です。

これだけ見ると、なんと沢山のフレームワークが存在することかと思います。

ここまで多いと何が違うのやら…

中でも「Zend Framework」、「symfony」、「Cake PHP」あたりが有名で、

名前もよく耳にするかと思いますので、この3つに関しまして今回の記事でまとめさせて頂きたいと思います。

 

拾い集めた情報をまとめますと、下記のようになります。

Zend Framework

   ・PHP開発元のZend Technology社が開発しているので、安定感がある

      (せっかくフレームワークを使いこなしても、フレームワーク自体がなくなれば意味がないため)

   ・コンポーネントと呼ばれるクラスライブラリを個々に呼んで使うため、柔軟に使いこなせる

   ・ドキュメントがなんだか重くて、日本語が少ない…

 

symfony

   ・大規模開発向き(Yahooなど)

   ・実績が多く、ドキュメントが豊富

   ・以前は挙動の重さを指摘されていましたが、ver2では改善されているよう

 

Cake PHP

   ・シンプルで早い、規則が多い

   ・Ruby on Railsの影響を受けている

   ・PHP4にも5にも対応(していましたが、ver2からは非対応のようです…)

   ・日本で人気が高く、ドキュメントも多い

 

文字で見ても、分かりにくいのでシェアで見ていきましょう。

http://9ensan.com/blog/php/php-framework-google-insights-20120908/

こちらでは世界中のGoogleでどの程度検索されたかを元に人気を算出しています。

国によってもドキュメント量の違いでしょうか、人気が違うようです。

日本ではやはりCake PHPが人気とのこと。

上で記述はしていませんが、Codeigniterも人気が出ているようです。

特徴は何といっても軽さ。ドキュメントも充実で初心者にもオススメのようです。

(私も勉強のために入れてみましたが…まだ早すぎたようです)

 

どのフレームワークに関してもMVCを理解することが何より重要のようです。

基礎の部分を押さえて、コーディング時間を短縮したい場合に、

規模やドキュメントの豊富さ、自分の熟練度などを合わせて考えて取り入れるのがよいのではないでしょうか。

 

参考:http://www.know-the-world.com/index.php/developer/2008/09/mvc-framework-in-php
         http://www.phppro.jp/article/framework/comparison.php

Posted in Webアプリ, webサイト, 開発全般 | Tags: php, フレームワーク | Leave a comment |

初システムブログ投稿

Posted on 2011年3月28日 by 中山

こんにちは、中山です。
本日からブログをつけることになりました。
宜しくお願いします。
普段はrubyとphpにてWebシステムの開発を行っています。
今日は気になるニュースを見つけたので紹介します。
「アマゾン、東京にデータセンター EC2など国内ネットワークで利用可能に」
(http://www.zaikei.co.jp/article/20110303/68208.html)
内容は3/3のひな祭りの日よりAmazon EC2が東京にデータセンターを設置したという
ちょっと古いニュースですが、
上記リンク先のニュースソースでは東京にデータセンターを置く効能として二点掲げています。
一つ目は通信遅延の改善。
二つ目はデータの国内保存などの規制がある企業の利用の容易さ。
一つ目の通信遅延の改善は皆様想定できるとは思われますが、
二つ目は想定できましたでしょうか。
エンタープライズの世界では、
Amazon EC2はデータを海外(米国、アイルランド、シンガポール)
に置くことになるので嫌がる方もいらっしゃいます。
データ自体の置き場所を一般のユーザー様は気にならないかもしれませんが、
こうしたことも関与してくるケースがあります。
データの置き場所まで意識する面白いケースだと思い紹介しました。

Posted in webサイト, 未分類 | Tags: Amazon EC2, php, ruby, Webシステム, アマゾン | Leave a comment |

Pages

Archives

  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年8月
  • 2015年7月
  • 2015年6月
  • 2015年5月
  • 2015年4月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2014年5月
  • 2014年4月
  • 2014年3月
  • 2014年2月
  • 2013年12月
  • 2013年11月
  • 2013年10月
  • 2013年9月
  • 2013年8月
  • 2013年7月
  • 2013年6月
  • 2013年5月
  • 2013年4月
  • 2013年3月
  • 2013年2月
  • 2013年1月
  • 2012年12月
  • 2012年11月
  • 2012年10月
  • 2012年9月
  • 2012年8月
  • 2012年7月
  • 2012年6月
  • 2012年5月
  • 2012年4月
  • 2011年5月
  • 2011年4月
  • 2011年3月

Categories

  • Androidアプリ (28)
  • ECサイト (7)
  • Facebook (3)
  • iPadアプリ (19)
  • iPhoneアプリ (41)
  • Webアプリ (27)
  • webサイト (37)
  • WindowsPhoneアプリ (1)
  • サービス (15)
  • スマートフォンアプリ (28)
  • セキュリティ (11)
  • ソーシャルメディア (7)
  • その他 (25)
  • デザイン (14)
  • マーケティング (14)
  • 勉強会 (5)
  • 基幹システム (2)
  • 新製品 (16)
  • 未分類 (171)
  • 開発全般 (64)
  • 開発言語 (31)

WordPress

  • ログイン
  • WordPress

Subscribe

  • Entries (RSS)
  • Comments (RSS)

Pages

Archives

  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年8月
  • 2015年7月
  • 2015年6月
  • 2015年5月
  • 2015年4月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2014年5月
  • 2014年4月
  • 2014年3月
  • 2014年2月
  • 2013年12月
  • 2013年11月
  • 2013年10月
  • 2013年9月
  • 2013年8月
  • 2013年7月
  • 2013年6月
  • 2013年5月
  • 2013年4月
  • 2013年3月
  • 2013年2月
  • 2013年1月
  • 2012年12月
  • 2012年11月
  • 2012年10月
  • 2012年9月
  • 2012年8月
  • 2012年7月
  • 2012年6月
  • 2012年5月
  • 2012年4月
  • 2011年5月
  • 2011年4月
  • 2011年3月

Categories

  • Androidアプリ (28)
  • ECサイト (7)
  • Facebook (3)
  • iPadアプリ (19)
  • iPhoneアプリ (41)
  • Webアプリ (27)
  • webサイト (37)
  • WindowsPhoneアプリ (1)
  • サービス (15)
  • スマートフォンアプリ (28)
  • セキュリティ (11)
  • ソーシャルメディア (7)
  • その他 (25)
  • デザイン (14)
  • マーケティング (14)
  • 勉強会 (5)
  • 基幹システム (2)
  • 新製品 (16)
  • 未分類 (171)
  • 開発全般 (64)
  • 開発言語 (31)

WordPress

  • ログイン
  • WordPress

CyberChimps WordPress Themes

© 陽気なシステム屋が世界を変える