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

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

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

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

過去スレは>>2
0002nobodyさん2006/06/08(木) 05:10:29ID:???
【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/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
00031様2006/06/08(木) 05:11:19ID:???
【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
【PHP】下らねぇ質問はここに書き込みやがれ Part19
http://pc8.2ch.net/test/read.cgi/php/1144513878/
【PHP】下らねぇ質問はここに書き込みやがれpart20
http://pc8.2ch.net/test/read.cgi/php/1146165153/
【PHP】下らねぇ質問はここに書き込みやがれpart21
http://pc8.2ch.net/test/read.cgi/php/1148389517/
00041様2006/06/08(木) 05:12:06ID:???
・part17よりテンプレ化

extractは極力使わないほうがいいと思います。
例えば、

hoge.php?_SESSION[user_pw]=hogehoge

って形で送られてきたとします。これを

extract($_GET)

しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。

もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。

それを避けるために

extract($_GET, EXTR_SKIP)

ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。

extract($_GET, EXTR_PREFIX_ALL, "get")

と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。
0005nobodyさん2006/06/08(木) 07:05:00ID:???
質問スレはマニュアルの検索エンジンではありません
「○○する関数はありますか?」の類いの質問はお断りします
0006nobodyさん2006/06/08(木) 07:11:10ID:???
perl正規表現(preg)でmatchする部分を全て(all)で取り出す関数はありますか?
0007nobodyさん2006/06/08(木) 07:13:07ID:???
phpスクリプトから、別のphpスクリプトを実行するにはどのように書けばよいのでしょうか?
0008nobodyさん2006/06/08(木) 07:26:45ID:???
$_POSTを使うと、常にPHP Notice:  Use of undefined constantという警告が出るのですが
どうしたらよいのでしょうか?
0009nobodyさん2006/06/08(木) 08:21:27ID:???
>>8
$_POST[hoge]ってやってるだろ

配列のインデックスは数字か文字列なので
$_POST[゛hoge゛]が正しい。
0010nobodyさん2006/06/08(木) 08:27:29ID:???
header("Location: ./");

header('Refresh: 0;URL=./');
の違いを教えてください。
0011nobodyさん2006/06/08(木) 09:16:14ID:???
>>10
HTTPの規格書でも読みなされ。PHP関係ないよ。
0012nobodyさん2006/06/08(木) 10:43:29ID:ke6FFl5N
http://www.hoge.com/?123

