トップページphp
1001コメント333KB

【PHP】下らねぇ質問はID出して書き込みやがれ 96

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/05/28(金) 16:33:44ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 95
http://pc11.2ch.net/test/read.cgi/php/1271636105/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0538nobodyさん2010/06/18(金) 14:59:35ID:J92h6I5e
僕は>>536の意見に賛成
0539nobodyさん2010/06/18(金) 15:11:06ID:???
RDBMSがなんのためにスキーマ、テーブル、カラムで空間を分けてるか考えたら
結合のときにカラムのエイリアスを付けなくていい
0540nobodyさん2010/06/18(金) 15:14:44ID:???
すまそ途中送信
RDBMSがなんのためにスキーマ、テーブル、カラムで空間を分けてるか考えたら
結合のときにカラムのエイリアスを付けなくていいという理由だけで
接頭辞を乱用すべきじゃないね
05415352010/06/18(金) 15:21:55ID:PtT48P2n
確かに接頭辞を付けると無駄にフィールド名が長くなるので
乱用すべきでないというのは分かります。

ただ、テーブル数が多くなってくると、やはり接頭辞を付けた方が
ソースが分かりやすいんです。WordPressやMTなんかも接頭辞を付けてますし。

で、>>536-540さんの意見を総合すると、
$user = mysql_fetch_array($res);
というようにテーブル名の配列に代入する方法が一般的なんですかね。
0542nobodyさん2010/06/18(金) 16:42:15ID:???
これ見てよ↓
http://livedoor.2.blogimg.jp/agomesu/imgs/4/f/4faec292.png
ばらまこうぜ!
0543nobodyさん2010/06/18(金) 18:19:48ID:df2633Ti
>>525さんのURLからPHP 5.3のインストーラーをDLして
インストールしたんですが
これって設定の変更とかせずにそのまますぐに使えますか?
0544nobodyさん2010/06/18(金) 18:20:53ID:???
>>525
呼んでるぞー
0545nobodyさん2010/06/18(金) 18:22:19ID:9ev+TnD6
これすぐ使えるぜ


http://itpro.nikkeibp.co.jp/article/COLUMN/20070507/270089/
bamcompileでスタンドアロンEXEアプリを作ろう - PHP TIPS:ITpro
0546nobodyさん2010/06/18(金) 18:25:10ID:UII6mL4g
APCを使おうと思ってさくらのレンタルサーバーに組み込んだんですが、
どうも上手く動作してないような気がします。

wwwフォルダ以下にある色んなphpやjpgなどを開いたら、
↓のapc.phpキャプチャ画像の2〜4番目あたりが変化しそうな気がするのですが、全く変わりません。
この状態だとキャッシュされているのが、その時開いたapc.phpだけという意味ですよね?

どこが悪いのかさっぱりです。
分かる方いましたらどうかよろしくお願いします。


【組込手順】
 ・本家からAPC.tgzダウンロード→解凍→サーバーにAPCフォルダとしてアップ
 ・cd APC
 ・phpize
 ・./configure --enable-apc
 ・make
 ・modulesにapc.soができたのを確認

【主なフォルダ/ファイル構成】
home
|
└myid
    |
   ├APC
    |  └modules
    |       └apc.so
    |
   └www
        └html/phpなど
0547nobodyさん2010/06/18(金) 18:25:32ID:9ev+TnD6
サーバー環境付きで動くフルセットはこれ使えよ。

XAMPP Windows版 1.7.3 51 MB 自己解凍型RAR アーカイブ

http://www.apachefriends.org/jp/xampp-windows.html#2671
05485462010/06/18(金) 18:26:25ID:UII6mL4g
【apc.php】
ttp://up.mugitya.com/img/Lv.1_up120571.jpg
ttp://up.mugitya.com/img/Lv.1_up120572.jpg
ttp://up.mugitya.com/img/Lv.1_up120573.jpg
ttp://up.mugitya.com/img/Lv.1_up120574.jpg

【phpinfo】
ttp://up.mugitya.com/img/Lv.1_up120575.jpg
ttp://up.mugitya.com/img/Lv.1_up120576.jpg
0549nobodyさん2010/06/18(金) 18:30:17ID:???
Linuxなら
apt-get install lamp-server とコマンドを打つだけで
Apache MySQL PHPが自動でインストールされるのに

