文字列を切り出す場合にはsubstr()関数を用います。
以下の例では文字列「abcdefg」の2バイト目から3バイト分の文字列を切り出すので、結果は「cde」となります。
$str = substr("abcdefg", 2, 3);
文字列を切り出す場合にはsubstr()関数を用います。
以下の例では文字列「abcdefg」の2バイト目から3バイト分の文字列を切り出すので、結果は「cde」となります。
$str = substr("abcdefg", 2, 3);
PHPでアンケートフォームやメールフォームを設置する場合に、POSTされたデータの処理を考えます。
作業する度に、毎回考えさせられるような事なので、ここでメモとして残しておきます。
まず、POSTされたデータは、DBに格納する、ファイルに書き出す、メールで送信するなどのアウトプットが考えられるので、それぞれに応じた文字コードに変換してあげる必要があります。例えば、UTF-8に変換したいのであれば以下のように処理します。
mb_convert_encoding($str, "UTF-8", "auto");
コンテンツの縦・横幅をブラウザサイズに合わせたい、または、ポップアップ画面を表示するといった場合に、スクロールバーを消すことがあります。
HTML内のブロック要素に対してスクロールバーを消すにはCSSで以下のようにします。
Flexを習得するにあたり、参考にしている本を紹介します。
Flexを学ぶにあたり、最初のポイントとなるのはmxmlを理解することだと思います。
AjaxのRIAが「XHTML + CSS + JavaScript」で構成されているのと同じように、Flexは「mxml + CSS + ActionScript」で構成されている。
CSSはそのまんま。ActionScriptについてはいわゆるプログラミング、オブジェクト指向などをかじっていれば、特に大きな壁にはならない。
ここで、Flex全体の感覚をつかむ意味でもmxmlの理解が重要となる。
この本では、mxmlを中心に、簡単なサンプルがまとめられている。内容が少し易しすぎるか、最終的にはいらなくなってしまいそうだが、これからFlexを学ぼうという人にはぴったりだと思う。
人気があるのか、部数が少ないのかは分からないが、Amazonではプレミアが付いているようですね。
私の場合は、地元から少し離れた書店で偶然見つけました。
FlexのHTTPServiceを使って、他のサイトのRSSを読み込み、リスト表示をしようとした。
最近では、PHPなどでブログの最近記事の一覧をトップページに出力することは、よくやる手法である。
しかし、Flashの世界では、これが単純にはいかない。
通常の処理で、HTTPServiceで他のサイトのxmlファイルにアクセスにいくと、以下のようなエラーが出力される。
[RPC Fault faultString=”URL へのアクセス中にセキュリティエラーが発生しました” faultCode=”Channel.Security.Error” faultDetail=”送信先 : DefaultHTTP”]
つまりは、FlashやFlexではセキュリティ上、他のドメインへのコンテンツは基本的にアクセスできないようになっているらしい。
Flexをはじめました。
ここ最近の記事を見てのとおり、Flashをはじめたのだけど、プログラマの私にとっては、どうもグラフィックツールやタイムラインはしっくりこない。そこで開発者向けのFlexから習得しようという気になった。
CSのFlashはデザイナ向けのソフトで、グラフィックで際立たせる。一方で、Flexはプログラマ向けで、オブジェクト指向を理解していたり、アルゴリズムに強い人は入りやすく、アプリケーション開発向けである。
しかし、アウトプットはどちらもSWF。やろうと思えば、同じことは実現できる。はずである。。。
というわけで、早速だがFlexを触ることにした。
最近、xampp1.6.8を使い続けていて、エラーが多いと感じる。
詳細は不明だが、とにかくページ遷移のタイミングでApacheエラーなどのアラートが出る。いや、ページは遷移するので、致命的というわけではないが、とにかく不安定な感じは否めない。
一方で、xampp1.7以降でPHP4のサポートが打ち切られたため、PHP4の環境を作れる1.6系は捨てがたい面もある。
世の中、まだPHP4で動いてるシステムも結構あるので。
そんな場合は1.6系と1.7系を共存させちゃおう!
特に難しいことはないです。違うディレクトリにインストールするだけ。
例えば、「C:xampp1.6」と「C:xampp1.7」にそれぞれインストールするなど。
注意することは、同時に起動させないこと。ポートなどが競合するので、使用する場合は、PHP4の場合はxampp1.6、PHP5の場合はxampp1.7というように使い分ける必要がある。
ローカル環境でGoogle Maps APIを使って開発をしたい場合がります。
しかし、開発を進めようと本番環境のドメインでAPI Keyを取得して、いざローカルで開発をはじめようとすると
「GoogleマップAPIに使用されているキーは他のウェブサイトに登録されています。。。」
というエラーが出て、ローカルではKeyが使えません。
http://code.google.com/intl/ja/apis/maps/signup.html
そんな場合は、別途開発用にローカルのドメインでAPI Keyを取得してしまえばいいです。
つまり、サイトURLを「http://localhost/」など、開発環境のURLを登録してAPI Keyを取得すれば問題ないです。
もちろん、本番へアップする場合には前に取得したKeyに置き換えなければいけません。
ちなみに「Googlemap api key ローカル」などと検索すると、「http://localhost/」で利用できるKeyを公開しているサイトなどを見かけますが、どっから出てきたのでしょうか。確かKeyはアカウント毎に発行されるので、配るのはあまりよろしくないとは思いますが。。。
ある任意のブロック要素の縦幅、横幅をブラウザのサイズに合わせて可変にしたい場合があります。
これを実現するためにはJavaScriptで、ブラウザサイズ変更を感知、ブラウザサイズを取得、ブラウザサイズの比率でブロック要素のサイズを変更、という流れの処理を実現しなければなりません。
例えば、縦幅を可変対応としたい場合に、まず、ブラウザサイズの検知にはイベントハンドラ「window.onresize」を利用します。
ブラウザサイズの取得には「document.documentElement.clientHeight」を用います。直感的に「window.innerHeight」を使おうと思いますが、これはIEでの動作がおかしいので標準的には使えません。
サイズ変更にはスタイル要素を追加しますが、ここでは「element.setAttribute(“style”, “height : ” + x + “px;”);」とします。これも直感的には「element.style.height」と思うかもしれませんが、IEではちゃんと動いてくれません。
ブラウザで印刷すると、モニタで見るレイアウトの通りに印刷できずに、内容が欠けたり、レイアウトが崩れることが多々あります。
原因としては、Webページの横幅のサイズなんて千差万別なので、ブラウザが対応しかねているという点があります。
そもそも、ブラウザは対応する気がないのかもしれません。Webページなんて印刷することを前提としてはいない、逆に印刷物にはないメリットがあってこそのWebコンテンツということでしょうか。
しかし、地図やクーポンなど、そこはどうしてもうまく印刷したいというコンテンツもあります。そんな時は、print cssを設置すればある程度解消できます。