↑このように変数名を書かずに送られてきたものをGETしたいのですが、
どのようにすればいいのでしょうか?
ググるためのワードだけでも教えてもらえたらうれしいです。
よろしくお願いします。
0013nobodyさん2006/06/08(木) 10:56:08ID:???
$_SERVER['QUERY_STRING']
0014nobodyさん2006/06/08(木) 11:08:55ID:ke6FFl5N
>>13
ありがd!!
0015nobodyさん2006/06/08(木) 11:15:50ID:???
user_agentをau,docomoなどにするにはどうすればいいですか?
偽りたいのですが
0016nobodyさん2006/06/08(木) 12:01:02ID:???
>>15
PHPで?
0017nobodyさん2006/06/08(木) 12:23:37ID:???
PHPでのディレクトリセパレータ文字について質問。
WindowsXPで試すと、'/' がセパレータとして使えるみたいだけど、'¥¥'じゃなくてもいいんでしょうか。
例えば
$files = glob('lib/*/*.php');
と書いたとき、これはUNIXだけでなくWindowsでも問題なく動くことが保証されていますか。
マニュアルみると DIRECTORY_SEPARATOR という定数がわざわざ定義されてあるから、
それならUNIXとWindowsで異なるセパレータを使い分けなきゃいけないのだと思ってたので。
00184522006/06/08(木) 12:44:52ID:???
データベースに入っているデータを検索→当てはまったらreturn TRUE 当てはまらなかったらreturn FALSEにしたいんですができないorz誰か手伝って(´;ω;`)

$query_1 = "select count(*) from user_tbl where id='{$hoge}' and delete_flg <> 1";
$query = "insert into user_tbl(
hoge)
values
('{$hoge}')";
if((mysql_query($query_1))==0) {
$result = mysql_query($query);
mysql_close($mysql);
return TRUE;
}
mysql_close($mysql);
var_dump(mysql_num_rows(mysql_query($query_1)));
return FALSE;
}
これできないorz
0019nobodyさん2006/06/08(木) 12:56:59ID:???
>>18
当たりまえ
前スレでムカツイタ452に教える気はない
0020nobodyさん2006/06/08(木) 13:09:17ID:pYzcdko8
ログデータが保存されているディレクトリが複数あって、そのディレクトリ内のログデータを全部まとめて1つにして
ディレクトリ名をログの配列に入れて、テキストデータに吐き出したいのですがうまくいきません(書き出すところです)
表示は出来ているのですが・・・。
ディレクトリ名を取得して、ディレクトリ内のファイルを取得して、ディレクトリ内のファイルを全部開いて、
ディレクトリ名をarray_unshiftで配列に加える、ログに書き出します。どこにfputsを入れても変な形になってしまいます。
どなたかご教授お願いしますTT

file
├001(1.csv 2.csv 3.csv)
├002(1.csv 2.csv 3.csv)
└003(1.csv 2.csv 3.csv)
0021202006/06/08(木) 13:10:01ID:???
$myself = basename($PHP_SELF);
$path = "file";
$startdir = opendir($path);
rewinddir($startdir);

while($entry = readdir($startdir)){
$subdir = "$path/$entry";
if($entry == ".." || $entry == "."){
continue;
}
if ($dir = opendir("$subdir")) {
while (($logfile = readdir($dir)) !== false) {
if ($logfile != "." || $logfile != "..") {

$logdir = "$subdir/$logfile";
$logs = @file($logdir);
foreach($logs as $value){
$line = explode(",", rtrim($value));
array_unshift ($line,$entry);
print "\"$line[0]\",";
print "\"$line[1]\",";
print "\"$line[2]\",";
print "\n";
}
}
}
closedir($dir);
}
}
closedir($startdir);
0022nobodyさん2006/06/08(木) 13:11:24ID:???
>>18
どううまくいかないのか書いたほうがいいんじゃないかな。
データがあるのにかならずreturn falseになるとか、
データがあってもtrueが返ったりfalseが返ったりするとか。
00234522006/06/08(木) 13:20:58ID:???
>>22
ありがとうございます(´;ω;`)
どんな値を入れてもFALSEが返ってきちゃいます ダンプしてみたらboolが返ってきますた
0024nobodyさん2006/06/08(木) 13:45:55ID:???
オレって結構粘着かもしれんよ
クピークププー
ttp://pc8.2ch.net/test/read.cgi/php/1148389517/970
0025nobodyさん2006/06/08(木) 13:56:39ID:???
>>24
>クピークププー
キンモッ!!
VIPに帰れ
0026nobodyさん2006/06/08(木) 14:13:20ID:???
>>18
>mysql_close($mysql);
>var_dump(mysql_num_rows(mysql_query($query_1)));
>return FALSE;

