トップ  > メモ一覧  > カテゴリ「処理・表現」の絞り込み結果 : 91件

91件中 1 〜 10 表示  1 | 2 | 3 | 4 ... 次の10件> 最後»

No.4680【引用】PHP で文字列に機種依存文字が含まれているかどうか判定するクラス

PHP で文字列に機種依存文字が含まれているかどうか判定するクラス

2013年01月31日 16:00

PHP で与えられた文字列に機種依存文字が含まれているかどうか
判別するためのクラスを作ってみました。

msng/PlatformDependentChars · GitHub

使い方はコードの後で。

<?php class PlatformDependentChars { static public function check($str, $input_encoding = false, $to_encoding = 'SJIS') { if (! $input_encoding) { $input_encoding = mb_internal_encoding(); }...

引用元

更新:2013/01/31 19:13 カテゴリ: PHP  > 処理・表現 ▲トップ

No.4581 ディレクトリを再帰的に

php: ディレクトリを再帰的に
  function chmod_recursive($path, $mode = 0777)
  {
    $d = dir($path);
    $base_path = $path;
    while (false !== ($entry = $d->read()))
    {
      if ($entry == '.' || $entry == '..') continue;
      $path = sprintf('%s/%s', $base_path, $entry);
      chmod($path, $mode);

      if (is_dir($path))
      {
        self::chmod_recursive($path, $mode);
      }
    }
  }



更新:2012/08/22 22:55 カテゴリ: PHP  > 処理・表現 ▲トップ

No.4352【引用】クラス定数を動的に指定する

クラス定数を動的に指定する
Posted by 1000k on 2010年11月15日 Leave a comment (0) Go to comments

可変変数を使えば、動的に変数名や関数名を指定できます。 簡単な例だと、下のようなことができます。

?

1
2
3

$a = 'hello' ;
${ $a } = ' world!' ;  // $hello = ' ...

引用元

更新:2012/03/19 12:49 カテゴリ: PHP  > 処理・表現 ▲トップ

No.749 デバッグ

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$isActive = 1;
$isExit   = 1;
$isEcho   = 1;
$isAdd    = 0;
$file = "/tmp/test.log";
$a = '';
if ($isActive) {
$_type = 'wb';if ($isAdd) $_type = 'a';$fp = fopen($file, $_type);ob_start();
var_dump(__LINE__, $a);// !!!!!!!
$out=ob_get_contents();fwrite( $fp, $out . "\n" );ob_end_clean();fclose( $fp );if ($isEcho) echo $out;if ($isExit) exit;
}
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$isActive = 1;
$isExit   = 1;
$isEcho   = 1;
$isAdd    = 0;
if ($isActive) {
  $type = 'wb';
  if ($isAdd) $type = 'a';
  $fp = fopen("/tmp/test.log", $type);
  ob_start();
  var_dump($message);
  $out=ob_get_contents();
  fwrite( $fp, $out . "\n" );
  ob_end_clean();
  fclose( $fp );
  if ($isEcho) echo $out;
if ($isExit)  exit;
}
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$fp = fopen("/tmp/test.log", "a");
$sss = "\n" . date('YmdHis');
fwrite( $fp, $sss . "\n" );
ob_start();
var_dump($var);
$out=ob_get_contents();
fwrite( $fp, $out . "\n" );
ob_end_clean();
fclose( $fp );
exit;
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


要所要所に
var_dump(__LINE__);
を入れるべし!

ファイルはなしの状態でやること!(アパッチ君おまかせ)


echo '<pre>';
var_dump($results);
echo '<pre>';
exit;

更新:2011/08/18 08:16 カテゴリ: PHP  > 処理・表現 ▲トップ

No.3869【引用】それでも僕が、エラー制御(抑制)演算子&quot;@&quot;を使う理由

それでも僕が、エラー制御(抑制)演算子"@"を使う理由
PHP
PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とご飯と甘いもの @ sotarok
というエントリーを読みました。このエントリー自体は有意義なんで同意なんですが、"@"を使うべきでないなんてコンセンサスができたら残念なので、一応、逆説を提示しておきます。僕が書いても影響力なんてないですけど、一応、言うべきことは言っとこうかと。

始める前に、本質的なところ

終的に$qに...

引用元

更新:2011/07/01 20:36 カテゴリ: PHP  > 処理・表現 ▲トップ

No.360 環境変数一覧

PHP:$_SERVER サーバ環境変数

PHPでは、サーバに関する環境変数はグローバル変数$_SERVERに格納されます。
HTTP_REFERERやREMOTE_ADDR、PHP_SELFなどスクリプト構築において欠かせない変数群を簡単に取得できるので、それぞれ暗記しておいて損はないです。

$_SERVER['GATEWAY_INTERFACE'] CGIのバージョン
$_SERVER['SERVER_NAME'] サーバ名
$_SERVER['SERVER_SOFTWARE'] サーバID
$_SERVER['SERVER_PROTOCOL'] プロトコル名・リビジョン(HTTP/1.0)
$_SERVER['REQUEST_METHOD'] リクエストの種類(HEAD・POST・GET・PUT等)
$_SERVER['QUERY_STRING'] クエリーを格納
$_SERVER['DOCUMENT_ROOT'] サーバのルートディレクトリ
$_SERVER['HTTP_ACCEPT'] Acceptヘッダの内容
$_SERVER['HTTP_ACCEPT_CHARASET'] Accept-Charasetヘッダの内容(eucなど)
$_SERVER['HTTP_ACCEPT_ENCODING'] Accept-Charasetヘッダの内容(gzipなど)
$_SERVER['HTTP_ACCEPT_LANGUAGE'] Accept-Languageヘッダの内容(jpなど)
$_SERVER['HTTP_CONNECTION'] Connectionヘッダの内容(Keep-Aliveなど)
$_SERVER['HTTP_HOST'] Hostヘッダの内容
$_SERVER['HTTP_REFERER'] 現在のページへのリンク元のURLを格納。
※ブラウザによっては設定しない場合や'Hidden-Referrer'などと設定する場合があり、必ずしも取得できるとは限らない。
$_SERVER['HTTP_USER_AGENT'] User_Agentヘッダの内容
(compatible; MSIE 6.0; Windows NT 5.0など)
$_SERVER['REMOTE_ADDR'] クライアントのIPアドレス
$_SERVER['REMOTE_PORT'] クライアントマシンで使用されているポート番号
$_SERVER['SCRIPT_FILENAME'] 実行中のスクリプトの絶対パス
$_SERVER['SERVER_PORT'] サーバで使用されているポート番号
$_SERVER['SERVER_SIGNATURE'] サーバのバージョン・ヴァーチャルホスト名
$_SERVER['PATH_TRANSLATED'] 実行中のスクリプトの物理パス
$_SERVER['SCRIPT_NAME'] 実行中のスクリプトのパス
$_SERVER['REQUEST_URI'] 指定されたURI
$_SERVER['PHP_SELF'] 実行中のスクリプトのドキュメントルートに対する相対パス
※PHPスクリプトなどで、自$_SERVER[’HTTP_X_FORWARDED_FOR’]身にフォームを送信したい場合などにactionにこの変数を設定することが多い。
$_SERVER['HTTPS']  

投稿者 wing : 2005年09月19日 13:54

== ■プロキシを通す場合にクライアントのIPを知る
$_SERVER['HTTP_X_FORWARDED_FOR']

更新:2011/05/13 12:44 カテゴリ: PHP  > 処理・表現 ▲トップ

No.3391 CSV読み込み

//fgetcsvの場合
//fgetcsv(handle,length,delimiter,enclosure,escape)
$fileName = "file.cgi";
$file = fopen($fileName,"r");

while(!feof($file)){

    $str = fgetcsv($file);

    print "$str[0]";
    print "$str[1]
"; } fclose($file);

引用元

更新:2011/01/24 20:04 カテゴリ: PHP  > 処理・表現 ▲トップ

No.3003 phpをコマンドラインから実行したときに与えられた引数を取得する方法(php)

phpをコマンドラインから実行したときに与えられた引数を取得する方法(php)

■使用方法 以下の変数に引数が格納されるので、phpコード中で使用できる。

$argc : 引数の数
$argv : 引数が格納された配列

■コード例

・command_test.php

<?php

switch $argc
{
  case 1:
    // 引数が与えられていないとき
    echo "使用方法: command_test.php ヘッダー フッター \n";
    break;
  case 2:
    // 片方足りないとき
    echo "引数に フッター を入力してください。\n";
    break;
  default:
    // 正常に引数が与えられたとき
    echo $argv[2] . "\n";
    echo "てすと\n";
    echo $argv[3] . "\n";
    break;
}

・コマンドラインから実行

$ command_test.php ここから ここまで

ここから
てすと
ここまで

■phpコマンドのオプション(翻訳中)

$ php -h
Usage: php [-q] [-h] [-s [-v] [-i] [-f <file>] |  {<file> [args...]}
  -q             Quiet-mode.  Suppress HTTP Header output.
  -s             Display colour syntax highlighted source.
  -f <file>      Parse <file>.  Implies `-q'
  -v             Version number
  -C             Do not chdir to the script's directory
  -c <path>      Look for php.ini file in this directory
  -a             Run interactively
  -d foo[=bar]   Define INI entry foo with value 'bar'
  -e             Generate extended information for debugger/profiler
  -z <file>      Load Zend extension <file>.
  -l             Syntax check only (lint)
  -m             Show compiled in modules
  -i             PHP information
  -h             This help

引用元

更新:2010/09/19 01:47 カテゴリ: PHP  > 処理・表現 ▲トップ

No.2606 画像の写真の向きを修正する@PHP

画像の写真の向きを修正する@PHPAdd Star

写真アップロードの際の上向きがうまく取れないか、挑戦してみた。

写真には上向き下向きや、WEBカメラの場合は左右反転させる、一口にデジカメ写真といっても様々なものがある。

Windowsのサムネイルはひどい。

Windowsのマイピクチャのサムネイルが自動回転しない。手動回転させると「劣化するよ」とお節介な警告が出る。GNOMENautilusだとマイピクチャはサムネイルをキチンと解釈してくれる。Ubuntuを使ってて自動補正されて驚いた。上下の補正をしてくれる。同じ写真をWindowsとnautilusでプレビューしたときにハッキリと違いが分かる。

EXIF情報を活用する。

デジカメ写真にはデータが埋め込まれている(EXIFモジュールで見られる)

デジカメに埋め込まれている、向き情報は「Orientation」配列に入っている。

Orientationの回転パターンの定義。

Orientationの値で、写真プレビュー時の処理が定義さている。

Exif-orientation-1:通常
Exif-orientation-2:左右反転
Exif-orientation-3:180°回転
Exif-orientation-4:上下反転
Exif-orientation-5:反時計回りに90°回転 上下反転
Exif-orientation-6:時計回りに90°回転
Exif-orientation-7:時計回りに90°回転 上下反転
Exif-orientation-8:反時計回りに90°回転

方向を修正する関数。

これを元に、PHPで向きを修正する関数を作ってみた。

<?php
  public function make_orientation_fixed_blob($raw)
  {
    $img = new Imagick();
    $ver = $img->getVersion();
    
    $img->readImageBlob($raw);
    $orientation = 0;
    if( method_exists($img, "getImageOrientation") ){
      $orientation = $img->getImageOrientation();
    }
    if(!$orientation && function_exists("read_exif_data")){
      $exif = read_exif_data($this->image_path("original").DIRECTORY_SEPARATOR.$this->file_name());
      $orientation = $exif['Orientation'];
    }
    switch((int)$orientation) {
      case 0:#未定義
        break;
      case 1:#通常
        break;
      case 2:#左右反転
        $img->flopImage();
        break;
      case 3:#180°回転
        $img->rotateImage(new ImagickPixel(), 180 );
        break;
      case 4:#上下反転
        $img->flipImage();
        break;
      case 5:#反時計回りに90°回転 上下反転
        $img->rotateImage(new ImagickPixel(), 270 );
        $img->flipImage();
        break;
      case 6:#時計回りに90°回転
        $img->rotateImage(new ImagickPixel(), 90 );
        break;
      case 7:#時計回りに90°回転 上下反転
        $img->rotateImage(new ImagickPixel(), 90 );
        $img->flipImage();
        break;
      case 8:#反時計回りに90°回転
        $img->rotateImage(new ImagickPixel(), 270 );
        break;
    }
    $raw = $img->getImageBlob();
    unset($img);
    return $raw;
  }

動作に必要なモジュールはImageMagick/Exif。

ImageMagickのインストールの確認
$> php -r '$img = new Imagick();print_r($img->getVersion());'

ImageMagickはデフォルトインストールされていないことが多い。ImageMagickないときはGDを使えばいい。

EXIF関連の確認

これは、使えることが多い。

$> php -i | grep exif

使用例:写真の向き調整は次に場所の使用しています。

デジカメ写真をアップロード出来ると楽しいな。でも向きが正しくないので悔しかった。

ということで、画像アップロードの際に組み込んでおいた。

実際に動作させてみて特に問題はありませんでした。

引用元

更新:2010/06/04 19:12 カテゴリ: PHP  > 処理・表現 ▲トップ

No.2499 重み付きの抽選ロジック

重み付きの抽選ロジックAdd Star

$targets  = array(500,300,100,99,1);  // 抽選対象
$sum      = array_sum($targets);      // レート合計
$total    = 0;                        // レート累計
$rand     = rand(1, $sum);            // 乱数

foreach($targets as $key => $value) {
  $total += $value;
  if ($rand <= $total) {
    $result = $key;
    break;
  }
}
echo $result;  // 抽選結果($targetsの添字)

補足:

・$sumが100になるように調整すれば1%きざみ、1000であれば0.1%きざみのレートになる

rand(1, $sum)の開始位置をスライドする事により、抽選補正などができる。例)rand($sum,$sum)で100%

引用元

更新:2010/05/14 14:50 カテゴリ: PHP  > 処理・表現 ▲トップ
91件中 1 〜 10 表示  1 | 2 | 3 | 4 ... 次の10件> 最後»

FuelPHP

Mac

web開発

プロマネ

マネタイズ

プレゼン

webサービス運用

webサービス

Linux

サーバ管理

MySQL

ソース・開発

svn・git

PHP

HTML・CSS

JavaScript

ツール, ライブラリ

ビジネス

テンプレート

負荷・チューニング

Windows

メール

メール・手紙文例

CodeIgniter

オブジェクト指向

UI・フロントエンド

cloud

マークアップ・テキスト

Flash

デザイン

DBその他

Ruby

PostgreSQL

ユーティリティ・ソフト

Firefox

ハードウェア

Google

symfony

OpenPNE全般

OpenPNE2

Hack(賢コツ)

OpenPNE3

リンク

個人開発

その他

未確認

KVS

ubuntu

Android

負荷試験

オープンソース

社会

便利ツール

マネー

Twig

食品宅配

WEB設計

オーディオ

一般常識

アプリ開発

サイトマップ

うずら技術ブログ

たませんSNS

rss2.0