Windowsは非常に面倒だな
0550nobodyさん2010/06/19(土) 05:25:01ID:9jWjEAKJ
PHPで4バイト整数のファイル入出力はどうやればいいですか。
0551nobodyさん2010/06/19(土) 05:41:28ID:???
fgets fputs
0552nobodyさん2010/06/19(土) 09:08:29ID:???
fread, fwrite
0553nobodyさん2010/06/19(土) 19:33:03ID:PoSyZtDI
<?php
header('Content-Type: text/html; charset=UTF-8');
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>
<form method="POST" action="">
<textarea name="replace" cols=20 rows=4></textarea>
<input type="submit" value="replace!!">
</form>
<?
if(isset($_POST["replace"])){
$before = $_POST["replace"];
echo $before;
echo mb_detect_encoding($before);

$after = str_replace("です", "でした", $before);

echo $after;
echo mb_detect_encoding($str)."<br>";
}

フォームで文字列置換をやりたいんだけど、うまくいきません。
置換前の文字列とその文字コード、置換後の文字列とその文字コードを表示させてますが、
「あいうえおです」みたいな日本語を入力しても、該当箇所が置換されないどころか文字列自体が表示されません。
しかも文字コードはどちらもSJISになっちゃいます。
どうしたらうまく置換できるのでしょうか。
0554nobodyさん2010/06/19(土) 19:39:59ID:???
>>553
問題を細かく切り分けてみそ
0555nobodyさん2010/06/19(土) 19:57:20ID:???
>>553
mb_internal_encoding("UTF-8");
0556nobodyさん2010/06/19(土) 19:58:59ID:9jWjEAKJ
パスの内部コードを取得する方法ありますか。
05575532010/06/19(土) 20:31:04ID:PoSyZtDI
<?php
header('Content-Type: text/html; charset=UTF-8');
mb_http_output("UTF-8");
mb_internal_encoding("UTF-8");
ob_start("mb_output_handler");
?>
<META httpequiv="Content-Type" content="text/html;charset=UTF-8">
<form method="POST" action="">
<textarea name="replace" cols=20 rows=4></textarea>
<input type="submit" value="replace!!">
</form>
<?
if(isset($_POST["replace"])){
$before = $_POST["replace"];
echo $before;
echo mb_detect_encoding($before);
}

とりあえずPOSTされたデータを表示させることから解決してみようと
>>555のmb_internal_encoding("UTF-8");を追加し、metaタグも入れてみましたが、
FirefoxではPOSTされたデータはちゃんと表示され、文字コードもUTF-8と出るのですが、
IEでは日本語を入力した場合、POSTされたデータは表示されない上、文字コードもSJISと出てしまいます。

ヘッダーもUTF-8にしてるはずなのでPOSTされたデータはUTF-8だと思ったのですが・・・
ヘッダーの設定方法がおかしいのでしょうか?
0558nobodyさん2010/06/19(土) 21:36:37ID:???
var_dump($_POST);
してIEとFirefoxで比べてみたらいい
0559nobodyさん2010/06/19(土) 22:46:46ID:9jWjEAKJ
$n = 123456; を32bitのバイナリとしてファイルへ書き出すには、
int2bin($n) のように変換するしかないですか? 既存関数のみで可能ですか。
fread, fwriteだとテキストで123456が出力されると思うのですが。


function int2bin($x){ return sprintf("%c%c%c%c", $x&255, ($x>>8)&255, ($x>>16)&255, ($x>>24)&255 ); }
function bin2int($s){ return ord ($s)+(ord ($s[1])<<8)+(ord ($s[2])<<16)+(ord ($s[3])<<24); }
0560nobodyさん2010/06/19(土) 23:01:00ID:???
intval
0561nobodyさん2010/06/20(日) 01:20:59ID:twag0hRe
forでaaa aab aac ...aaz aba abb abc ...zzy zzzというように3文字の文字列を表示するにはどうしたらいいでしょうか?
0562nobodyさん2010/06/20(日) 01:43:30ID:???
for ($a='aaa'; $a!='aaaa'; $a++) echo $a.' ';
0563nobodyさん2010/06/20(日) 01:55:32ID:???
>>562
すごい。そんな技できるんですね。
ありがとうございました。
0564nobodyさん2010/06/20(日) 01:59:37ID:qnX6bksX
ベーシック認証のページにログインしてHTMLを取得するには
どうすればいいでしょうか?
例えば、URL: http://example.com/basic.htmlと言うベーシック認証の
ページがありID:foo / Passwd:barの場合
$ary = file0("http://example.com/basic.html");じゃ取得できません。
どうすればいいのでしょうか?
0565nobodyさん2010/06/20(日) 02:06:30ID:???
>>557
ob_start("mb_output_handler");
消したら動いたけど。 ie8/fx3.6
0566nobodyさん2010/06/20(日) 02:09:23ID:???
>>559
pack
unpack
0567nobodyさん2010/06/20(日) 02:10:51ID:???
>>564
Basic認証がかかったページにアクセスする方法 - PHPプロ!Q&A掲示板
http://www.phppro.jp/qa/212
0568nobodyさん2010/06/20(日) 02:23:15ID:???
>>546
apc.stat を off にしてphpソースを変更
実行して変更が反映されてなければ間違いなくキャッシュされてる