mysql_close() してから mysql_query() はしないほうがいいかな。
00274522006/06/08(木) 14:21:49ID:???
>>26
直したらresource(8) of type (mysql result)こんなんでました 関数ミスかクエリのミスっぽいのはわかるんだけんど(´;ω;`)明日までに全部終わらないぽ
0028nobodyさん2006/06/08(木) 15:02:17ID:???
>>24
あーこりゃだめだな
こんなアホの相手すんなって
0029nobodyさん2006/06/08(木) 15:16:49ID:???
>>27
おっぱいうp
0030nobodyさん2006/06/08(木) 15:19:58ID:vAH14IAN
日付を比較するプログラムを作成したのですが、なぜか上手く日付が
表示されません。ソースは↓ですが、おかしい箇所があれば、ご指摘下さい。

$date_set01="2006,06,10,00,00,00";
$date_set02="2006,06,12,23,00,00";
$set1=split(",",$date_set01);
$set2=split(",",$date_set02);

$d1 = mktime ($set1[3], $set1[4] , $set1[5] , $set1[1], $set1[2], $set1[0]);
$d2 = mktime ($set2[3], $set2[4] , $set2[5] , $set2[1], $set2[2], $set2[0]);
$time_diff = $d2 - $d1;

echo("時差:<br>");
echo date("Y",$time_diff) - 1970;
echo("年");
echo date("m",$time_diff) - 1;
echo("ヶ月");
echo date("d",$time_diff) -1;
echo("日");
echo date("H",$time_diff);
echo("時");
echo date("i",$time_diff);
echo("分");
echo date("s",$time_diff);
echo("秒");
00314522006/06/08(木) 15:27:32ID:???
>>29
漏れ男ですけどいいんですか(´;ω;`)
0032軟式PHP2006/06/08(木) 15:31:02ID:???
>>20
>そのディレクトリ内のログデータを全部まとめて1つにして
>ディレクトリ名をログの配列に入れて、
ここの意味がわかりにくい。
全ディレクトリを走査して、全ファイルをひとつのファイルにしたいってこと??
0033nobodyさん2006/06/08(木) 15:42:00ID:???
>>30
date() 関数の使い方が間違っている
date() の第二引数は、タイムスタンプの数値が必要だけど
このソースだと、二つのタイムスタンプの差分を与えている
0034軟式PHP2006/06/08(木) 15:42:55ID:???
>>30
その計算の何ヶ月というのは31日固定でいいの?
ただ1970年に$time_diffを足した年月日との差分になるんで
期待する値は取得出来ないような気がする。
0035302006/06/08(木) 15:51:51ID:vAH14IAN
>>33
「二つのタイムスタンプ差分を」とのことですが、$time_diffは差分を求めた
後の変数なので、これで大丈夫だと思っていました。
ただ、その他どこをどうするか想像も付きません。変更箇所を教えていただけないでしょうか?

>>34
いえ、28日も30日も入ると思います。-1970などとしているのは
タイムスタンプが1970年01月01日から始まるとのことで、このようにしているのですが、
だからといってその他、どうすれば求める値が得られるかわかりません。。。
0036nobodyさん2006/06/08(木) 15:53:45ID:???
お世話になります。

session_start();
$hage = array(
'a' => "あむろ",
'b' => "ぶらいと",
'c' => "きゃすばる",
);
$_SESSION = $hage;

このような処理をすると$_SESSIONには確かに$hageの値が入っているのですが、
セッションIDを維持したまま他のファイルに移動して$_SESSIONを呼び出しても
そちらの$_SESSIONには何も入っていません。

