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

【PHP】下らねぇ質問はここに書き込みやがれpart17

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/02/24(金) 22:05:48ID:YHkZgU8b
PHPに関するくだらねぇ質問用スレです。 
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。 

まず読め【PHP マニュアル】 
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/l50

前スレ【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/l50

過去スレは>>2
0123nobodyさん2006/02/28(火) 14:02:37ID:???
>>118
サーバの意味がわかってない。Webサーバってハードじゃないぞ。
自分のパソコンでも大丈夫。
用はApacheとかIIS等のWebサーバがPHPの言語を解釈してブラウザに表示する
役割をもっている。
だからWebサーバ起動してなかったらブラウザで確認できんよ。
0124nobodyさん2006/02/28(火) 14:18:25ID:???
>>119
おk。やってみるわd。

>>123
自分のパソコンをWeb鯖にするってことだよね?
それが公開されてなくても大丈夫なのかな・・・?

本当に糞みたいな質問なんだけど
>>だからWebサーバ起動してなかったらブラウザで確認できんよ。
起動してないユーザーはそもそもPHPの言語を読めないってこと?

PHPってHTMLファイルの中に直接書き込んでいってブラウザで表示するものだと思ってた・・orz
JavaScriptとは違うのね。・・・もうこれ以上質問する前に勉強してくる。
0125nobodyさん2006/02/28(火) 14:39:09ID:???
>>124には早い気がする。



>起動してないユーザーはそもそもPHPの言語を読めないってこと?
サーバを起動してない>>124は、PHPをHTMLに埋め込んでブラウザで表示してもPHP部分は動かないって事?
と意訳させてもらうと、答えは、

「そうだよばか」

勉強頑張れ〜。


0126nobodyさん2006/02/28(火) 14:40:36ID:???
それじゃ一般ユーザーはPHPで書かれたページは見れないな
0127nobodyさん2006/02/28(火) 14:41:34ID:???
>>124
公開されなくても確認するだけなら別にいいよ。みんなに見せたいなら公開しないと駄目だけど。
Web鯖起動してなかったらPHPはおろかHTMLもブラウザで表示されない。
Web鯖起動しててもPHP組み込んでなかったらただのテキストとして表示される。
入れるのややこしいならここらへんが便利そう
ttp://www.apachefriends.org/en/xampp.html
ttp://www.spacetag.jp/modules/download/
0128nobodyさん2006/02/28(火) 14:46:10ID:???
>>127
>Web鯖起動してなかったらPHPはおろかHTMLもブラウザで表示されない。

論旨は間違っていないが、初心者には余計な誤解を招くぞ。
0129nobodyさん2006/02/28(火) 14:46:24ID:???
>>126

>>124がPHPをHTMLに埋め込むんだからな。
一般ユーザではなく>>124が。
0130nobodyさん2006/02/28(火) 14:51:08ID:???
>>114
すれ違いだが、WindowsつかってるみたいなのでATコマンドしらべとけとか言ってみるテスト
0131nobodyさん2006/02/28(火) 15:00:31ID:???
>>121
> PHPの慣習に倣います。
慣習で言ったら接頭語なんて付けない、型なんて特に気にしない、が普通じゃないか。
0132nobodyさん2006/02/28(火) 15:02:33ID:???
>>122
戻り値は必要があるときだけ受ければいい。
その辺はCと変わらん。
0133nobodyさん2006/02/28(火) 15:11:05ID:???
>>124
> 自分のパソコンをWeb鯖にするってことだよね?
> それが公開されてなくても大丈夫なのかな・・・?
まー、IISじゃなきゃ80ポートをちょこっと受け付けるくらいで甚大な被害は多分出ないって。きっとw
0134nobodyさん2006/02/28(火) 15:41:59ID:???
最近Cになぞらえて考えるやつ多いな

