【PHP】下らねぇ質問はID出して書き込みやがれ 96
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/05/28(金) 16:33:44ID:???過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0577nobodyさん
2010/06/20(日) 15:13:03ID:???正しく表示する方法はないのでしょうか?
0580nobodyさん
2010/06/20(日) 17:43:38ID:7fNS8+df$FileType = mime_content_type($FileNameTMP);
header("Content-Type:" .$FileType);
readfile($FileName);
こんな感じのソースを書いたのですが、IEだとブラウザでの表示ではなくて保存ダイアログが表示されるようになってしまいます。
Firefoxの場合は問題なく表示できます。
Firefoxも空のテキストファイルだと保存ダイアログが表示されるようになります。
画像ファイルやPDFファイルなどをブラウザで開ける様になる決方法は無いでしょうか?
0581nobodyさん
2010/06/20(日) 17:59:44ID:???header('Content-Type: application/pdf');
0582nobodyさん
2010/06/20(日) 18:02:31ID:7fNS8+dfそれやるとFirefoxでも問答無用で保存ダイアログが表示される。
やりたいのは>>580でも書いていますが保存ダイアログを出したいのではなくて
ブラウザ上で表示したい。
0583nobodyさん
2010/06/20(日) 18:04:12ID:???保存するなら >Content-Disposition: attachment
表示するなら >Content-Disposition: inline
0584nobodyさん
2010/06/20(日) 18:04:41ID:???失礼しました。
【OS名】CentOS5
【PHPのバージョン】5.3
【連携ソフトウェア】
【質問内容】
formから放り込んだ日本語をImageTTFTextで縦書きにしたいのですが、句読点やーがおかしな事になります。
正しく表示する方法はないのでしょうか?
過去ログでは縦書き専用フォントで・・・とかが見つかったのですが肝心の縦書き専用フォントがぐぐっても見つけられません。
0585nobodyさん
2010/06/20(日) 18:22:53ID:7fNS8+dfすみませんでした。
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:???mime-typeを適切に設定しろ
それだけだ
0588nobodyさん
2010/06/20(日) 19:49:09ID:7fNS8+df??????
0589nobodyさん
2010/06/20(日) 20:02:32ID:???ID出すことを忘れているようだけど、ともあれ、本題についてだけど、それは難しい。
フォントをいじってみてはどうか。
0590nobodyさん
2010/06/20(日) 23:22:44ID:V/OxbjwX他でオープンされていると0になるし、
値がキャッシュされるから実サイズと異なる値を返すことあり。頻繁な更新されている物だと。
0591nobodyさん
2010/06/21(月) 00:35:22ID:???ImageTTFTextって使ったことないけど
表示する文字が句読点かどうか調べて
句読点ならは座標をずらせばいいんじゃない?
ハイフンだったら縦棒(|など)に変換するとか。
0592nobodyさん
2010/06/21(月) 00:59:52ID:oQjyj8CX\を含むため。どう直せばいいですか。
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); } }
0593592
2010/06/21(月) 01:12:43ID:oQjyj8CX0594592
2010/06/21(月) 01:34:09ID:oQjyj8CXfunction 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]); }
0596nobodyさん
2010/06/21(月) 12:33:30ID:oQjyj8CX0597nobodyさん
2010/06/21(月) 12:51:52ID:???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:???「〜」の処理とか
> 座標をずらせばいいんじゃない?
これとか、多分素直にさせてくれないよ。
動くとわりと面白い系だから一度は試して遊ぶといいかも。
0601nobodyさん
2010/06/21(月) 18:35:41ID:oQjyj8CX0602nobodyさん
2010/06/21(月) 18:41:50ID:???セーブして実行してみた。
% php hoge.php
num=2
出るじゃん。
0603nobodyさん
2010/06/21(月) 18:42:55ID:oQjyj8CX0604nobodyさん
2010/06/21(月) 18:46:36ID:???グローバルに渡すしか。
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<?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:???調子悪いので茨の道だぞ。
0608nobodyさん
2010/06/21(月) 19:14:46ID:???classAの $Anum 別物じゃん。
結局BがAのインスタンスもってるだけで >>605と同じ・・・
0609nobodyさん
2010/06/21(月) 19:16:50ID:???$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:???PHP4 new演算子
とかでググれば出てくる。
0612nobodyさん
2010/06/21(月) 19:30:42ID:oQjyj8CX0613nobodyさん
2010/06/21(月) 19:34:20ID:???>>598
>>609 + register_shutdown_function(array(&$this, '_A' ))
0614nobodyさん
2010/06/21(月) 22:56:57ID:???0615nobodyさん
2010/06/21(月) 23:23:53ID:oQjyj8CX複数ファイルを持続接続でアップする方法ありますか。
毎回ログインする方法しか分かりません。
0616nobodyさん
2010/06/21(月) 23:39:00ID:???http://jp.php.net/manual/ja/function.curl-multi-exec.php
これが参考になるかな
0617nobodyさん
2010/06/21(月) 23:46:41ID:oQjyj8CXPHP4だと>>616が使えないです。
FTPのログイン動作に3から10秒ほどかかるのでこの時間の転送量は0です。
ログイン省く方法無いですか。
0618nobodyさん
2010/06/21(月) 23:58:15ID:???0619nobodyさん
2010/06/22(火) 02:55:15ID:???0620nobodyさん
2010/06/22(火) 03:50:07ID:???0621nobodyさん
2010/06/22(火) 09:02:05ID:???(そもそもPHP捨てたほうがいいというのは置いといてw)
0622nobodyさん
2010/06/22(火) 09:11:04ID:???PHPからC++のコード生成出来たり、実行ファイルが作れればいいのだが。
追加機能は例えば、static_php.libを組み込むことで実現出来たり。
0623nobodyさん
2010/06/22(火) 09:13:48ID:???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:???まぁ使うけど。
5.3で静的遅延束縛が実装されて大分使いやすくなった。
0626nobodyさん
2010/06/22(火) 12:37:56ID:???今頃取り入れたらそれこそ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
0631630
2010/06/22(火) 18:58:18ID:???0632nobodyさん
2010/06/22(火) 21:08:21ID:???勝手に$A[$n] =NULLがセットされる気がしてたから。
存在しない配列・変数は自動生成するもんだとおもってた。
しかし、今日気づいた。増えてなかった。
0633nobodyさん
2010/06/22(火) 21:55:14ID:???亀レスだけど縦書き試してみた。
<?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:???0635nobodyさん
2010/06/22(火) 23:33:08ID:???効率って、
同じようなことするのにソースコードの行数が少なくて済む効率?
実行時間の効率?
使用メモリの効率?
0636nobodyさん
2010/06/23(水) 00:03:36ID:???0637nobodyさん
2010/06/23(水) 03:08:02ID:???0638nobodyさん
2010/06/23(水) 23:12:08ID:SXPCexzA・tmpファイル名から判断→できないですよね?頭にphpやsess_など特定の語がつくらしいことは分かったのですが・・・
・フォルダを監視し、アップロード開始前後に増えたファイルをAとみなす。→同時期に関係ないファイルが増えることもあるので微妙
0639nobodyさん
2010/06/24(木) 01:13:30ID:???リクエストを受け取って動くコードじゃなしに、別で動いてるディレクトリ監視用のなんかで、
受信が終わってリクエストされたPHPのファイルのなかみが実行される前に
アップロードされ一時保存されてるファイルにちょっかい出したいとか、そういう感じ?
0640nobodyさん
2010/06/24(木) 01:19:10ID:???そもそもバッファに収まるサイズなら一時ファイル作らないだろうし
0641nobodyさん
2010/06/24(木) 02:29:20ID:OBMIoFMZそんな感じです。
0642nobodyさん
2010/06/24(木) 06:36:59ID:WgZlfAT4PHPにて、以下のコードが意図したように動作しません。
$funcs = array(func_a, func_b, func_c);
foreach ($funcs as $func){
$func(); //$func === String... "func_a", "func_b", "func_c"
}
どうも調べてみると PHP の配列では、関数への参照が期待されるところが、文字列として解釈されてしまうみたいです。
どのようにすればこの問題を回避できるのでしょうか?
アドバイスよろしくお願いします。
0643642
2010/06/24(木) 06:46:36ID:WgZlfAT4x この問題を回避
x この問題を解決
0644nobodyさん
2010/06/24(木) 07:45:38ID:???よく分からんけど
>php -r "$funcs = array('func_a', 'func_b', 'func_c'); foreach($funcs as $func) $func();
Fatal error: Call to undefined function func_a() in Command line code on line 1
0645642
2010/06/24(木) 07:57:50ID:WgZlfAT4すみません、どうやらこちらの勘違いだったみたいです。
> var_dump($funcs)
array(3) { [0]=> string(4) "func_a" [1]=> string(4) "func_b" [2]=> string(4) "func_c" }
上記をまんまに受け取ってしまって、文字列が格納されていると判断していました。
しかし、先ほど確認してみると実際には関数への参照が格納されていることを確認できました;
どうもありがとうございました。
0646nobodyさん
2010/06/24(木) 08:34:42ID:???たとえば、$n=10に対して、10個目に格納されているキーと値を取得できますか。
0647nobodyさん
2010/06/24(木) 08:37:30ID:MnfGX6ASループでなくて、ランダムアクセスする方法ありますか。
こういうやつでなくコストが低いやつが良いです。
$n=10;
$cnt=0; foeeach ( $A as $key->$val ) { if($cnt==$n) break; $cnt++; }
0648nobodyさん
2010/06/24(木) 08:43:48ID:WgZlfAT4array_rand じゃだめなの?
0649647
2010/06/24(木) 08:48:10ID:MnfGX6ASランダムアクセス = シーケンシャルサーチ(>>647)をしないアクセスってことです。
0650nobodyさん
2010/06/24(木) 09:35:17ID:???配列の配列にすべきと思うけど。
0651nobodyさん
2010/06/24(木) 09:48:42ID:???0652nobodyさん
2010/06/24(木) 12:10:57ID:MnfGX6AS0653nobodyさん
2010/06/24(木) 13:05:35ID:???未定義の定数 func_a は文字列 "func_a" と等価に扱われているだけ
関数はファーストクラスオブジェクトじゃないのから
識別子となる文字列で間接的に扱うしかない
http://php.net/manual/ja/functions.variable-functions.php
0654nobodyさん
2010/06/24(木) 16:04:42ID:sfa066RHここの略称の略称はなんでしょうか?
0655nobodyさん
2010/06/24(木) 16:34:14ID:???0656nobodyさん
2010/06/24(木) 17:26:06ID:???0657nobodyさん
2010/06/24(木) 17:31:46ID:???0658nobodyさん
2010/06/24(木) 23:37:31ID:???HipHop PHPをwindowsに対応してほしいです。
0659nobodyさん
2010/06/25(金) 02:25:39ID:???0660nobodyさん
2010/06/25(金) 07:58:18ID:???0661nobodyさん
2010/06/25(金) 10:36:18ID:beZDHavcFTPソフトからもphpからも操作不可能です。
どんなアクセスも可能なファイルはどのように作成すればいいですか?
0662nobodyさん
2010/06/25(金) 10:37:35ID:beZDHavcオプションでは付いてないんですが。
あとから変更すると既に変更不可になってそうです。
0663nobodyさん
2010/06/25(金) 11:31:43ID:???0664nobodyさん
2010/06/25(金) 11:33:14ID:beZDHavcパーミッションが411になってしまったんだと思うんですが。
これって削除も更新も出来ないんですが。
FTPソフトから。
これにアクセスする方法はないんですか?
0665nobodyさん
2010/06/25(金) 11:34:25ID:beZDHavcサンクス。 phpから親ディレクトリのパーミッション変更してみます。
0666nobodyさん
2010/06/25(金) 11:35:07ID:???0667nobodyさん
2010/06/25(金) 13:10:12ID:beZDHavc0668nobodyさん
2010/06/25(金) 13:47:53ID:F/VYj9suextension_dirとinclude_pathという2つのパスがありますが
これらは何を基準に分けてるのですか?
extension_dirの中を見るとso拡張子のファイルしかないので、こちらはバイナリファイルを置けばいいのですか?
追加したいライブラリがso拡張子だったらextension_dirに突っ込んで
phpファイルだったらinclude_pathに突っ込む、という感じでいいのかな。
0669nobodyさん
2010/06/25(金) 19:25:21ID:TAYX3VSM一部の漢字がうまく変換されずに困っています。
JIS第三水準以上になると、ほとんど駄目なようなのですが、
対処法はありますでしょうか?
よろしくお願いします。
0670nobodyさん
2010/06/25(金) 20:04:08ID:beZDHavc0671nobodyさん
2010/06/27(日) 01:38:10ID:aVrX+ivVecho $text[3];
こうやれば「d」の文字が拾えますが
$text = "あいうえお";
echo $text[3];
とやった場合マルチバイトのため文字として拾えません。
これを拾えるようにする方法は無いのでしょうか?
$text = array("あ","い","う","え","お");
これはなしの方法であくまで
$text = "あいうえお";とやった変数に格納したデータを拾う方法。
0674nobodyさん
2010/06/27(日) 07:10:24ID:???0675nobodyさん
2010/06/27(日) 12:43:50ID:aVrX+ivVそれつてmb_系(mb_substr)の関数仕えって事?
■ このスレッドは過去ログ倉庫に格納されています