文字列が二重引用符 (") で括られた場合、 PHP は、より多くの特殊文字のエスケープシーケンスを理解します。
表 エスケープされた文字
記述 | 意味 |
---|---|
\n |
ラインフィード (LF またはアスキーの 0x0A (10)) |
\r |
キャリッジリターン (CR またはアスキーの 0x0D (13)) |
\t |
水平タブ (HT またはアスキーの 0x09 (9)) |
\\ |
バックスラッシュ |
\$ |
ドル記号 |
\" |
二重引用符 |
\[0-7]{1,3} |
正規表現にマッチする文字シーケンスは、8 進数表記の 1 文字です。 |
\x[0-9A-Fa-f]{1,2} |
正規表現にマッチする文字シーケンスは、16 進数表記の 1 文字です。 |
この他の文字をエスケープしようとした場合には、 バックスラッシュも出力されます!
スクリプトが二重引用符で括られるかヒアドキュメントで指定された場合、 その中の変数はパースされます。
ドル記号 ($) を見付けると、 パーサは、有効な変数名を形成することが可能な最長のトークンを取得します。 変数名の終りを明示的に指定したい場合は、変数名を波括弧で括ってください。
$beer = 'Heineken'; echo "$beer's taste is great"; // 動作します。"'" は変数名として無効な文字です。 echo "He drunk some $beers"; // 動作しません。's' は、変数名として有効な文字です。 echo "He drunk some ${beer}s"; // 動作します。 echo "He drank some {$beer}s"; // 動作します。 |
同様に、配列添字とオブジェクトのプロパティをパースすることも可能です。 配列添字の場合、閉じ角括弧 (']') は添字の終りを意味し、 オブジェクトのプロパティの場合、同じ規則が簡単な変数として適用されます。 しかし、オブジェクトプロパティには、変数の場合のような手法はありません。
◆FORMのINPUTフィールドが表示されない!
<FORM>タグの属性に action=" " が含まれていないと,FORMが表示されません!!
中身が空白でも必要です.
◆初期入力方式が設定できない!
iモード対応XHTML記述において,<INPUT>タグに下記のstyle属性を記述することで,初期入力方式を設定できる.
公式サイト「作ろうiモードコンテンツ」の記述は,文字がエスケープ記述されていて
間違うので注意!!
>>URL
・漢全
style="-wap-input-format:'*<ja:h>'"
・カナ半
style="-wap-input-format:'*<ja:hk>'"
・数半
style="-wap-input-format:'*<ja:n>'"
・英半
style="-wap-input-format:'*<ja:en>'"
QuickTime形式(moov)の映像から映像長を返却する方法を紹介します.
【参考URL】
MQVで学ぶQuickTime Atomフォーマット(その1)
MQVで学ぶQuickTime Atomフォーマット(その4)
実は,apple社が提供しているフリーソフト「dumpster」 を使用して、3gpファイルのAtom構造を表示・修正できます.Atom構造の勉強にもなります.
>>DL
一番簡単に実装する方法は,既存のgetID3ライブラリ(GPL)を使うのがよいのかも.
>>DL
下記のスクリプトは,3gpファイルから,Movie header atom構造における,映像の時間長の情報が格納されている,mvhd の部分を抽出し,直接バイナリデータとして時間長を取得しています.最終的には,バイナリデータから10進数情報に変改しています.
<?php
$filename = "ファイル名";
$handle = fopen($filename, "rb");
// ファイル読み込み
$contents = fread($handle, filesize($filename));
// moov/mvhd (Movie header atom)の文字列を検索
$findkey = 'mvhd';
$pos1 = stripos($contents, $findkey);
$pos2 = $pos1+strlen($findkey)+12;
//バイナリ情報を16進数文字列に変化し10進数に変換(もっとスマートな方法ないかな?)
$timeScale_bin = substr($contents, $pos2, 4);
$timeScale = hexdec(bin2hex($timeScale_bin));
$duration_bin = substr($contents,($pos2+4),4);
$duration = hexdec(bin2hex($duration_bin));
// タイムスケールがファイル毎に違うので,正規化した時間長を計算
$normalizedDuration = $duration/$timeScale;
fclose($handle);
?>
CentOS4.4で標準にインストールされるPHPは,
PHP Version 4.3.9
である. PHP5をインストールしたい場合は,yumのリポジトリの設定を変更する .
# /etc/yum.repos.d/CentOS-Base.repo
[centosplus]
name=CentOS-$releasever - Plus baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
設定した後,
# yum update php
1.3.2であるため,単純にupgrade PEARでは以下のようなエラーがでてアップグレードできない.
requires package `PEAR' >= 1.3.3
PEAR: Dependencies failed
そこで,一度PEAR-1.3.6にアップグレードしたのち,upgrade する.
#pear upgrade -o http://pear.php.net/get/PEAR-1.3.6.tgz
downloading PEAR-1.3.6.tgz ...
Starting to download PEAR-1.3.6.tgz (106,880 bytes)
.........................done: 106,880 bytes
Optional dependencies:
'xmlrpc' PHP extension is recommended to utilize some features
upgrade ok: PEAR 1.3.6
# pear upgrade -o PEAR
downloading PEAR-1.4.11.tgz ...
Starting to download PEAR-1.4.11.tgz (283,272 bytes)
..........................................................done: 283,272 bytes
skipping Package 'pear' optional dependency 'XML_RPC'
skipping Package 'pear' optional dependency 'PEAR_Frontend_Web'
skipping Package 'pear' optional dependency 'PEAR_Frontend_Gtk'
skipping Package 'pear' optional dependency 'PEAR_Frontend_Gtk2'
Optional dependencies:
package `PEAR_Frontend_Web' version >= 0.5.0 is recommended to utilize some features.
package `PEAR_Frontend_Gtk' version >= 0.4.0 is recommended to utilize some features.
package `PEAR_Frontend_Gtk2' version >= 0.1.0 is recommended to utilize some features.
upgrade ok: PEAR 1.4.11
した場合,依存関係解決に失敗し,下記のようなエラーを出してアップデートできない場合がある.
Error: python-devel conflicts with python
下記のようなコマンドで依存関係を解決してからupdateする.
#rpm -e --nodeps python-devel
【CopperminePhotoAlbum /include/functions.inc.php】
function cpg_db_connect()
{
global $CONFIG;
$result = @mysql_connect($CONFIG['dbserver'], $CONFIG['dbuser'], $CONFIG['dbpass']);
if (!$result) {
return false;
}
if (!mysql_select_db($CONFIG['dbname']))
return false;
$rtn = mysql_query( 'SET NAMES utf8', $result ); //追加
return $result;
}