jpgのくだりはよく分からないけど
キャッシュされるのはphpのバイトコードだよ
パースの手間が無くなる分軽くなる
0569nobodyさん2010/06/20(日) 02:48:26ID:???
>>567
ありがとうございます。
0570nobodyさん2010/06/20(日) 09:28:26ID:???
>>557
http://hain.jp/index.php/tech-j/2007/02/13/p125
0571nobodyさん2010/06/20(日) 11:15:41ID:OE54gla8
Rubyスレで質問したところ、PHPスレで聞けとのことでしたので、ここで質問します

1.PHPのsystem()で.rbを実行するする
2.そのrbの中では色々な処理をする
3.処理が終わったらPHPにその処理結果を戻す
4.PHPでその結果を条件分岐か何かで判断をする
というようなWebページを作ろうとしています

これって可能ですか?
上2行は確認出来たのですが、結果をPHPに戻すのは無理なような気がします
どうですか?
0572nobodyさん2010/06/20(日) 11:37:34ID:???
できます。やり方は教えません。
0573nobodyさん2010/06/20(日) 12:10:32ID:???
Rubyで出力した内容がsystem()の2番目の引数に返るんじゃね?

と、Ruby知らなくてPHP中級な俺が言ってみる。
0574nobodyさん2010/06/20(日) 13:45:50ID:???
2番目に入るのは終了ステータス
標準出力をキャプチャしたかったら popen(), proc_open() などを使う
0575nobodyさん2010/06/20(日) 14:25:20ID:???
>>574
PHPならもっと便利な関数があるはずだろ。
0576nobodyさん2010/06/20(日) 14:56:32ID:Zg4Yd11e
みなさんが「このソースは読みやすい」と思うコーディングをしている
オープンソースのPHPシステムを教えて下さい
0577nobodyさん2010/06/20(日) 15:13:03ID:???
formから放り込んだ日本語をImageTTFTextで縦書きにしたいのですが、句読点やーがおかしな事になります。
正しく表示する方法はないのでしょうか?
0578nobodyさん2010/06/20(日) 17:03:38ID:???
>>562
これキモイw
0579nobodyさん2010/06/20(日) 17:31:57ID:???
>>576
有名どころなら何でも
>>577
>>1
0580nobodyさん2010/06/20(日) 17:43:38ID:7fNS8+df
$FileNameTMP = realpath($FileName);
$FileType = mime_content_type($FileNameTMP);
header("Content-Type:" .$FileType);
readfile($FileName);

