【PHP】下らねぇ質問はここに書き込みやがれpart13
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/11/25(金) 21:16:56ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
0693691
2005/12/11(日) 08:03:41ID:???>1をselectedにして、2を選択したところ、
>selected(1)に戻ってしまいました。
…当たり前じゃん.1が初期選択になっているんだから.
$_POSTの値によって,どれをselectedにするかをPHPで書くんだよ.
2だったら,1じゃなくて,2にselectedを指定しなきゃ.
0694687
2005/12/11(日) 08:06:11ID:???>$_POSTの値によって,どれをselectedにするかをPHPで書くんだよ.
これはいいヒントをどうもありがとうございます!
頭が固いもんでorz
早速書き直してみたいと思います。
0695nobodyさん
2005/12/11(日) 08:34:13ID:???0696nobodyさん
2005/12/11(日) 11:20:07ID:???publicやprotected、privateと宣言した方がパフォーマンス良いの?
書き換えていったら動作が機敏になった・・・
0697nobodyさん
2005/12/11(日) 11:33:42ID:???0698nobodyさん
2005/12/11(日) 13:34:34ID:???0699nobodyさん
2005/12/11(日) 13:39:28ID:???0700nobodyさん
2005/12/11(日) 14:03:12ID:???0701nobodyさん
2005/12/11(日) 14:59:39ID:???いっそ入力フォームのページと結果のページを分けてしまって、
別targetのウインドウで結果ページを出してしまうとか。
そうすれば入力側のリロードは発生しないから入力内容を再現する必要なし。
ブラウザが別に立ち上がってしまうのがイヤならframeかiframeで。
0702nobodyさん
2005/12/11(日) 15:06:13ID:???俺はむしろPHPコードの中にHTMLタグが埋め込まれてるのが嫌いなので
echoでHTMLタグを出力するのは絶対禁止派。
あと、HTMLの中に<?〜?>を埋め込むスタイルならPeggyとかで
閉じタグジャンプが使えるので、閉じ忘れなどのミスも防ぎやすい。
0704nobodyさん
2005/12/11(日) 15:28:44ID:???俺は普段こう書いてる
<OPTION VALUE="1"<?php if($a == 1) { ?> checked<?php } ?>>あ</OPTION>
0705nobodyさん
2005/12/11(日) 15:44:25ID:???たくさん必要なら関数作るだろうからあんなの何行も書くことはないだろ。
プルダウンやテキストボックスなんかはフォーマットが決まっているから関数にし易いし。
0706nobodyさん
2005/12/11(日) 16:07:05ID:???0707nobodyさん
2005/12/11(日) 17:27:24ID:???selectedじゃね?
0709nobodyさん
2005/12/11(日) 19:26:18ID:???$file_name = "sample.jpg";
$size = filesize("$file_name");
$im_in = ImageCreateFromJPEG("$file_name");
$ix = ImageSX($im_in);
$iy = ImageSY($im_in);
print "サイズ:{$size} 横縦:{$ix}x{$iy}";
0710nobodyさん
2005/12/11(日) 19:37:38ID:???大きさだけ
0711nobodyさん
2005/12/11(日) 19:42:06ID:???「一度で」ってのは無い。
filesize
と
getimagesize
二回やってもたいしたこたねぇよ。
(少なくともimageオブジェクトつくるよりゃ)
0714nobodyさん
2005/12/12(月) 07:43:40ID:???0715nobodyさん
2005/12/12(月) 13:50:36ID:???0716nobodyさん
2005/12/12(月) 13:58:26ID:???0717nobodyさん
2005/12/12(月) 14:02:45ID:???別窓で出す方法を教えてください
0718nobodyさん
2005/12/12(月) 14:11:17ID:???あり得ない。
より良い理解のために、サーバーでの処理とクライアントでの処理を分けてよく考えた方がいい。
ヒント:別窓を開くのは誰の仕事なのか?なにをキーに別窓を開くのか?
0719nobodyさん
2005/12/12(月) 14:52:40ID:???0720nobodyさん
2005/12/12(月) 15:13:43ID:???何故でしょうか?。uniqid()の代わりに'test.dat'とすると正しくファイルが生成されます。
uniqid()で生成される文字列にファイル名に利用出来ない文字が含まれているのでしょうか?。
0721nobodyさん
2005/12/12(月) 15:25:01ID:???おそらく、uniqid() の時点でエラーになっている物と思われ。
move_uploadfileする前に、
$outfile = uniqid();
ってやってみ。
※エラー出力はonにしてからね。
0722nobodyさん
2005/12/12(月) 15:56:12ID:???ini_set('display_errors',1);
echo uniqid();
結果
439d1ea43d094
それがエラーも出ない
「439d1ea43d094」という文字列に問題があるとも思えないし・・・
0723nobodyさん
2005/12/12(月) 16:04:11ID:???$file = uniqid();
touch($file);
move_uploaded_file($_FILES['a']['tmp_name'][$i], $file);
0724nobodyさん
2005/12/12(月) 16:40:46ID:???この本買おうと思ってるんだけど、
今使ってる鯖は3,4までしか対応してないみたい。(xreaの34鯖)
まったくphp触ったことないので
試しながらやる時に、バージョン違いによる不具合とか出て
困ること多いのかなぁ〜と心配なんですが、だいじょーび?
0725nobodyさん
2005/12/12(月) 17:15:30ID:???だめですね。それでもファイルが作成されません。
WindowsXP+PHP5.1.1+Apache2.0.54.0かな。
move_uploaded_file($_FILES['a']['tmp_name'][$i],$_FILES['a']['name'][$i]);
ではsjis環境で日本語ファイル名ですら作成できるのですけどね。
0726nobodyさん
2005/12/12(月) 17:29:20ID:???>>723のコードでファイルが作成されない、ってことはmove_uploaded_file以前の問題だよね。
先の結果の439d1ea43d094を使って
<?php
touch('439d1ea43d094');
?>
とか、エクスプローラで問題のディレクトリに439d1ea43d094という名前のファイルを作ってみるとか
別のディレクトリに作るとどうなるかとか、調べてみれば?
ファイルシステムの制限とかあるのかな。。。
そのディレクトリが存在するドライブはNTFS?
0727nobodyさん
2005/12/12(月) 17:32:33ID:???0728nobodyさん
2005/12/12(月) 17:47:36ID:???0729nobodyさん
2005/12/12(月) 18:35:08ID:???PHPはバージョン違いによる苦しみが他の言語の数倍多い。
おまけに質問時に本と環境でバージョン違うんですがとか言ったら
バカジャネーノ?とタコ殴りにあうことうけあい。
バージョン間で何が違うのかをまず勉強して、把握した上でその本を使うならOK
0731725
2005/12/12(月) 18:51:34ID:???$name = uniqid();
echo $name; ← 結果 : 439d471cc9f9c
touch($name); ← 結果 : ファイル作成失敗
touch($name+'add'); ← 結果 : 439というファイル名が生成出来た・・・d以降は何処に・・・
どういうこっちゃねん。エロイ人、理由を教えてっ!!。
共有鯖ではないよ
0732725
2005/12/12(月) 19:00:26ID:???削除してくれるみたいです。
touch($name+'add'); 間抜けだった・・・ touch($name.'add');でしたね(^^;
touch($name); ← ファイル作成されてた
move_uploaded_file($_FILES['a']['tmp_name'][$i],$name); ← どういうわけか、ここでファイルげ消されてる
0733nobodyさん
2005/12/12(月) 19:14:52ID:???+ は 文字列の結合演算子では無い。
なので前後のオペランド($nameと'add'の事)は数値(整数値)として評価される。
$nameは、有効な数値部分439がその値として使われ、
'add'は有効な数値部分が無いので 0 として使われる。
そして、その結果は 439 + 0 = 439となる。
0734nobodyさん
2005/12/12(月) 19:32:03ID:???0737nobodyさん
2005/12/12(月) 21:21:09ID:???選択したラジオボタンが選択されたまま、ラジオボタンを表示させるにはどうすればいい?
0738nobodyさん
2005/12/12(月) 21:22:58ID:???0739nobodyさん
2005/12/12(月) 21:35:09ID:???PHPではなくHTMLの話でしょ?
<input type="radio" name="hoge" value="xxx" checked>aaaa
0740nobodyさん
2005/12/12(月) 21:36:13ID:???見た目が「あたかも」選択されたままになっているだけで、
実際には全く新しいページとしてラジオボタンが表示される。
選択状態のラジオボタンを表示したいなら、checkedを付けたradioを出力すればいいだけ。
0741nobodyさん
2005/12/12(月) 22:14:27ID:???とりあえず>>704をみて
<input type="radio" name="SEX" value="1"
<?php if($SEX == "男性"){ ?>
checked
<?php } ?>
>男性
<input type="radio" name="SEX" value="2"
<?php if($SEX == "女性"){ ?>
checked
<?php } ?>
>女性
って書いたんだけど間違ってる?
0742nobodyさん
2005/12/12(月) 23:22:33ID:???b.phpの中身が全部a.phpの中へ挿入されます。
しかし全部ではなく一部を挿入させたい場合はどのようにすればよいのでしょうか?
例えばb.phpの中に
<div id="a">
<p>ほげほげほげほげ</p>
</div>
<div id="b">
<p>HOGEHOGEHOGE</p>
<p>hogehogehogehoge</p>
</div>
<div id="b">
<p>ホゲホゲホゲホゲ</p>
</div>
という内容があって、<div id="b">のdivボックスだけ抜き出してa.phpに挿入するにはどうしたらよいのでしょうか?
スクリプトを教えてください。m(_ _)m
0743nobodyさん
2005/12/12(月) 23:33:36ID:???質問文がなんかヤラシイ(*^^*)
それはともかく、b.phpはphpである必要はなさそうだし、
includeの使い方としては方向性が違っている。
file()とか、file_get_contents()とかで読み込んで、
eregとかpregとかでゴニョゴニョするのがよかろう。
0745nobodyさん
2005/12/13(火) 02:52:30ID:???[a.php]
<html>
<body>
<?=preg_replace('/(<div id="b">.*?div>)/', '\\1', file_get_contents("http://example.com/b.php"))?>
</body>
</html>
0746nobodyさん
2005/12/13(火) 10:19:42ID:???同じクラスの場合は$this->
親クラスの場合はparent::
をメソッドの頭に付けて呼び出しますよね。
PHP5では$this->ではなくself::使って呼び出すのが正しいやり方なんでしょうか?
0747nobodyさん
2005/12/13(火) 13:30:45ID:???mbstring.http_output => UTF-8 => UTF-8
mbstring.internal_encoding => UTF-8 => UTF-8
mbstring.language => Japanese => Japanese
こういう設定のサーバで、以下のスクリプトを実行すると、
<?php
$str = "システム";
echo mb_internal_encoding() ."\n<br>";
echo mb_detect_encoding($str) ."\n<br>";
$str2 = trim($str, ' , ');
echo mb_detect_encoding($str2) ."\n<br>";
mb_convert_variables(mb_internal_encoding(), mb_detect_encoding($str2), $str2);
echo mb_detect_encoding($str2) ."\n<br>";
?>
$str2 = trim($str, ' , '); の行で(trimの対象は半角と全角空白です)文字列が
壊れるらしく、
%php test.php
UTF-8
UTF-8
SJIS
UTF-8
とSJISとみなされてしまいます。
全角空白をtrimするにはどのように書くのが良いのでしょうか。
0750nobodyさん
2005/12/13(火) 13:49:20ID:???PHPのバージョンが4.1.0以上なら
trim
(PHP 3, PHP 4, PHP 5)
trim -- 文字列の先頭および末尾にあるホワイトスペースを取り除く
説明
string trim ( string str [, string charlist] )
注意: オプションのcharlistパラメータは、PHP 4.1.0で追加されました。
charlistパラメータにより、削除する 文字を指定することも可能です。
削除したい全ての文字をリストに してください。..を文字の範囲を指定する際に 使用可能です。
だってさ
0754nobodyさん
2005/12/13(火) 14:41:23ID:???MLでも話題になってたね。
http://ns1.php.gr.jp/pipermail/php-users/2004-November/024121.html
http://ns1.php.gr.jp/pipermail/php-users/2004-November/024124.html
http://ns1.php.gr.jp/pipermail/php-users/2004-November/024127.html
0755747
2005/12/13(火) 15:25:02ID:???正規表現かMLの方法で対応したいと思います。
ありがとうございました。
0756nobodyさん
2005/12/13(火) 18:59:43ID:???どのようにして変更を察知すればいいでしょうか?
0759nobodyさん
2005/12/13(火) 19:13:03ID:???AJAXみたいに操作するたびにJavaScript経由で毎回通信させれば
PHPも挟めなくはないが、基本的にブラウザで操作中はPHPは動いてもいない。
0760nobodyさん
2005/12/13(火) 19:28:43ID:???パスワード用のサニタライズはどの文字をすべきでしょうか。
また簡単に出来る関数は無いでしょうか?
0761nobodyさん
2005/12/13(火) 19:36:43ID:???それは兎も角、専用の関数は無かったかと。
一番簡単な方法は、ID/パスワードに使えない文字は通さないようにする。
0762nobodyさん
2005/12/13(火) 19:45:05ID:???出来るけど、PHPはクライアントサイドスクリプトとしてはメジャーじゃないので
そういうのはJavaとかJavascript/VBScriptとかActionScriptとかの
メジャーで、クライアントに実行環境が既にあると期待できる言語を利用するのが常套。
0763nobodyさん
2005/12/13(火) 20:01:46ID:???PHPもクライアントスクリプトとして
HTMLに記述とかできるんだっけ?
0764nobodyさん
2005/12/13(火) 20:15:36ID:???ttp://blog.livedoor.jp/p-1956050/archives/12733770.html
0765nobodyさん
2005/12/13(火) 20:16:36ID:???いや、JavaやActionScriptと一緒でプラグインされた別エンジンが実行。
だからコンボボックスをhtmlでやらせてる場合には、Javascript等の介在が必要だね。
インラインで記述されたPerlを解釈できるブラウザは存在するの?
0766nobodyさん
2005/12/13(火) 20:20:19ID:???自分が見た事のあるのとは違うな。
まあ、どっちも実用には…なのは同じような感じだったが。
0767nobodyさん
2005/12/13(火) 20:21:44ID:???0768nobodyさん
2005/12/13(火) 20:22:34ID:???個人用かイントラ用だよな。
0769nobodyさん
2005/12/13(火) 20:51:37ID:???$a[1] = apple;
$a[2] = peach;
$a[3] = banana;
でkey順に並べる時、
ksort($a);
で、key逆順に並べる時
krsort($a);
で合ってますよね?
krsort($a);が反応しないのですがorz
0770nobodyさん
2005/12/13(火) 20:56:53ID:???>$a[1] = apple;
>$a[2] = peach;
>$a[3] = banana;
↑何が定義されている?
>krsort($a);が反応しないのですがorz
反応って?
0771nobodyさん
2005/12/13(火) 21:05:29ID:???> krsort($a);
> で合ってますよね?
合ってる。
> krsort($a);が反応しないのですがorz
多分、確認方法が間違ってる。
foreach($a as $d) print "$d\n";
なら逆順で出てくるのが確認できると思う。
恐らく
for($i = 0; $i < 4; $i ++) print $a[i]."\n";
みたいな確認方法をしてるんじゃないか。
順番がひっくり返っても、キーで呼び出してたら意味ないぞ。
0772nobodyさん
2005/12/13(火) 21:12:48ID:???すみません、
大きな勘違いでしたorz
$result_data = file($result_file);
krsort($result_data);
for($i=0; $i<count($result_data); $i++){
としていて、何故逆順に表示されないんだろうと思ってたんですけれど、
$result_data = file($result_file);
$result_data = array_values($result_data);
krsort($result_data);
for($i=0; $i<count($result_data); $i++){
でした・・・。
お陰で長く悩んでいた事から開放されましたorzありがとうございます。
0774nobodyさん
2005/12/13(火) 21:14:57ID:e5VQAK41krsort($result_data);
$result_data = array_values($result_data);
for($i=0; $i<count($result_data); $i++){
しかも、こうですし(´□`)
スレ汚し申し訳ないです。
0775nobodyさん
2005/12/13(火) 21:17:51ID:???> $result_data = file($result_file);
と
> $result_data = file($result_file);
> $result_data = array_values($result_data);
って何が違うんだこれ?
0777nobodyさん
2005/12/13(火) 21:20:35ID:???そんな面倒なことしなくてもこれでいいと思うんだが。
$result_data = file($result_file);
for($i=count($result_data)-1; $i>=0; $i--){
どっちにしろ、そのケースならkrsort()でなくrsort()の方が速いと思う。
0778nobodyさん
2005/12/13(火) 21:25:59ID:e5VQAK41なるほど、そうした方が行も減ってスマートですよね。
どうして思いつかなかったのか悔やみます・・・。
勉強になりましたm(__)m
0779nobodyさん
2005/12/14(水) 11:32:35ID:CwjBoKRv例えば…
& を & に変換するとか…
0780nobodyさん
2005/12/14(水) 11:43:29ID:???一部でいいならhtmlentities
http://jp2.php.net/manual/ja/function.htmlentities.php
0781nobodyさん
2005/12/14(水) 11:47:17ID:CwjBoKRvおお、ありがとうございます。
マニュアルを探してて検索してたら 403 Forbiddenが出ててこまっておりました。
感謝です。
0782nobodyさん
2005/12/14(水) 11:48:10ID:???0783nobodyさん
2005/12/14(水) 12:44:05ID:???こうやってもエンティティ化されないのは何故でしょうか?
本当なら mail@hoge.com となるはずなのですが。
htmlspecialchars関数もやってみたのですが…駄目でした。
0784783
2005/12/14(水) 12:44:48ID:TiHY5j3U0785nobodyさん
2005/12/14(水) 12:49:52ID:???strstr($data,"[0-9]*")
ではだめでした。
なにかよい方法はないでしょうか。
0790725
2005/12/14(水) 13:29:00ID:???バグと言って良いのかなぁ・・・
誰か検証頼みます
Apache2.0.54.0+PHP5.1.1+WindowsXP PS2
move_uploaded_file($_FILES['a']['tmp_name'][$i],'./test.jpg'); ← 成功
move_uploaded_file($_FILES['a']['tmp_name'][$i],'./test1.jpg'); ← 失敗
0791nobodyさん
2005/12/14(水) 13:40:16ID:???お前、まさかその2行を同時に書いてるわけじゃないよな
moveは移動だから一回移動したら元は無くなるからね
■ このスレッドは過去ログ倉庫に格納されています