PHP

phpinfoをコマンドラインで実行

php -r "phpinfo();"

xmlファイルのロード

$xml = simplexml_load_file('hoge.xml');
var_dump($xml);

ハイフン付きのメンバ変数名を参照

  • 中括弧({)とシングルクォート(')で囲むと参照できる
    $hogefuga = $xml->{'hoge-fuga'};

配列の数を取得

<?php
$array = array( "array1", "array2", "array3", "array4" );
echo count( $array );   // 4 と表示される
?>

MySQL DB接続、切断

<?php

// 接続用設定
$DB_HOST = "localhost";
$DB_USER = "nuzou";
$DB_PASSWORD = "nuzoudb";
$DB_NAME = "nuzou_pw";

// 接続
function db_connect()
{
	global $DB_HOST, $DB_USER, $DB_PASSWORD, $DB_NAME;
	$link = mysqli_connect($DB_HOST, $DB_USER, $DB_PASSWORD, $DB_NAME);
	return $link;
}
 
//切断
function db_close($link)
{
	mysqli_close($link);
}

?>

文字コード変換

UTF8→SJIS

function utf8_to_sjis($utf8_string) {
	return mb_convert_encoding($utf8_string,"SJIS","UTF-8");
}

SJIS→UTF8

function sjis_to_utf8($sjis_string) {
	return mb_convert_encoding($sjis_string,"UTF-8","SJIS");
}

日付計算

// 現在日付から○日の取得
echo "1日前"   . date("Y/m/d", strtotime("-1 day"  ));
echo "1ヶ月前" . date("Y/m/d", strtotime("-1 month"));
echo "1年前"   . date("Y/m/d", strtotime("-1 year" ));
echo "1週間前" . date("Y/m/d", strtotime("-1 week" ));
// 指定日付から○日の取得
echo "1日前"   . date("Y/m/d", strtotime("-1 day"   ,strtotime("2008/12/01")));
echo "1ヶ月前" . date("Y/m/d", strtotime("-1 month" ,strtotime("2008/12/01")));
echo "1年前"   . date("Y/m/d", strtotime("-1 year"  ,strtotime("2008/12/01")));
echo "1週間前" . date("Y/m/d", strtotime("-1 week"  ,strtotime("2008/12/01")));
// 当月末日
echo date("Y/m/t");
// 前月末日
echo date("Y/m/d", mktime(0,0,0,date("m"),0,date("Y")) );

ファイルアップロード

  • 画面
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
    <title>ファイル名が日本語のファイルをアップロード</title>
    </head>
    <body>
      <h4>ファイルアップロード</h4>
      <form action="upload.php" method="post" enctype="multipart/form-data"> <!-- ここポイント -->
        <input type="file" name="upload"/><br />
        <input type="submit" value="送信" />
      </form>
    </body>
    </html>
  • 受け側
    <?php
    //ファイルが送信されている場合のみ処理を実行
    if( $_FILES )
    {
      //ファイル名をSHIFT-JISにエンコーディング
      $filename = mb_convert_encoding( $_FILES['upload']['name'], 'SHIFT-JIS'); // これポイント
      $uploadfile = "/var/tmp/test/" . $filename;
      move_uploaded_file( $_FILES['upload']['tmp_name'], $uploadfile );
    }
    ?>

プロキシ経由でHTTPリクエスト

$proxy = array(
	'http' => array(
		'proxy' => 'tcp://<プロキシのアドレス>:<プロキシのポート番号>',
		'request_fulluri' => true,
		),
	);
$proxy_context = stream_context_create($proxy);
$raw = file_get_contents("<アクセスするURL>", false, $proxy_context);

var_dump($raw);

Smarty

PDOでSQL Serverに接続

$pdo = new PDO("odbc:DRIVER={SQL Server};UID=<USER_ID>;PWD=<PASSWORD>;DATABASE=<DB_NAME>;SERVER=<SERVER_NAME>\\<INSTANCE_NAME>" 
       , "<USER_ID>", "<PASSWORD>");

ファイル有無確認

$filename = 'hogehoge.jpg';

if (file_exists($filename)) {
   print "$filename ファイルがありました。";
} else {
   print "$filename ファイルがありません。";
}

ファイル読み込み

$filedata = file_get_contents('hogehoge.txt');

ファイル書き込み

$fp = fopen("test.txt", "w"); // w:上書き a:追加
fwrite($fp,"hogehoge");
fclose($fp);

CSVファイル読み込み

$filedata  = file_get_contents('hogehoge.txt');
$file_line = split("\n", $filedata ); // 行単位に分割
foreach($file_line as $line) {
	list($data1,$data2,$data3) = split("\t", $line); // TABで分割
	echo "1:" . $data1 . " / 2:" . $data2 . " / 3:" . $data3 ."\n";
}

foreach

foreach ($array as $value) {
    echo $value;
}

function

  • 値渡し
    function ($hoge, $fuga) {
      return $hoge . $fuga;
    }
  • 値参照
    function ($hoge, $fuga, &$hogefuga) {
      $hogefuga = $hoge . $fuga;
    }

MIBのエラーが出たら

  • netsnmpをインストールしてみる
  • 環境変数にMIBSとMIBSDIRを入れてみる
    MIBS=ALL
    MIBSDIR=C:\PHP5\extras\mibs

配列の配列の重複削除

$data = array(
    array("id" => "1", "data" => "0"),
    array("id" => "2", "data" => "200"),
    array("id" => "2", "data" => "0"),
    array("id" => "2", "data" => "200")
);

$tmp = array();
foreach($data as $key => $val){
    if(!in_array($val,$tmp)){
        $tmp[] = $val;
    }
}
$data = $tmp;

CentOS 5.6以降でPHP5.3

  • 本体とか
    yum erase php
    yum erase php-common
    yum install php53
    yum install php53-*
  • PEAR
    yum install php-pear
    pear upgrade --force Archive_Tar
    pear upgrade --force Console_Getopt
    pear upgrade PEAR

IIS8+PHP5



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Tue, 26 Mar 2013 17:03:09 JST (1724d)