こんな感じのソースを書いたのですが、IEだとブラウザでの表示ではなくて保存ダイアログが表示されるようになってしまいます。
Firefoxの場合は問題なく表示できます。
Firefoxも空のテキストファイルだと保存ダイアログが表示されるようになります。
画像ファイルやPDFファイルなどをブラウザで開ける様になる決方法は無いでしょうか?
0581nobodyさん2010/06/20(日) 17:59:44ID:???
header('Content-Disposition: inline; filename="example.pdf"');
header('Content-Type: application/pdf');
0582nobodyさん2010/06/20(日) 18:02:31ID:7fNS8+df
>>581
それやるとFirefoxでも問答無用で保存ダイアログが表示される。
やりたいのは>>580でも書いていますが保存ダイアログを出したいのではなくて
ブラウザ上で表示したい。
0583nobodyさん2010/06/20(日) 18:04:12ID:???
>>582
保存するなら >Content-Disposition: attachment
表示するなら >Content-Disposition: inline
0584nobodyさん2010/06/20(日) 18:04:41ID:???
>>579
失礼しました。
【OS名】CentOS5
【PHPのバージョン】5.3
【連携ソフトウェア】
【質問内容】
formから放り込んだ日本語をImageTTFTextで縦書きにしたいのですが、句読点やーがおかしな事になります。
正しく表示する方法はないのでしょうか?
過去ログでは縦書き専用フォントで・・・とかが見つかったのですが肝心の縦書き専用フォントがぐぐっても見つけられません。
0585nobodyさん2010/06/20(日) 18:22:53ID:7fNS8+df
>>581
すみませんでした。
inlineの部分を見落としていました。
IEだとbmpファイルはこの方法でも保存ダイアログが出てしまいます。
また空テキストファイルだとFirefoxだと保存ダイアログがでます。
IEでは空テキストファイルでは保存ダイアログはでません。
これらを解決する方法は無いでしょうか?
0586nobodyさん2010/06/20(日) 18:27:15ID:7fNS8+df
追加
空テキストファイルのMIMEを見ると
application/x-empty
となっています。
application/x-emptyを調べてみてもいまいちどういうときにできるMIMEなのかわかりません。
application/x-emptyをtext/plain変換してやらないと駄目って事ですかね?
0587nobodyさん2010/06/20(日) 19:43:42ID:???
たとえばapplication/zipをinlineで送られてもブラウザはどうしようもないだろ
mime-typeを適切に設定しろ
それだけだ
0588nobodyさん2010/06/20(日) 19:49:09ID:7fNS8+df
>>587
??????
0589nobodyさん2010/06/20(日) 20:02:32ID:???
>>584
ID出すことを忘れているようだけど、ともあれ、本題についてだけど、それは難しい。
フォントをいじってみてはどうか。
0590nobodyさん2010/06/20(日) 23:22:44ID:V/OxbjwX
filesize()は使わない方が良い。
他でオープンされていると0になるし、
値がキャッシュされるから実サイズと異なる値を返すことあり。頻繁な更新されている物だと。
0591nobodyさん2010/06/21(月) 00:35:22ID:???
>>584
ImageTTFTextって使ったことないけど
表示する文字が句読点かどうか調べて
句読点ならは座標をずらせばいいんじゃない?

ハイフンだったら縦棒(|など)に変換するとか。
0592nobodyさん2010/06/21(月) 00:59:52ID:oQjyj8CX
複数階層のmkdir_rなんですが。これだと日本語パスで失敗します。
\を含むため。どう直せばいいですか。

function mkdir_r( $path ) {
if(is_dir($path)) return;
$path = str_replace( '\\', '/', $path);
$parts = array_filter ( explode('/', $path), 'strlen' );
$s=""; foreach ($parts as $part) { $s.="$part/"; @mkdir($s); } }
05935922010/06/21(月) 01:12:43ID:oQjyj8CX
自己解決しました
05945922010/06/21(月) 01:34:09ID:oQjyj8CX
これね。

function mkdir_r( $t ) {
$s=array();
while( !is_dir($t) ) { $s[] = $t; $t=dirname($t); }
for( $n=count($s)-1; $n>=0; $n-- ) mkdir($s[$n]); }
0595nobodyさん2010/06/21(月) 01:43:11ID:???
>>594
そんな関数作らんでもmkdirにrecursiveオプションがあるんだからそれ使えばいいのに
0596nobodyさん2010/06/21(月) 12:33:30ID:oQjyj8CX
PHP4 PHP5に依存しないことが大事。
0597nobodyさん2010/06/21(月) 12:51:52ID:???
PHP4でのサンプル、mkdirのマニュアルページに載ってるけど、
pathinfoとかdirnameの日本語の不具合って直ってないよね?
http://bugs.php.net/bug.php?id=37738
0598nobodyさん2010/06/21(月) 18:06:11ID:oQjyj8CX
デストラクタの時に値が保存されないんですが。どうすれば値が保存されますか。

<?php
$a = new A();
$a->add();
$a->add();

class A {
var $num;
function A() { $this->num=0; register_shutdown_function( array( $this, '_A' ) ); }
function add() { $this->num++; }
function _A() { echo "num={$this->num} \n"; }
}
?>
0599nobodyさん2010/06/21(月) 18:16:36ID:???
>>591
「〜」の処理とか
> 座標をずらせばいいんじゃない?
これとか、多分素直にさせてくれないよ。

動くとわりと面白い系だから一度は試して遊ぶといいかも。
0600nobodyさん2010/06/21(月) 18:32:23ID:???
>>598
保存って具体的にどうしたいの?
0601nobodyさん2010/06/21(月) 18:35:41ID:oQjyj8CX
num=2 が出力したいんですが。
0602nobodyさん2010/06/21(月) 18:41:50ID:???
そのままコピペしてhoge.phpというファイルに
セーブして実行してみた。

