【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等)・フレームワークは各該当スレへ
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)の関数仕えって事?
0677nobodyさん
2010/06/27(日) 14:02:58ID:???http://jp.php.net/manual/ja/ref.mbstring.php
0678nobodyさん
2010/06/27(日) 14:29:26ID:???0679nobodyさん
2010/06/27(日) 15:06:07ID:???普通は関数使うね
0680nobodyさん
2010/06/27(日) 17:02:21ID:???0681nobodyさん
2010/06/27(日) 21:53:55ID:hmPoeXmO1,佐藤,ok,43
2,鈴木,no,65
3,田中,ok,87
4,斉藤,no,23
5,紅子,ok,90
4番目の斉藤のnoの部分をokに変えようとした場合
シェルのsedみたいに該当部分だけを書き換えることが出来る関数とかあるでしょうか?
ちなみにDBへの移行が出来ないのでfileで読み込んで斉藤にヒットした行のnoをokに変更、それ以外はそのままファイルに追記していく形で変更を行ってます。
0682nobodyさん
2010/06/27(日) 22:34:28ID:???DBは使えないってsqliteもだめなの?
0683nobodyさん
2010/06/27(日) 22:39:39ID:???0684681
2010/06/27(日) 22:45:42ID:hmPoeXmOcsvとして扱う関数があるわけですね。
そちらをちょっと調べてみます。
DB(sqlite含)関連が入っていない+追加出来ない状態です。これはサーバーの仕様なのであきらめてます。
>>683
私もそう思います。
でもきっとこれを作った当初は規模の拡大を予測してなかったんだと思います。
ソースを見たところ社内SEが部署内のちょっとした効率化のために作成したもののようです。
部署内でちょっとずつ機能追加してたら、他の部署からも〜みたいな感じで膨らんで今にいたるという状況みたいです。
ゼロから完全書き換えしたほうが後々いいとおもってはいますが、そこは大人の事情で出来そうにないので現状で何とかしようとしていたところです。
0685nobodyさん
2010/06/28(月) 14:52:59ID:t3TKO+l1PEARの公式サイトからXML-RPC2のパッケージをダウンロードして解凍したら
PHPファイルじゃなくてXMLファイルでした。
何を言っているのか分からないかもしれませんが
私にも何が起こったのか分かりません。
超能力とかそういうのじゃありません。
もっと恐ろしい能力の片鱗を味わいました。
どうすればいいですか教えて下さい。
0686nobodyさん
2010/06/28(月) 15:05:34ID:t3TKO+l1本当にありがとうございました。
0687nobodyさん
2010/06/28(月) 17:01:14ID:me2fxhSAこれを
<a href="http://aaa.jp/aaa/"><img src="http://aaa.jp/aaa/A_000000.jpg" ><br>暑い</a>
と置き換えたいのですがどうすればいいでしょうか?
0689nobodyさん
2010/06/28(月) 17:08:50ID:me2fxhSA<a href="http://aaa.jp/aaa/"><img id="pac-A_00000" alt="暑い" src="http://aaa.jp/aaa/A_000000.jpg" ></a>
<a href="http://aaa.jp/bbb/"><img id="pac-b_00001" alt="寒い" src="http://aaa.jp/aaa/A_000001.jpg" ></a>
etc・・・
これを
<a href="http://aaa.jp/aaa/"><img src="http://aaa.jp/aaa/A_000000.jpg" ><br>暑い</a>
<a href="http://aaa.jp/bbb/"><img src="http://aaa.jp/bbb/b_000001.jpg" ><br>寒い</a>
>>688
正規表現分りません><
0690nobodyさん
2010/06/28(月) 17:20:11ID:???#1嘘つき君。
>HP作成集などに載っている素材
>どれも問題ありません。
>(本の中で素材の注意書きに、「再配布や販売を目的とする素材の2次使用、商用利用は禁止する」とあります)
の部分は完全無視。
0691690
2010/06/28(月) 17:21:02ID:???■ このスレッドは過去ログ倉庫に格納されています