マニュアルのセッションに関する説明(http://php.s3.to/man/ref.session.html)には

> セッションを処理している時、 session_register()関数を使用するか
> スーパーグローバル配列$_SESSIONへ新しいキーを追加することにより
> 変数が登録されるまで、セッションのレコードは作成されないことに注意してください。

と書かれてありますが、$_SESSIONに値を登録する時には常に

$_SESSION['a'] = $hage['a'];

のように直接、もしくはforeach()等でとにかくひとつずつ入れる必要があるのでしょうか?
まとめて簡単に代入する何か良い方法がありましたらご教授頂けますと幸いです。
PHPのバージョンは5.1.2です。どうぞよろしくお願いします。
0037nobodyさん2006/06/08(木) 16:00:30ID:???
>>35
「二つのタイムスタンプ差分を」をタイムスタンプに変換する必要がある
このソースをそのまま手を入れるのなら

$time_diff = $d2 - $d1;
// ここで、タイムスタンプの基本の値を取得する
$base = mktime(0, 0, 0, 1, 1, 1970);
// 上で求めた、二つのタイムスタンプの差分に基本値を足して、タイムスタンプに変換する
$time_diff = $time_diff + $base;

0038nobodyさん2006/06/08(木) 16:08:45ID:???
>>36
$_SESSION['post_data'] = array(
'a' => "あむろ",
'b' => "ぶらいと",
'c' => "きゃすばる"
);

他のPHPで値を参照
$post_data = $_SESSION['post_data'];
echo $post_data['a']; // あむろ
0039nobodyさん2006/06/08(木) 16:15:32ID:???
>>38
つまり、

$_SESSION = $hage;

とは書けないということでしょうか?
0040202006/06/08(木) 16:25:56ID:???
>>32
そうです〜。更にディレクトリ名を取得して配列の列に加えたいのです。
元のCSVが「1列、2列、3列」という情報が入ってるとしますと、
「ディレクトリ名、1列、2列、3列」というふうにしたいのです。

月の日付が入ったディレクトリがあり(200505などしかし飛んだりしてバラバラで規則性はないです)、
そのディレクトリ内には日ごとのアクセスログ(CSV)があるという具合です。
0041302006/06/08(木) 16:37:02ID:???
>>37
出来ました!まだまだ理解力不足でしたが、これを期に精進します。
ありがとうございました。
0042nobodyさん2006/06/08(木) 16:47:16ID:???
>>1
本スレってどこですか?
0043nobodyさん2006/06/08(木) 17:00:51ID:???
>>42
本スレもくだらない質問ばかりだということで次スレがたたなかった
0044軟式PHP2006/06/08(木) 17:20:30ID:???
>>40
そのCSVって1行データなの??
>どこにfputsを入れても変な形になってしまいます。
どう変な形になってるの?
と突っ込みどころが多いけど、表示はうまくいってるってことなんで
それをひとつの変数にためて最後にfwriteしてみたら?
00451様2006/06/08(木) 17:53:46ID:???
>>42
すまん、コピペ厨で…
次スレまでにテンプレを改訂したほうがいいかもね。
00464522006/06/08(木) 19:10:25ID:???
昨日はすげ〜釣れたのにツマンセ〜ナ(´;ω;`)
0047nobodyさん2006/06/08(木) 20:33:19ID:???
DBM関数やデータベース抽象化レイヤ関数が指すデータベースというのはMySQLなどとは違うんですか?
0048nobodyさん2006/06/08(木) 21:07:52ID:???
>>47
違うよ
「データベース」という意味なら同じだけど、
データベースのソフトが違うから使う関数も違ってくる。
MySQL関数とPostgreSQL関数が違うのと一緒。

MySQL使ってるならコッチ使いましょう。
ttp://www.php.net/manual/ja/ref.mysql.php
0049nobodyさん2006/06/08(木) 21:25:56ID:???
HTMLが書かれたphpファイルに、
<?php
/*
ここにたくさんのメモ
*/
?>
みたいな使い方をするのは、
誰からも見えない自分だけのメモになりそうな気がするのです。
0050nobodyさん2006/06/08(木) 21:28:32ID:???
>>49
で?
0051nobodyさん2006/06/08(木) 21:31:01ID:???
>>48
ありがとうございます。
MySQLを使っているわけではないのですが、
別のサーバを用意しなくてもデーターベースが使えそうだったので気になりました。
0052nobodyさん2006/06/08(木) 21:35:16ID:???
>>51
なんか勘違いしてないか?
データベースとPHPは関係ないぞ
データベースが無いと話にならん
PHPっはデータベースにアクセスする方法を提供してるだけだ
0053nobodyさん2006/06/08(木) 21:37:14ID:???
>>49
それくらい普通にやってるだろ
HTMLのコメントにするとソース見られたときに分かるから
見られたくないのはPHPコメントを利用する
ただこれやると改行が崩れるのが玉に瑕
0054nobodyさん2006/06/08(木) 22:08:56ID:???
>>52
dbmopenでは引数でファイル名を指定しているので、直接ファイルを操作するものと思い込んでました。
実際には何らかのソフトがファイルを開いて処理しているということでしょうか?
0055202006/06/08(木) 22:12:08ID:???
>>44
CSVは複数行入っています。
fputsすると1個のディレクトリにあるログデータしか取れなかったりします。
>>21の$lineにひとつの変数に溜まっているはずなのですがなぜかそれを
fwiteやfputsしてもうまくいかない状況なので悩んでしまっているのです。
0056nobodyさん2006/06/08(木) 22:25:40ID:???
>>54
太古のヤツはそんなのあったけどね。
まず「データベースとは何か」から調べましょう。

それとDBMの使用は推奨されてなかったような気がするです。
0057nobodyさん2006/06/09(金) 00:44:58ID:???
現在PHPの掲示板を設置しているのですが、
英語のスパムに毎日悩んでおります。

ひらがな/カタカナを含まない投稿を拒否したいのですが、Perlで
if ($in{'comment'} !~ /(\x82[\x9F-\xF2])|(\x83[\x40-\x96])/) {
&error("日本語を書いてください。");
}
と書くところをPHPではどう書いたらよろしいのでしょうか?

・・・すごい初歩の質問だと思うのですが、よろしくお願いいたします。
0058nobodyさん2006/06/09(金) 04:04:44ID:???
質問です
PHPのsafe_modeをonにするとphpMyAdminが使えません。
どうにかしてsafe_mode=onで使えるようにできないでしょうか?
よろしくお願いします。

>>57
if(preg_match("/[ぁ-んァ-ヶ亜-瑤]{2}/", $comment)){
echo "日本語です";
}else{
echo "日本語がありません";
}
0059582006/06/09(金) 04:09:48ID:???
if(preg_match("/[ぁ-んァ-ヶ亜-瑤]/", $comment)){
echo "日本語です";
}else{
echo "日本語がありません";
}
# {2}が不要だった
0060nobodyさん2006/06/09(金) 04:12:22ID:???
>>58
セーフモードがonの場合、PHPは、 現在のスクリプトの所有者がファイル関数により処理されているファイルまたはディレクトリ の所有者に一致するかどうかを調べます。
0061582006/06/09(金) 05:51:25ID:???
>>60
ども。解決しました。
0062nobodyさん2006/06/09(金) 07:44:44ID:???
>>59
Compilation failed: range out of order in character class at offset 4 in
0063nobodyさん2006/06/09(金) 07:50:57ID:???
>>62
エラー出てんなら調べろよ!

※オレは>>59じゃないよ
0064軟式PHP2006/06/09(金) 10:11:24ID:???
>>55
最後の行にprint_r( $line );もしくはvar_dump( $line);
ってやって中身確認してみたら?
0065202006/06/09(金) 11:52:02ID:???
>>64
最後の行にprint_rやvar_dumpを$lineにかけますと、
Array ( [0] => ディレクトリ名 [1] => ログ列1 [2] => ログ列2 )と表示されます。
これを以下のようにfputsすると当然ですが1行しかログが書き込まれません。
何かforなどで繰り返し最後まで繰り返し書き込む必要があると思うのですが、
そこがわからないという状態です・・・。

$fp = fopen("log.csv", "w");
flock($fp, LOCK_EX);
fputs($fp, implode(",", $line) . "\n");
flock($fp, LOCK_UN);
fclose($fp);
0066軟式PHP2006/06/09(金) 12:04:05ID:???
>>65
1行しか入ってないなら当然それしか書き込まれないな。
$lineを二次元配列化するか、foreachの中でfwriteすれば出来るんじゃないの?

print "\"$line[2]\",";
print "\n";
fputs($fp, implode(",", $line) . "\n");  <<追加
}

fopen、fcloseはforeachの外で行うこと。
0067nobodyさん2006/06/09(金) 12:36:07ID:0pUzo2Bw
もしくは、先にforeachで合体させた変数を一回で書き込むか。
0068nobodyさん2006/06/09(金) 13:47:11ID:???
smartyで$i++またいな処理ってできないんでしょうか?
0069nobodyさん2006/06/09(金) 14:09:39ID:???
>>68
日本語でおk
0070nobodyさん2006/06/09(金) 14:12:07ID:???
>>68
英語でもおk
0071nobodyさん2006/06/09(金) 14:15:41ID:???
>>69すまそ
>>70sumaso
スマーティーで$i++みたいな処理({foreach}内で1個ずつ上がってくれる数値)できますでしょうか?
もしご存知でしたらやり方ご教示くださいな
0072202006/06/09(金) 15:21:56ID:???
>>66
以下をforeach($logs as $value)に入れたらログにきちんと書き込むことが出来ました。
$fp = fopen("log.csv", "w");ですと1行しか書き込めなかったのですがfopenのオプションを
"a"にしたらきちんと全部書き込んでくれました。

$fp = fopen("log.csv", "a");
flock($fp, LOCK_EX);
fputs($fp, implode(",", $line) . "\n");
flock($fp, LOCK_UN);
fclose($fp);
0073nobodyさん2006/06/09(金) 15:26:10ID:???
>>71

iterationでどない

http://sunset.freespace.jp/smarty/SmartyManual_2-6-3J_html/language.function.foreach.html
0074軟式PHP2006/06/09(金) 15:46:03ID:???
>>72
まぁ、「動くレベル」ならそれでもいいけどループ毎にfopenしてたらボトルネックになるし、ロックも怪しくならんかね。
1行しか書き込まれなかったのは"w"で書き込んでたからだろうと思ったから
最後にfopen,fcloseはforeachの外で行うことと補足してたんだが。
>>67にあるようにバッファをためて最後に書き出すのが一番いいと思うぞ。
0075nobodyさん2006/06/09(金) 17:07:05ID:5EGQXMwm
>>71
section
0076nobodyさん2006/06/09(金) 17:14:26ID:???
引き継いだプログラム全体をmysql_connectでgrepしたら598個出てきやがった('A`)

こんなとき、手早く共通モジュールに移す方法ってどうやってます?
ウチだと普段はDB関係は独自クラスかpearを共通クラスで一発読みなんだけど…。
0077nobodyさん2006/06/09(金) 18:06:32ID:???
>>76
全部置換すれば一発だろ。
0078nobodyさん2006/06/09(金) 18:27:31ID:96A8iKx8
>>77
何を使ってですか?
秀丸では開ききれないくらいのファイル数です。

しかも、中の書き方もめちゃくちゃだし。
接続して、何か処理をはさんでデータベース選択したり…。
0079nobodyさん2006/06/09(金) 18:42:24ID:???
>>78
っ[ファイル置換]
0080572006/06/09(金) 21:46:36ID:???
>>58
ありがとうございます。できました。
0081nobodyさん2006/06/09(金) 21:55:08ID:???
基本的な質問ですいませんが、定数の再定義って出来ないのでしょうか?
例えば

define('DATA','123');
define('DATA','456');
echo DATA;

とすると最初に定義した'123'が表示されてしまいます。
後からクリアしたり再設定出来ないのでしょうか?
0082nobodyさん2006/06/09(金) 22:07:18ID:???
変更するようなものを定数で定義しちゃいかんよ。
0083nobodyさん2006/06/09(金) 22:10:55ID:???
>>82
レスありがとうございます。
変数に変えるようにします。
0084nobodyさん2006/06/09(金) 22:25:15ID:???
本当にくだらない質問ですみません。

http://localhost/というのは、
C:\Program Files\Apache Group\Apache2\htdocs\ですよね。

それを、他の場所で(例えばマイドキュメント)で実行したいのですが
どうすればよいですか?
0085nobodyさん2006/06/09(金) 22:27:50ID:???
スレ違いだけど
つhttpd.conf
0086nobodyさん2006/06/09(金) 22:29:57ID:???
>>84
http://localhost/というのは、
C:\Program Files\Apache Group\Apache2\htdocs\ではない
0087nobodyさん2006/06/09(金) 22:30:08ID:???
そりゃあんさん、apacheの設定のお話でっせ。
設定ファイルのhttpd.confを良く読んでごらん。分からん場合は適当な板へGo。
0088nobodyさん2006/06/09(金) 22:55:23ID:uli7/Tc4
>>85-87
すみません、解決できました。
httpd.confのDocumentRoot "E:/Web"に設定しなおしました。
その下に、
<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
とあるのですが、これも変更する必要はあるのでしょうか?
0089軟式PHP2006/06/09(金) 23:01:00ID:???
>>88
みんながスレ違いって優しく教えてくれる間にApacheスレ探したほうがいいよ。
0090nobodyさん2006/06/09(金) 23:29:05ID:???
思ったんですが、hostやUAで判別して検索エンジン専用ページを
NOARCHIVEで書き出すようにしたら誰かに怒られますか?
0091nobodyさん2006/06/10(土) 00:02:37ID:3lMQcCFE
>>88
俺優しいから教えてやるよ

【Windows】Apache初心者質問スレ 3鯖目【専門】
http://pc8.2ch.net/test/read.cgi/mysv/1128473338/
0092nobodyさん2006/06/10(土) 00:11:34ID:BKZjDDwv
GETでもPOSTでもリクエストが発生するときに、いちいち判定するのが
めんどくさいんですが、下記のコードでいいんでしょうか。
本当にGETかPOSTか判定したいときはそのときに$_SERVER['REQUEST_METHOD']
を見るつもりです。
$_REQUESTはCOOKIEまで混ざっちゃうみたいなんでやめとこうかな、と。
NULLバイト攻撃への対策のためNULL文字列は除去しています。

if ($_SERVER['REQUEST_METHOD']=='POST') {
 $GET = $POST;
}
$_GET = remove_nullchar($_GET);
$_COOKIE = remove_nullchar($_COOKIE);

//NULL文字列の除去
function remove_nullchar( $arr ) {
 if ( is_array( $arr ) ) {
  return array_map( 'remove_nullchar', $arr );
 }
 return str_replace( "\0", "", $arr );
}

0093nobodyさん2006/06/10(土) 00:17:25ID:???
PCと携帯で表示内容の違うページがあります。
そのページがどのような中身か判断する為に、
fileやfopenで調べようとしたのですが、
携帯で、作成したPHPにアクセスしても、
fileやfopenで中身を調べるとPC版を見に行ってしまいます。
携帯版の中身を調べる方法はありませんでしょうか?
0094nobodyさん2006/06/10(土) 00:25:59ID:OH+eichS
phpスクリプトの著作権表示を消した場合どのように調べられるのでしょうか?
そんなことはしないけどずっと疑問に思っているので教えてください。
0095nobodyさん2006/06/10(土) 00:48:42ID:???
PHPも少しなれて、データベースに手を出そうと思っています。
MySQLが多いようですが、他のとは何か違うのでしょうか?
0096nobodyさん2006/06/10(土) 00:59:08ID:???
include('file.php') を実行したときに、file.phpでパースエラーがあるとinclude()がエラーになりプログラムが終了しますが、
これをcatchすることはできますか。
try {
 include('file.php');
}
catch (Exception $ex) {
 ..処理..
}
でキャッチできるかと思いましたが、できませんでした。
0097nobodyさん2006/06/10(土) 01:51:42ID:akgzroAU
$array = array('1' => 'x', '2' => 'x');
array_shift($array);
print_r($array);

最初に連想配列のキー名に文字列の1を渡してるのですが、
array_shiftすると'2'=>'x'が返ってくると思いきや
'0'=>'x'になってしまいました。

数値として認識されてしまうのかもしれませんが、どうにか
'2'=>'x'として返す手段はないでしょうか。
0098nobodyさん2006/06/10(土) 02:22:26ID:rIPxBbNz
気長に待ちますが解答者があまりいないようですね・・・・
0099nobodyさん2006/06/10(土) 02:33:33ID:???
>>98
さっさと失せろ
0100nobodyさん2006/06/10(土) 02:36:24ID:???
>>97
本当だ、普通に添え字(数値の)として判断されるっぽいな。
俺にはどうしたら言いか分からん買った・・・
ただ、もしどうしてもそれでやりたいというのなら、array_shift関数を実行した
回数を変数に持っといて、取り出したい値(添え字)にそれを足すってやったらおkじゃない?
0101nobodyさん2006/06/10(土) 02:40:49ID:???
>>97
unset($a['1']);
■ このスレッドは過去ログ倉庫に格納されています