% php hoge.php
num=2

出るじゃん。
0603nobodyさん2010/06/21(月) 18:42:55ID:oQjyj8CX
PHP4.2程度できる方法ありますか。
0604nobodyさん2010/06/21(月) 18:46:36ID:???
4系だと出来んな。
グローバルに渡すしか。
0605nobodyさん2010/06/21(月) 18:47:44ID:oQjyj8CX
外部変数にしたら出来るんですが。
これだとクラス変数と別に変数用意する手間が掛かって良くないです。
クラスの値が破壊、初期化されてからregister_shutdown_functionが起動すると思います。
回避する方法ないですか。PHP4です。



$Anum=0;
$a = new A();
$a->add();
$a->add();

class A {
function A() { global $Anum; $Anum=0;
register_shutdown_function( array( $this, '_A' ) ); }
function add() { global $Anum; $Anum++; }
function _A() { global $Anum; echo "num={$Anum} \n"; }
}
0606nobodyさん2010/06/21(月) 19:00:35ID:oQjyj8CX
グローバル変数とクラスAをまとめたクラス作ったら成功しました。これで生き残る。

<?php

$b = new B();
$b->add();
$b->add();


class B {
var $Anum=0;
var $a;
function B() { $this->a = new A(); }
function add() { $this->a->add(); } }


class A {
function A() { global $Anum; $Anum=0;
register_shutdown_function( array( $this, '_A' ) ); }
function add() { global $Anum; $Anum++; }
function _A() { global $Anum; echo "num={$Anum} \n"; } }

?>

0607nobodyさん2010/06/21(月) 19:09:33ID:???
PHP4系はオブジェクト指向まわりとかいろいろ
調子悪いので茨の道だぞ。
0608nobodyさん2010/06/21(月) 19:14:46ID:???
classBの $Anumと
classAの $Anum 別物じゃん。
結局BがAのインスタンスもってるだけで >>605と同じ・・・
0609nobodyさん2010/06/21(月) 19:16:50ID:???
PHP4環境ないから知らんけど
$a =& new A();
とかでしょどうせ。
0610nobodyさん2010/06/21(月) 19:27:13ID:oQjyj8CX
&付きでうまくいきました。有り無しの違いが分からない



<?php
$a = & new A(); $a->add();
$b = & new A(); $b->add(); $b->add();

class A {
var $num;
function A() { $this->num=0; register_shutdown_function( array( &$this, '_A' ) ); }
function add() { $this->num++; }
function _A() { echo "num={$this->num} \n"; } }

?>
0611nobodyさん2010/06/21(月) 19:29:54ID:???
&入れないとnew直後に別インスタンスにコピーされてしまう変態仕様だから。
PHP4 new演算子
とかでググれば出てくる。
0612nobodyさん2010/06/21(月) 19:30:42ID:oQjyj8CX
サンクス
0613nobodyさん2010/06/21(月) 19:34:20ID:???
PHP4はオブジェクトも値渡しだからな、よくはまる罠だった

>>598
>>609 + register_shutdown_function(array(&$this, '_A' ))
0614nobodyさん2010/06/21(月) 22:56:57ID:???
習い始めたときは既にPHP5の時代だった俺は運が良かったのか
0615nobodyさん2010/06/21(月) 23:23:53ID:oQjyj8CX
CURLのFTPアップロードで、
複数ファイルを持続接続でアップする方法ありますか。
毎回ログインする方法しか分かりません。
0616nobodyさん2010/06/21(月) 23:39:00ID:???
>>615
http://jp.php.net/manual/ja/function.curl-multi-exec.php
これが参考になるかな
0617nobodyさん2010/06/21(月) 23:46:41ID:oQjyj8CX
複数スレッドで動かせば、帯域を無駄なく使えて良いんですが。
PHP4だと>>616が使えないです。
FTPのログイン動作に3から10秒ほどかかるのでこの時間の転送量は0です。
ログイン省く方法無いですか。
0618nobodyさん2010/06/21(月) 23:58:15ID:???
なんでPHP5にする選択はしないの?鯖代なんて月数百円だろ。
0619nobodyさん2010/06/22(火) 02:55:15ID:???
よく分かんないけどFTPってそのまましゃべれないの?
0620nobodyさん2010/06/22(火) 03:50:07ID:???
二人としゃべらないといけないからちょっと面倒
0621nobodyさん2010/06/22(火) 09:02:05ID:???
さっさとせめてPHP5に乗り換えたほうがいいと思うけどね。
(そもそもPHP捨てたほうがいいというのは置いといてw)
0622nobodyさん2010/06/22(火) 09:11:04ID:???
PHPはC++のスクリプト版+追加機能のようなものでもっとも有望なスクリプト言語。
PHPからC++のコード生成出来たり、実行ファイルが作れればいいのだが。
追加機能は例えば、static_php.libを組み込むことで実現出来たり。
0623nobodyさん2010/06/22(火) 09:13:48ID:???
C++に翻訳するやつはここにあるんだけど。Windowsでは動かないらしい。だれか改良して対応してクリ。



