スポンサードリンク
無料ブログ作成サービス JUGEM
人気ブログランキング くつろぐ ブログ王
■ Mobile
qrcode
可変変数、変数名を間接的に指定したり・動的に指定したり
○可変変数を使って、変数名の一部を可変的に扱う
例えば、
$nm1 = "A";
$nm2 = "B";
$nm3 = "C";
$nm4 = "D";
$nm5 = "E";
があって、夫々の変数の内容をecho …したいような場合がある。
変数毎に、echo …を記述するのはめんどい。

そのような場合に「可変変数」を使って、変数名の一部を可変的に指定すれば効率的。

[通常の方法]
echo $nm1;
echo $nm2;
echo $nm3;…

[可変変数を使った方法]
$nm1の1の部分を1〜5へ可変してやる。

for($cnt=1; $cnt<6; $cnt++)
{
echo ${"nm".$cnt}; //${"nm".$cnt}=$nm1…$nm5のそれぞれと等価
}



○可変変数を使って変数名を動的に指定する
$stra = 'jpn';
${$stra} = 'light';
とすると
$jpn='light';
と同じ。
| 愛アース | 備忘録・PHP | comments(0) | trackbacks(0) | pookmark |
連想配列のキーが存在しない場合を配慮した記述
$ar_str = array('x' => 1, 'y' => 2);
//当該キーが存在するかチェック

if(isset($ar_str['z']))
{
echo $ar_str['z'];
}
・・・存在しないときにwarningエラーが発生してしまう



if(array_key_exists('z',$ar_str))
{
echo $ar_str['z'];
}
else
{
//nothing
}
・・・array_key_existsを使って存在チェックしてやれば存在しない時もwarningが出ない、OK
| 愛アース | 備忘録・PHP | comments(0) | trackbacks(0) | pookmark |
数値文字参照を変換
サイトページのソースを見ると、例えば「田中耕古」のように「&#x」とヘキサの数値で文字列を表現されている場合がある。これを数値文字参照という。

・日本語文字列⇒数値文字参照へ変換
$strbefore="田中";
$strafter = mb_convert_encoding($strbefore, 'HTML-ENTITIES', 'UTF-8');

…結果 $strafter=「田中」


・数値文字参照⇒日本語文字列へ変換
$strbefore="田中";
$strafter = =mb_convert_encoding($strbefore,'UTF-8','HTML-ENTITIES');

…結果 $strafter=「田中」
| 愛アース | 備忘録・PHP | comments(0) | trackbacks(0) | pookmark |
PHPでエラーを表示させる/させない設定
php.iniファイル

エラーの出力がOFFになっていると
display_errors = Off

エラーの出力がだと
display_errors = On

これは、phpinfo.phpで確認できる。




レンタルサーバーなどで、php.iniを変更できない場合は、
.htaccessファイルの記述で設定可能。

エラー表示
php_flag display_errors On

エラー非表示
php_flag display_errors Off
| 愛アース | 備忘録・PHP | comments(0) | trackbacks(0) | pookmark |
「ひらがな、カタカナ、漢字」のみの判断
mb_regex_encoding("UTF-8");
if(preg_match("/^[ぁ-んァ-ヶー一-龠]+$/u",$words))
{
//○「ひらがな、カタカナ、漢字」のみ
}
else
{
//○「ひらがな、カタカナ、漢字」のみ以外
}
| 愛アース | 備忘録・PHP | comments(0) | trackbacks(0) | pookmark |
スクリプト実行時のエラーを非表示にする
PHPのスクリプト実行時のエラーを非表示にする。

error_reporting( 0 );


他にも、
error_reporting(E_ALL ^ E_NOTICE);
ini_set( "display_errors", "Off");
とか。
効果ない場合もある。
| 愛アース | 備忘録・PHP | comments(0) | trackbacks(0) | pookmark |
文字コード←→文字・変換のマルチバイトバージョン
//ord と chr のマルチバイト文字バージョン

//文字コード→文字
function mb_chr($in_cd)
{
return ($in_cd < 256) ? chr($in_cd) : mb_chr($in_cd/256).chr($in_cd % 256);
}

//文字→文字コード
function mb_ord($in_ch)
{
return (strlen($in_ch) < 2) ?
ord($in_ch) : 256 * mb_ord(substr($in_ch,0,-1)) + ord(substr($in_ch,-1));
}
| 愛アース | 備忘録・PHP | comments(0) | trackbacks(0) | pookmark |
PHPの文字エンコード不調
PHPで、
指定したエンコードにどうしてもなってくれない場合がある。
例えばUTF-8のページにしたいのにSJISになってしまうとか。

[対処法]
レンタルなどでサーバー側をいじれない時は「.htaccess」で設定。
それも無理ならばソース上の始めの方で

mb_http_output("UTF-8");
又は
header('Content-Type: text/html; charset=UTF-8');
mb_language("Japanese");
mb_internal_encoding("UTF-8");
mb_http_output("UTF-8");
と記述する。
| 愛アース | 備忘録・PHP | comments(0) | trackbacks(0) | pookmark |
外部からスクリプトを実行(起動)する
外部からPHPを実行させる
 @file_get_contents(絶対パスのphp)
| 愛アース | 備忘録・PHP | comments(0) | trackbacks(0) | pookmark |
URLの存在チェック
get_headers関数を使った方法

$wurl = 'http://www.google.co.jp';
$wheader = @get_headers($url);
if(preg_match('/^HTTP¥/.*¥s+200¥s/i',$wheader[0]))
{
echo "URLが存在する¥n";
}
else
{
echo "URLが存在しない¥n";
}
| 愛アース | 備忘録・PHP | comments(0) | trackbacks(0) | pookmark |
4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97 100 103 106 109 112 115 118 121 124 127 130 133 136 139 142 145 148 151 154 157 160 163 166 169 172 175 178 181 184 187 190 193 196 199 202 205 208 211 214 217 220 223 226 229 232 235 238 241 244 247 250 253 256 259 262 265 268 271 274