>>117
PHPの変数の型はその場の文脈で勝手に変わるから
変数名で判断するとか無理なんよ
あと、Cだと基本的に全てのシンボルはアドレスと考えられるが
PHPはそうではないからリファレンスを理解する時注意するように
0135nobodyさん2006/02/28(火) 17:02:02ID:???
>>107
俺はスクリプトの最後にバックアップ用ファイルの最終更新時間と現在の時刻を照らして、条件を満たしていればバックアップを上書きするようにしてる。
普段使ってるファイルが壊れたり異常が見られたら、普段のファイル削除→バックアップを普段のファイル名にリネームしている。
0136nobodyさん2006/02/28(火) 17:57:58ID:???
スクリプト中からphp.iniのupload_tmp_dirを変更したいのですが以下のコードを
スクリプト中に記述しても変更出来ません。

ini_set('upload_tmp_dir', "D:/test"));

試しにvar_dumpしてみるとbool(false)と帰ってきています。

どうすれば変更できるでしょうか?
01371362006/02/28(火) 17:58:54ID:???
コードの記述ミスをしました。

ini_set('upload_tmp_dir', "D:/test"));

ini_set('upload_tmp_dir', "D:/test");  
0138nobodyさん2006/02/28(火) 18:01:19ID:???
そういうのはINI側の設定が優先されると思うよ。
それとWinのセパレーターは/じゃなくて\ね
01391362006/02/28(火) 18:03:20ID:???
php.ini側の設定では以下の様に設定していない状態になっています。

;upload_tmp_dir =

どの様にすれば変更出来るでしょうか?
0140nobodyさん2006/02/28(火) 18:06:46ID:???
var_dumpではなくini_getだと思う
01411362006/02/28(火) 18:09:53ID:???
ini_getでも試していますがFALSEが帰ってきます。
0142nobodyさん2006/02/28(火) 18:14:43ID:???
>>136
文頭の;を外したらいけませんか?
01431362006/02/28(火) 18:15:43ID:???
それも試してみましたが駄目でしたorz
0144nobodyさん2006/02/28(火) 18:19:30ID:???
>>136
D:\testが存在してないとか
01451362006/02/28(火) 18:20:18ID:???
してますorz
0146nobodyさん2006/02/28(火) 18:47:29ID:z6M7N5M1
みんなマニュアル読もうよ。
PHP_INI_SYSTEM 4 このエントリは、php.ini または httpd.conf (しかし、httpd.confのVHostブ ロック内では不可)で設定可能
0147nobodyさん2006/02/28(火) 18:50:11ID:???
Formの生成から入力チェックまでやってくれるライブラリ探してるんですが、
XMLで記述したForm情報を読み込んで処理できるやつあったら教えてください。

↓こんな感じのXMLを元に処理してくれたらうれしいんですが

<form>
 <element id="name">
  <max_length>30</max_length>
  <min_length>1</min_length>
 </element>
</form>
0148nobodyさん2006/02/28(火) 19:05:53ID:???
csvファイルに変数の値をセットしたいのですが可能でしょうか?
もし可能であれば教えていただけないでしょうか。
0149nobodyさん2006/02/28(火) 19:18:52ID:???
csvファイルを書き出すときに、変数の値を書き出す
0150nobodyさん2006/02/28(火) 19:37:39ID:???
>>136
そもそもスクリプトが実行開始された時点でファイルのアップロードは完了しており、
すでにどこか(指定の)ディレクトリに保存されているので、スクリプト内で改めて
保存先を指定する意味が無い。実際の動作を考えれば判りそうなもんだけど・・・。

>>138
一応'/'でも通るよ。つかエスケープが面倒なので'/'を常用してる。

>>146
ゆとり教育の弊害だと思う
0151nobodyさん2006/02/28(火) 19:57:03ID:???
このスレにいるやつほとんどがゆとり世代なんだがなぁ、、
ゆとり教育ってのは段階的にかなり長期的に続けられている
0152nobodyさん2006/02/28(火) 20:09:58ID:???
>>150に笑ったw
0153nobodyさん2006/02/28(火) 20:18:17ID:???
小人閑居し不善を為す
0154nobodyさん2006/02/28(火) 20:49:51ID:???
そうそう、そのとおり。
元々ゆとり教育したい教育者のムードがあった。