HipHopはCentOSとFedora向けに開発されており、他のオペレーティングシステム上でのビルドは現在のところ機能しません。


HipHop for PHP
http://blog.candycane.jp/archives/295
0624nobodyさん2010/06/22(火) 10:21:03ID:???
改良して対応してくれって言うけど、その分の人件費はどうなるの?
なんでもWebだったらタダでやってくれると思ってないか?
0625nobodyさん2010/06/22(火) 10:41:41ID:???
Friendクラスも使えないしPHPダメでしょ。
まぁ使うけど。

5.3で静的遅延束縛が実装されて大分使いやすくなった。
0626nobodyさん2010/06/22(火) 12:37:56ID:???
C++のfriendキーワードの事か?
今頃取り入れたらそれこそPHPらしいって言われるな
0627nobodyさん2010/06/22(火) 18:42:11ID:ZnYDyWrv
ファイル読み込み処理ですけど
テキストデータの場合
fgets()を利用してループさせる。
file_get_contents()もしくはfile()でいっきに読み込む

どっちの方が効率がいい処理になるのでしょうか?
みなさんは何を基準にしてどの関数を利用するようにしていますか?
0628nobodyさん2010/06/22(火) 18:48:40ID:???
メモリに全部乗っかっちゃって大丈夫なら全部読んじゃうかも
0629nobodyさん2010/06/22(火) 18:49:19ID:???
内容次第だけど全部一気に読むとメモリ食うので一行ずつですむなら
そうする。
0630nobodyさん2010/06/22(火) 18:56:16ID:???
配列にデータいれる速度 
タブや改行区切りで済むなら一気読みでexplodeが最速。


一回目と二回目

file
10.944231987  14.324997901917

serialize
15.630096912384  10.502514839172

var_export
16.92795419693  13.347457885742

explode
1.0216579437256  1.743134021759
06316302010/06/22(火) 18:58:18ID:???
どれも一気読みで、一行読みとは比較していないが一気読み速いことはないだろう。
0632nobodyさん2010/06/22(火) 21:08:21ID:???
配列チェックでisset って使わなかったけど。isset ( $A[$n] )としたときに
勝手に$A[$n] =NULLがセットされる気がしてたから。
存在しない配列・変数は自動生成するもんだとおもってた。
しかし、今日気づいた。増えてなかった。
0633nobodyさん2010/06/22(火) 21:55:14ID:???
>>584
亀レスだけど縦書き試してみた。

<?php
$im=imagecreatefrompng('sample.png');
$bgcolor=imagecolorallocate($im,255,255,255);
$im=imagerotate($im,90,$bgcolor); //左90度回転
$black=imagecolorallocate($im,0,0,0);
$font='vSHGM.ttf'; //縦書き専用フォント
$size=22; $x=50; $y=50;
$text='「馬〜鹿、アホー」って書いてみるテスト。';
imagettftext($im,$size,0,$x,$y,$black,$font,$text);
$im=imagerotate($im,-90,$bgcolor); //右90度回転
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);
?>

ImageTTFTextのAngleを-90にするとガタガタになるんで、
元の図形を回転させてみた。
いちおう句読点や長音、ニョロ、小さい「っ」の位置は正しく表示される。
でも、もともとのフォントの形が…残念…
0634nobodyさん2010/06/22(火) 22:09:05ID:???
あ、縦書き専用フォントを使うのか。元をちゃんと読んでなかったorz
0635nobodyさん2010/06/22(火) 23:33:08ID:???
>>627
効率って、
同じようなことするのにソースコードの行数が少なくて済む効率?
実行時間の効率?
使用メモリの効率?
0636nobodyさん2010/06/23(水) 00:03:36ID:???
すべて
0637nobodyさん2010/06/23(水) 03:08:02ID:???
ならループさせない方が効率いい
■ このスレッドは過去ログ倉庫に格納されています