【PHP】下らねぇ質問はここに書き込みやがれ 31
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/10/25(水) 08:45:46ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
【前スレ】
【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しない)
・ サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0596nobodyさん
2006/11/01(水) 12:58:28ID:???0602nobodyさん
2006/11/01(水) 14:13:23ID:???0604nobodyさん
2006/11/01(水) 14:41:25ID:???value値を1や2と言った数値にしてます。
で、
if (is_numeric($_POST['aa'])) {
if ($_POST['aa'] == 1) {
echo "1です。";
} else if ($_POST['aa'] == 2) {
echo "2です。";
}
} else {
echo "数値以外はダメ。";
}
とするか、
if ($_POST['aa'] == 1) {
echo "1です。";
} else if ($_POST['aa'] == 2) {
echo "2です。";
} else {
echo "数値以外はダメ。";
}
とするか、どちらがいいでしょうか?同じですかね?
0607nobodyさん
2006/11/01(水) 15:22:36ID:???0609nobodyさん
2006/11/01(水) 15:56:40ID:???$data = array(1 => '1です。', 2 => '2です。');
みたいな配列用意しとけば、許容される数値かどうかの判定はif一発で済むし、後々DB導入したとしても変更が楽かも。
0610nobodyさん
2006/11/01(水) 16:09:45ID:???echo "表";
と表示させようとするとエラーが出てしまいます。
stripslashesを使用しても無理でした。
どのようにしたらちゃんと表示されるのでしょうか?
0612610
2006/11/01(水) 16:17:50ID:???<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
<meta http-equiv="Content-Style-Type" content="text/css">
<title>あいうえお</title>
</head>
<body>
あいうえお
</body>
</html>
EUC-JPを使おうと思い、このように記述したのですがなぜかIE6で文字化けしてしまいます。
Shift_JISなら大丈夫でした。カタカナで記述しても大丈夫みたいです。
文字化け→「あa・ム・」
なんでだろう。。。。
0616612
2006/11/01(水) 16:32:15ID:???ためしにEUC-JPのページをお気に入りに入れてブラウザの起動と同時に表示させたら、大丈夫でした。
やはりShift_JISを使うしかないのか。。。
0617nobodyさん
2006/11/01(水) 16:43:54ID:???ソースをSJISで書くにはマルチバイト対応でコンパイルしたPHPで
mbstring.script_encodingをSJISに設定しないといかんのでは。
>>616
ブラウザの文字エンコード設定は自動判別になってる状態?
PHPのmbstring.output_encoding辺りはどういう設定になってるの?
0618612
2006/11/01(水) 16:52:51ID:???お騒がせしました。ブラウザの文字コードは大丈夫でした。
html(php)ファイルを保存するときに保存形式がEUC-JPでなければいけない所がSJISになっていました。
ちゃんとEUC-JPで表示することができました。
0619nobodyさん
2006/11/01(水) 17:01:19ID:nyPZj6d6ファイルをアップロードするフォームを含むHTMLファイルがサーバAにあり、
それを使ってアップロードしたファイルをサーバBに保存することは可能ですか?
0622621
2006/11/01(水) 17:06:47ID:???0625nobodyさん
2006/11/01(水) 17:25:11ID:???name属性で指定した文字はPOST送信されないんでしょうか?
(_xと_yの座標は渡されますが)
0627nobodyさん
2006/11/01(水) 17:37:17ID:uM8NHcM0filesize("http://〜〜");だとエラーが返されます。
どうすればよいのでしょうか。
0629619
2006/11/01(水) 18:20:37ID:nyPZj6d6サーバAで文字列をMysqlのテーブルに書き込み、
サーバBにファイルを保存、
したいんです。
0630nobodyさん
2006/11/01(水) 18:38:33ID:???別サーバ側にfilesize返すスクリプトを書いてHTTP_Requestで叩け
>>628
そういう仕様だよWWWの
>>629
サーバAのスクリプト内からサーバBへHTTP_Requestで叩いてアップロードしろ
0631nobodyさん
2006/11/01(水) 18:40:08ID:uM8NHcM0こちら側から別サーバーは管理できないんです。
とりあえずfile_get_contentとstrlenの組み合わせで現在対処しましたが、
いちいち内容をダウンロードせずに、
サイズだけ図れる方法はないんでしょうか?
0632604
2006/11/01(水) 18:44:19ID:???ありがとうございます。
1か2だけなんでifでもswitchでもいいんですが、DBを導入するほどのものでもないです。
ただ、>>609のような配列を使ってやるってのは「ああ、成る程」って感じです。
自分にはない考え方って面白いand勉強になりますね。
0635nobodyさん
2006/11/01(水) 22:49:29ID:Z3WwdpXHディレクトリの更新時刻は、子ファイルの更新時刻に同期するけど、
それより下の階層のファイルの影響は受けないようですね。
対象ディレクトリの配下のすべてのファイルから最終更新時刻を一発で
取得するコマンドとかないでしょうか。
0636nobodyさん
2006/11/01(水) 23:12:32ID:???取得する方法はありますか?
社内LAN内にWebサーバがある環境です。
0638nobodyさん
2006/11/01(水) 23:52:59ID:osJKunqT636です。
0640636
2006/11/02(木) 00:14:41ID:PZcPsbvTありがとうございました。
0642nobodyさん
2006/11/02(木) 01:39:23ID:RYi0SuH10643nobodyさん
2006/11/02(木) 01:44:52ID:???0644nobodyさん
2006/11/02(木) 01:51:18ID:RYi0SuH1早速の回答ありがとうございます。そうっすか。ありがちなんでどっかに落ちてるかと思ったので。
ちなみに、Aタグ〜/Aタグを取得しようとしたら、正規表現の後方参照で取得するのが一般的な手法ですかね?
XMLパーサーでちまちまやりますか?
0646nobodyさん
2006/11/02(木) 04:39:55ID:ObNxAJOw末尾にhenko.phpが追加される(元のアドレスがhttp://localhost/ex/だとすると、
http://localhost/ex/henko.php)のですが、画面に表示される内容は
http://localhost/ex/という状態が起きています。
<form method="POST" action="./henko.php">
<input type="hidden" name="ki" value="<?php $row['ki']; ?>" >
<input type="submit" value="変更" >
</form>
どのようにしたらhttp://localhost/henko.phpにジャンプするようになるでしょうか?
0647nobodyさん
2006/11/02(木) 05:04:38ID:???PHP以前にHTMLのリンクレベルの質問だと思うけど
action="./henko.php"をaction="/henko.php"にすればいいかと。
0651nobodyさん
2006/11/02(木) 06:03:50ID:???>PHP以前にHTMLのリンクレベルの質問だと思うけど
>PHP以前にHTMLのリンクレベルの質問だと思うけど
>PHP以前にHTMLのリンクレベルの質問だと思うけど
>PHP以前にHTMLのリンクレベルの質問だと思うけど
>PHP以前にHTMLのリンクレベルの質問だと思うけど
0652nobodyさん
2006/11/02(木) 06:31:44ID:???../henko.php
わかったらHTMLの勉強からやり直すんだな。
0653nobodyさん
2006/11/02(木) 06:32:33ID:???0654nobodyさん
2006/11/02(木) 07:18:26ID:???おまいら・・・
> action="./henko.php"をaction="/henko.php"にすればいいかと。
は前者が ./ (ドット1個) で後者は / (スラッシュのみ。つまりルート参照)ですよ。
0655nobodyさん
2006/11/02(木) 07:18:32ID:???action="/henko.php" document rootからの絶対パス http://example.com/henko.phpになる
action="./henko.php" カレントディレクトリ
action="./henko.php" カレントディレクトリの1個↑のディレクトリ
0656nobodyさん
2006/11/02(木) 07:19:49ID:???ドットを付け忘れた
0657647
2006/11/02(木) 07:23:42ID:???すまん。「リンクレベル」ってそんな真面目な階層とかの意味じゃなくて
「HTMLのリンクを書くことと同レベルの質問」の意味だったんだ。
0659nobodyさん
2006/11/02(木) 08:13:16ID:???0661nobodyさん
2006/11/02(木) 09:00:21ID:???0662nobodyさん
2006/11/02(木) 09:14:29ID:???0663<>てすと>
2006/11/02(木) 09:50:21ID:v/7GXWbN0664619
2006/11/02(木) 09:57:30ID:D0jPHdjxそうか、HTTP_Requestを使うという方法があるんですね。
試してみます。
0666nobodyさん
2006/11/02(木) 10:30:51ID:???0667nobodyさん
2006/11/02(木) 10:35:29ID:???つまり、setcookieしたその直後に echo $_COOKIE['var']
で呼び出せないですよね?
これはなぜなんでしょうか。
これが非常に不便なんですが、良い方法ないでしょうか?
今まであれもこれもSESSIONに入れてたんですが、
COOKIE値とSESSION値を明確に線引きしようと
cokkieに使い変えたらこの問題が出てしまい、困っています。
0670nobodyさん
2006/11/02(木) 11:09:36ID:???0671667
2006/11/02(木) 11:23:14ID:???クラス内でsetcookieして、
別のクラスで$_COOKIEしても
上手く取得できません。
ほわぃ?
0672nobodyさん
2006/11/02(木) 11:36:51ID:???$_COOKIEはクライアントからのリクエストヘッダ。
setcookieはサーバからのレスポンスヘッダ(に書けという命令)。
全く別ものだから。
0674nobodyさん
2006/11/02(木) 11:56:02ID:???http://jp.php.net/manual/ja/
http://php.benscom.com/manual/ja/
0675nobodyさん
2006/11/02(木) 12:17:53ID:???$_COOKIEに入るクッキーの取得はプログラムの実行前で、
setcookie()で行うクッキーのセットはプログラムの実行後という
順番の逆転があるから。($_COOKIEとsetcookieは連動しない)
setcookie()直後に$_COOKIEで扱いたいのであれば
自分で $_COOKIE['var'] = 'foo'; ってセットしちゃうしかないと思う。
ただしそれをやると、実際にはブラウザが保存してくれてないのに
プログラムで値を使ってしまってトラブルになってしまう場合がある。
(ブラウザはクッキー有効の設定でも、部分的に却下することができる)
セッションはクッキーと違って「一部を相手が受け取らなかった」という
心配をする必要がないので、$_SESSIONを使ってシームレスに扱える。
0676646
2006/11/02(木) 12:28:33ID:ObNxAJOw質問間違えていて申し訳ないです、
正しくは、最後の1文が、
「どのようにしたらhttp://localhost/ex/henko.phpにジャンプするようになるでしょうか?」
です。すいません。
0678646
2006/11/02(木) 12:45:36ID:ObNxAJOw0679nobodyさん
2006/11/02(木) 13:53:44ID:???おいしいクッキーの作り方と食べ方
1. クライアントからのリクエスト
http header の cookie: でクッキー送信
2. Apache が環境変数 HTTP_COOKIE に代入
3. PHPが$_COOKIEへ代入
cookieがセットされてなければ当然空
4. PHPでsetcookie();
http header の Set-cookie:として送られるのでスクリプト終了するまで送られない
↑
今ここ 当然$_COOKIEは空
5. PHPの実行が終了
6. ApacheがSet-cookieヘッダで送信
7. クライアントのブラウザが処理
0680nobodyさん
2006/11/02(木) 14:51:27ID:???ARRAY {
[0] = NULL
[1] = NULL
[2] = NULL
[3] = hoge
}
の時、[3]のhoge以外は取り除くもしくは[3]のみ別配列に入れる事は可能でしょうか?
この場合、hogeは[3]にあるとは限らないので([1]かもしれないし、[10]かもしれません)
やり方に困っております
0681nobodyさん
2006/11/02(木) 14:56:32ID:???$newarray = preg_grep('/./', $array);
ただしこのやり方だと '' と NULL は区別できないけど。
0682nobodyさん
2006/11/02(木) 14:58:11ID:???やってみたのですがうまく動きません…
0683nobodyさん
2006/11/02(木) 15:04:36ID:???> foreachの中にforeachってできないんですか??
できる。
> やってみたのですがうまく動きません…
どう書いたのかちょっと見せてみ。
0684nobodyさん
2006/11/02(木) 15:07:14ID:???foreach($boo as $boo_arr) {
if($data_arr == $boo_arr) {
$log[] = $data_arr;
}
}
}
0686nobodyさん
2006/11/02(木) 15:27:55ID:???二回目のforeachのifの中の最後にbreak;しないと同じ値のデータが大量にできちゃうんじゃまいか?
どういう結果を求めてるか知らんけどな。
0687nobodyさん
2006/11/02(木) 15:28:32ID:???期待どおりの動きをしてくれません。。。
$dataに(1,2,3,4,5...12)
$booに(1,2,5,12)
が入っていた時
$logに(1,2,5,12)の配列を入れたいのですがなぜか12が入っていなかったりします。
あと684で間違いがありました。
正しくは
if($data_arr[num] == $boo_arr) {
$log[] = $data_arr;
}
です
0689nobodyさん
2006/11/02(木) 15:34:05ID:???そのnumってどっから出てきたの。
$data = array(1,2,3,4,5,6,7,8,9,10,11,12);
$boo = array(1,2,5,12);
foreach($data as $data_arr) {
foreach($boo as $boo_arr) {
if($data_arr == $boo_arr) {
$log[] = $data_arr;
}
}
}
var_dump($log);
結果:
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(5)
[3]=>
int(12)
}
0690687
2006/11/02(木) 15:39:12ID:???$dataは
ARRAY{
[0] ARRAY{
[num] = 1
[name]= satou
}
[1] ARRAY{.....}
と多重連想配列(?)になっています
0691nobodyさん
2006/11/02(木) 15:46:16ID:???実際にうまくいかないデータを出さないと多分分からん。
プログラム側じゃなくデータ側に問題あるんじゃないの?
0692nobodyさん
2006/11/02(木) 15:49:46ID:???> 正しくは
> if($data_arr[num] == $boo_arr) {
だったら多分
> $log[] = $data_arr;
は
$log[] = $data_arr['num'];
だろう
0693nobodyさん
2006/11/02(木) 16:00:42ID:???<?php
$updir = "./upload/";
$filename = $_FILES['upfile']['name'];
if (move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename) == FALSE){
print("Upload failed...");
print($_FILES['upfile']['error']);
}else {
print("<b>" . $filename . "</b> uploaded!");
}
?>
</body>
</html>
-------------------------------------------------
基礎PHPという本でアップローダー作ってるんですが、
上記のプログラムだと画像しかアップロードできず、
動画はアップロード出来ません。どこが問題でしょうか?
0694nobodyさん
2006/11/02(木) 16:04:08ID:???プログラム的には問題は見受けられない。
1.ファイルサイズがアップロード可能な上限を超えている
2.確認方法が間違っている
のどっちかじゃない?
■ このスレッドは過去ログ倉庫に格納されています