そんな突然ゆとり教育させたら、きちんとした教育者は反発する。
0155nobodyさん2006/02/28(火) 21:28:23ID:???
ゆとり教育は大人の責任
0156nobodyさん2006/02/28(火) 21:48:47ID:???
そうやって何でも人のせいにすればいいさ。




楽をしたがった教職員やPTAのせいだけどね。
0157nobodyさん2006/02/28(火) 22:04:52ID:???
なんの話やねんな
0158nobodyさん2006/02/28(火) 22:05:44ID:???
ここはPHPの質問スレだったような気がしたんですが気のせいですか
0159nobodyさん2006/02/28(火) 23:11:14ID:???
学力崩壊―「ゆとり教育」が子どもをダメにした PHP文庫
和田 秀樹 (著)
http://www.amazon.co.jp/exec/obidos/ASIN/4569579108/ref=pd_sim_dp_4/249-5087703-6782729
0160nobodyさん2006/02/28(火) 23:50:56ID:???
馬鹿に限って血液型とかゆとり教育の話をする、とそういことさ
0161nobodyさん2006/02/28(火) 23:58:27ID:???
俺、血液型はAだけどゆとり教育なんだ。
0162nobodyさん2006/03/01(水) 00:24:46ID:???
>>158
気のせいですね。ここはPHPの雑談スレなんですよ。
0163nobodyさん2006/03/01(水) 00:27:02ID:HmVG72O5
ブラウザがcookieを使えるようになっているかを判別することはできるでしょうか?
0164nobodyさん2006/03/01(水) 00:30:16ID:???
クッキー送って記録されてればOK
0165nobodyさん2006/03/01(水) 00:51:43ID:???
cookieってsession_start()みたいな宣言必要じゃないですよね?
セッションなら上手くいくんですが、クッキーだと上手くいかんとです。
ブラウザ側で禁止してるわけでもないし。

$_COOKIE["hoge"] = "hogetest";
で使ってるんだけど、なぜか上手く保持できない・・・orz

表示するときも echo $_COOKIE["hoge"];
で間違いないですよね?
01661652006/03/01(水) 00:58:57ID:???
setcookie使ったらいけました・・・orz

手元のPHPリファレンスには
$_COOKIE["hoge"] = "hogetest";

setcookie("hoge", "hogetest");
は同じって書いてあるのですが、これはもしかして嘘でしょうか?
0167nobodyさん2006/03/01(水) 00:59:09ID:???
あのさ、最低、「php cookie」ぐらいでぐぐれよ。
0168nobodyさん2006/03/01(水) 01:02:56ID:???
>>166
はい嘘です。
setするときにはsetcookie使いなさい以上
0169nobodyさん2006/03/01(水) 01:07:06ID:ektJPim1
そのリファレンスの書名を是非教えてください
0170nobodyさん2006/03/01(水) 07:32:54ID:???
>>122
エラーのときfalseを返す関数はPHPでは一般的だったりする
str_word_countとか引数の違いで戻り値がstringだったり配列だったりするし
PHPやるなら型のことは忘れないと駄目だよ
0171nobodyさん2006/03/01(水) 08:18:27ID:???
usort関数で使うためのソート関数についての質問です。

$a[1] の内容 で 昇順にソートする場合には下記のような方法で出来ますが、
この場合、(A, F, G, Z, a, f, g, z) と並んでしまいます。
(A, a, F, f, G, g, Z, z) のようにアルファベットの大文字と小文字を区別しないような
ソート関数を作りたいのですが、どうすれば良いでしょうか?

function cmp($a, $b) {
if ($a[1] < $b[$1) { return -1; }
if ($a[1] == $b[1) { return 0; }
if ($a[1] > $b[1]) { return 1; }
}
0172nobodyさん2006/03/01(水) 09:11:40ID:???
strcasecmpすればいいだけでしょーがー
0173nobodyさん2006/03/01(水) 12:22:53ID:C+OfQRhv
PHPで $hoge に任意の文字が含まれているとします。
もし、それが数字である場合に真を返す関数はありますか?
0174nobodyさん2006/03/01(水) 12:36:56ID:???
>>173
is_numeric とか gettype などいかがでしょう。
実際に試してないので自信ないですが。

はい、次ぼくの質問

perlで言うところの

print <<HOGE;
なんたらかんたら
HOGE

みたいな書式はありますでしょうか?
この書き方の呼び方が分からんので検索できなかったす……
0175nobodyさん2006/03/01(水) 12:40:55ID:???
>>174
このスレを「 <<< 」で検索
01761742006/03/01(水) 12:41:13ID:???
自己解決。ヒアドキュメントね。そうそう。
01771742006/03/01(水) 12:42:26ID:???
>>175
失礼しました!猛省します。
あきれないで……今後ともよろしくお願いします
0178nobodyさん2006/03/01(水) 12:44:38ID:???
ちなみにecho以外にも、変数の格納などに応用可能。
0179nobodyさん2006/03/01(水) 13:07:10ID:YIO/KfnW
ヒアドキュメントってPerlだと

 print ($flag)? <<TEXT1 : <<TEXT2;
なんたら1
TEXT1
なんたら2
TEXT2

みたいに書けるんだけど、PHPの場合はこれって

 print ($flag)? <<<TEXT1
なんたら1
TEXT1
 : <<<TEXT2
なんたら2
TEXT2;

って書くしかない?
0180nobodyさん2006/03/01(水) 13:28:25ID:???
>>173
ctype_digit($hoge);
という関数もある。
Cのネイティブ関数なのでこれでよければctype関数の方が早い

ただし$hogeは文字列
$hoge = 10;
ctype_digit($hoge)はfalseになる
$hoge = 48; //'0'のASCIIコード0x30
ctype_digit($hoge)はtrueになる
ctype_digit("$hoge");と文字列にすると両方trueになる
0181nobodyさん2006/03/01(水) 14:02:36ID:???
>>179
後者しかないね。
PHPだと識別子直後の改行が必要なうえに、
次の行に何が書いてあっても取り込む文字列として見なされる。
0182nobodyさん2006/03/01(水) 14:48:01ID:???
 print ($flag)? (<<<TEXT1
なんたら1
TEXT1)
 : (<<<TEXT2
なんたら2
TEXT2);

カッコで閉じても無理?
0183nobodyさん2006/03/01(水) 15:21:27ID:???
>>182
何をしたいのか分からん。
おまけにTEXT1とかの後ろに)を付けるのは文法エラーだ。
0184nobodyさん2006/03/01(水) 16:09:03ID:???
ちょっと教えてほしいのですが
幾つかのデータを表にだしある行のデータを変更したら一番端に作っているチェックを
Javaでonにして、更新時はそのチェックをついている行のデータを更新させているのですが
↓こんな感じ 各チェックボックスの値は主キー
foreach($_POST['check'] as $val){
 mysql_query("update hoge set a='".$_POST{'a'.$val}."',b='".$_POST{'b'.$val}."' ");
}
$_POSTも項目ごとに必要だし各項目の後ろの主キー(一意の番号)をつけないといけないので
もっとスマートor簡単な処理方法なにかないでしょうか?
0185nobodyさん2006/03/01(水) 17:24:45ID:???
>>184
質問とは関係ないけどwhereはいらないのか
それと注射対策にエスケープしろよ
0186nobodyさん2006/03/01(水) 18:04:05ID:MpRVy8N5
>>184
何がしたいのか、解読するのが面倒なので、もっと質問を整理してください。
0187nobodyさん2006/03/01(水) 18:44:58ID:???
>>183
echo ($hoge) ? 'true': 'false';
0188nobodyさん2006/03/01(水) 18:46:21ID:???
>>184
日本語で
0189nobodyさん2006/03/01(水) 18:49:15ID:???
>>184
JavaとJSは別物

スマートにやるなら配列でもつかえばできるだろ?
0190nobodyさん2006/03/01(水) 19:17:28ID:???
PHPで掲示板を作ってるんですが、2chとかはスレのURLが「スレ番/レス」となってますよね。
ということは、新規にスレをたてた時には新しいディレクトリを作成し、さらにその中にindex.php(ログからスレ内容を加工、表示するスクリプト)とログファイルを生成してるんでしょうか?
普通のレン鯖でこういう仕様はやめた方がいいんでしょうか?
0191nobodyさん2006/03/01(水) 19:34:34ID:???
>>190

> 新規にスレをたてた時には新しいディレクトリを作成し
そんなことはやってません。

ttp://*.2ch.net/test/read.cgi/*/1140786348/l50

read.cgiで、/以降を解析して表示しているだけです。

> 普通のレン鯖でこういう仕様はやめた方がいいんでしょうか?
フォルダ作る分には全然構わないと思います


ここまで書いて自信なくなってきましたが、
おそらくこうだったと思います。
0192nobodyさん2006/03/01(水) 19:36:39ID:???
へー
0193nobodyさん2006/03/01(水) 19:41:00ID:???
>>190
参考までに

【スレッド】2ch型掲示板 14 【フロート型】@WebProg
http://pc8.2ch.net/test/read.cgi/php/1127896640/l50
0194nobodyさん2006/03/01(水) 20:02:46ID:???
>>191
そういえばread.cgiが間に入ってますね。ありがとうございます。

>>192
誘導ありがとうございます。参考にさせてもらいます。
0195nobodyさん2006/03/01(水) 21:09:07ID:MpRVy8N5
>>194
パスインフォ
0196nobodyさん2006/03/01(水) 23:10:25ID:9If1oYZF
midiファイルを再生させるソース
<EMBED
SRC=".mid"
WIDTH="150"
HEIGHT="40"
AUTOSTART="FALSE"
REPEAT="TRUE"
SAVE="TRUE"
>
これの類で複製を出来なくする方法ってどうやるのですか?
0197nobodyさん2006/03/01(水) 23:12:43ID:???
>>196
PHP関係ない
01981962006/03/01(水) 23:13:19ID:9If1oYZF
ごめんスレタイ見てなかった。
どこ逝きゃいい?
0199nobodyさん2006/03/01(水) 23:54:54ID:???
>>196
探せよ屑
0200nobodyさん2006/03/02(木) 04:18:35ID:???
WEBアプリケーションは

1.入力
2.入力チェック
3.確認
4.処理
5.完了

ってな感じが一般的だと思うんですが、これってひとつファイル中で if 使ってやるほうがいいか
form.php、check.phpとかファイルを分けてやるほうがいいかどう思いますか?
0201nobodyさん2006/03/02(木) 05:02:30ID:???
>>200
index.php と check.inc や end.inc というように、
1つのphpファイルと多数のincファイル(インクルードするファイル)で構成するのがいいと思う。
0202nobodyさん2006/03/02(木) 08:24:23ID:???
別に拡張子はなんだっていいよ。
0203nobodyさん2006/03/02(木) 09:20:52ID:c/Xyk/Yy
次のようなサンプルを良くみかけます。
$fp = @fopen($editfile, 'w');
$fp = fopen($editfile, 'w');


fopen関数の横に「@」があると無い場合とでは動作の違いはあるのでしょうか?
0204nobodyさん2006/03/02(木) 09:28:08ID:QF2KFk3i
>>203
エラーメッセージを抑制するだよ


そこでおいらの質問というか確認をお願いしますだ
Fatal error: Cannot redeclare user_function() (previously declared in /home/www/hoge.php:4) in /home/www/hoge.php on line 3
みたいなエラーが出たんだけど
ループの中で何回も
require 'user_function()';
をやっていたのがいけないんですよね?
0205nobodyさん2006/03/02(木) 09:42:45ID:???
>>204
エラーメッセージ通りじゃねーか。
0206nobodyさん2006/03/02(木) 10:07:55ID:???
>>204
わかってんじゃねーか
0207nobodyさん2006/03/02(木) 10:08:34ID:???
>>200
システムの規模なんかにもよる。
02082032006/03/02(木) 10:51:59ID:???
>>204
ありがとです
02092032006/03/02(木) 10:53:31ID:???
>>204
教えてくれたお礼に教えてあげよう。

includeはループの中で何度でもできるが、requireは1回しかできないから
ループの中で何度も使いたい場合は include使えばいいだよ
0210nobodyさん2006/03/02(木) 10:59:59ID:???
つ require_once
0211nobodyさん2006/03/02(木) 11:03:29ID:???
>>209
> requireは1回しかできないから
できる。
includeとrequireはエラー時にWarningになるだけかFatal Errorになってしまうかの差しかない。
0212nobodyさん2006/03/02(木) 11:06:34ID:???
>>211
勘違いしてない?
http://www.komonet.ne.jp/~php/chap7.htm
0213nobodyさん2006/03/02(木) 11:09:55ID:???
ttp://jp.php.net/manual/ja/function.require-once.php
ttp://jp.php.net/manual/ja/function.require.php
ttp://jp.php.net/manual/ja/function.include-once.php
ttp://jp.php.net/manual/ja/function.include.php
0214nobodyさん2006/03/02(木) 11:12:39ID:???
そのサイト、大丈夫か?

require()とinclude()は エラーの扱い方を除けば全く同様に振舞います。
0215nobodyさん2006/03/02(木) 11:14:35ID:???
どうしてこう、サイトといい書籍といい、PHPの解説してるとこって嘘書いてるとこが多いんだ?
0216nobodyさん2006/03/02(木) 11:14:45ID:???
同様に振舞うとかそういう問題じゃないと思うが。
printfとかprintとかechoが同じといってるようなもんだな。
0217nobodyさん2006/03/02(木) 11:18:31ID:???
公式マニュアルからのコピペですが。
英語だと
require() and include() are identical in every way except how they handle failure.
0218nobodyさん2006/03/02(木) 11:27:06ID:???
>>212
ソースは解説サイトよりマニュアルを参照した方がいい。
そこで自分の過ちに気付き、自分が間違っていたんだと認める事ができれば人間としてもレベルが高い。
更に変な解説したサイトに嫌がらせのメールを送ったり勝手にMLに登録したら次の日は大吉。
0219nobodyさん2006/03/02(木) 11:28:06ID:???
>>212
[a.php]
<?php
require("b.php");
require("b.php");
?>

[b.php]
<?php
print "a\n";
?>

実行結果
a
a
02202032006/03/02(木) 11:29:03ID:???
なぬ、解説サイトが間違っていたのか
それをずっと信じてました
すみません
0221nobodyさん2006/03/02(木) 11:33:10ID:???
http://www.komonet.ne.jp/~php/chap13.htm

「(2)クッキーは、設定されたものと同じパラメータで削除する必要があります。クッキーを削除する場合には、ブラウザの削除機構を起動する為に、必ず有効期限を過去に設定する必要があります。」
もうむちゃくちゃだな。

「Cookieの削除をするには過去に設定するしかない」ってデマ情報がやまほどあるんだけど
真面目にいってるんだろうか。

setcookie( "Cookie", ""); だけで削除できるだろうが。

0222nobodyさん2006/03/02(木) 11:39:54ID:???
http://hotwired.goo.ne.jp/webmonkey/2000/02/index4a.html
■ このスレッドは過去ログ倉庫に格納されています