【PHP】下らねぇ質問はID出して書き込みやがれ 74 at PHP
[2ch|▼Menu]
[1からを表示]
50:nobodyさん
08/09/21 08:30:10 3CHNeolW
PHPが動いた!PHPが動いた!PHPが動いた!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=Shift_Jis">
<title>PHP入門</title>
</head>

<body>
<p>今日は、<?php echo date("Y/m/d"); ?> です。</p>
</body>
</html>

↑これをinfo.phpという名前で保存して、そのファイルを
C:\abcde\info.php
に保存して、ブラウザで
URLリンク(localhost)
にアクセスしたら、
今日は、2008/09/21 です。
と表示された!

51:nobodyさん
08/09/21 08:31:58
日記はチラシの裏へどうぞ

52:nobodyさん
08/09/21 10:44:45 3CHNeolW
エディタは何を使えばいいの?

53:nobodyさん
08/09/21 10:54:19
>>52
何でもいい、という位に制限はほぼ無い。
文字コードを意識できる程度かな。
使い慣れたものを使えばおk。

54:nobodyさん
08/09/21 11:02:56 3CHNeolW
いやいや、最高のものを推薦してくださいよ
現時点でのシェアナンバーワン、っていったほうがいいかな。

FTPソフトだったら、FFFTP、
メールソフトだったらベッキー、
みたいな。定番のなにかがあるでしょたぶん。
ブラウザだったらファイヤーフォックスみたいな。

55:nobodyさん
08/09/21 11:07:47
メモ帳でいいよ

56:nobodyさん
08/09/21 11:16:38
メモ帳だな
普及率はトップでしょ

57:nobodyさん
08/09/21 11:20:31
メモ帳に決まっているだろ。他に何か紹介する奴がいたら、宣伝乙といってやるよ。

58:nobodyさん
08/09/21 11:32:32
なぜかwindowsのphpを5.2.6にしたらpdoでpgsqlが使えなくなった
could not find driverになる
なぜだ

59:nobodyさん
08/09/21 11:38:50
pdoのpgsqlは、まだphp5.2.6に対応していないよ。

60:nobodyさん
08/09/21 11:43:15
あら、そうなの…
とりあえず戻すね
トン

61:nobodyさん
08/09/21 12:04:41
fireFTPお勧め

62:nobodyさん
08/09/21 12:12:44 i3pcIM3p
URLリンク(*******.php?id=***@***.***)

<?php
$id = $_GET['id'];
?>
で取得した変数に英数字と@と.以外が入っていた場合エラー返したいんだけど、どうすればよいですか?

63:nobodyさん
08/09/21 12:22:53
>>58
5.2.6は普通にpostgreもダメなはず

64:nobodyさん
08/09/21 12:29:07
>>62
正規表現

65:nobodyさん
08/09/21 12:48:15 i3pcIM3p
>>64 トンクス
見つかった。ありがとう。

66:nobodyさん
08/09/21 13:40:09 amudP2A4
お前等ネットの情報鵜呑みにしてんじゃねーぞ

preg_matchの方がeregより速いと言われるが
ereg と preg_match を 10万回ループさせた結果

ereg
0.2693秒
preg_match
0.3628秒


処理した文字列
$str = "piece1 piece2 piece3 piece4 piece5 piece6";
これを[a-z]+でTRUEかFALSEかを判定
もちろんprintはしない

CPUはathlon X2 BE
winXP

今他の関数でも調べてるからお前等も暇ならベンチ報告よろしく

ちなみにループさせてる間、CPU使用率が20%になった

67:nobodyさん
08/09/21 13:44:11 xzC3gd0K
PHPの処理速度を上げたいんですが
サーバー自体の物理的処理速度をiniファイル?とかでアップすることは可能ですか?
ローカルで専用PCで使ってるのでもっとPC自体に負荷かけても問題ないです。
メモリの割り当て増やす以外にいじれるところはあるのでしょうか?


68:nobodyさん
08/09/21 13:53:19
>>67
httpd.conf

69:nobodyさん
08/09/21 13:54:04
>>66
もっと複雑な正規表現にしてから計測しろよ


70:nobodyさん
08/09/21 14:01:09 amudP2A4
1000回ループ

file()と
fopen、fgetsで
半角40文字が書いたテキストを読み込んでみた


file()
0.062秒
fopen、fgets
0.0511秒

次はデスクトップにあった4892バイトテキスト

file()
0.1626秒
fopen、fgets(複数行なのでwhile使用)
0.3258秒

なるほど〜
一行ならfgetsで
複数ならfileか。

なんか調べてほしい関数ある?
今までforでやってたからforeachでもやってみよう

71:nobodyさん
08/09/21 14:01:34
blogでやれ

72:nobodyさん
08/09/21 14:02:01
ネットの情報は信じない

73:nobodyさん
08/09/21 14:22:55 amudP2A4
今10万回ループの中にループ入れてみたらアパッチは動いてるのに
IEが完全に立ち上がらなくなってPC再起動させたわ


>>69
分かった。次はマルチバイト文字でやってみる

74:nobodyさん
08/09/21 14:36:11
どうでもいいけど、そのループ調査に使った
ソースコードの内容がわからないと出てきた結果は意味が無いよ

75:nobodyさん
08/09/21 14:48:52
クライアントと鯖一緒の状態でベンチマークとってどうすんだ

76:nobodyさん
08/09/21 14:49:59
アホだなこいつ

77:nobodyさん
08/09/21 14:51:38 amudP2A4
mb_ereg_replaceと
str_replaceで
「PHPの質問はちゃんとID出して質問しろ!」という文字列の
「ちゃんとID」を「しっかりchinko」に変換してみた

各1000回ループ
mb_ereg_replace
0.0217秒
str_replace
0.0038秒


eregと
preg_matchで
文字列をメアドかどうか判定
^[]+@[]+$ ←こんな感じね

ereg
0.0066
preg_match
0.0049

少し複雑だとpreg_matchの方が速いな

78:たま ◆ExGQrDul2E
08/09/21 15:00:54 Q+K5bZwX
PHP スレッド式掲示板を作成しています。
スレッド一覧を取得するlist.txtには
スレッドno<>スレタイ<>時間
がかかれていて、スレッドログファイルに書かれるたびに更新します。
array_unshiftで、上からログを追加して、古いスレッド情報を削除しようと思うんですが、どうしたら、古いスレッド情報が
取得できるのでしょうか?

79:nobodyさん
08/09/21 15:02:05
一番下のやつ消せば?

80:nobodyさん
08/09/21 15:11:37
>>78
unset end($array)

81:nobodyさん
08/09/21 15:14:25 amudP2A4
>>78
100個スレッドがあり101個目が入ったら、一番古いのは配列の一番最後になるから
ループで書き込む時に
countして100でbreakすれば古いのは書き込まれず終了するよ

82:nobodyさん
08/09/21 15:24:46
スレ伸び始めてると思ったら日記ばっかじゃねーかw

83:たま ◆ExGQrDul2E
08/09/21 15:26:57 Q+K5bZwX
回答ありがとうございます。

たとえば、./log/2.dat
に書き込むとして、スレッドキーは
2とします。
2.datには、うまく書き込みが可能でした。

./list.txt
には
1<>テストスレ1<>9/10 11:12
3<>テストすれ3<>9/10 11:12
2<>テストすれ2<>9/10 11:10

こうなっててとします。
array_unshiftで一番上に持って来るので
2<>テストすれ2<>9/10 11:10
1<>テストスレ1<>9/10 11:12
3<>テストすれ3<>9/10 11:12
2<>テストすれ2<>9/10 11:10

書き込んだらこうなります。
古いのは、一番上以外で、ナンバーが2なのを探せばいいわけですから、
一番下にありました、
ここで、一番下を取得して、
array_splise($log,$key,1);
でいいのですが、この$keyは何にあたるのでしょうか?




84:nobodyさん
08/09/21 15:42:18
>>83
最後を削除したいだけなら
array_pop
要素の一番としたいなら値チェックしてくしかないんじゃ・・・


85:たま ◆ExGQrDul2E
08/09/21 15:45:51 Q+K5bZwX
このようなことも考えてみました。

$log = file("./list.txt");
foreach ($log as $value){
list($no,$title,$time) = explode('<>', $value);
array_unique($log);
echo "NO:".$no."<br>"."title:".$title."<hr>";
}

list.txtには
1<>テストすれ1<>9/10 11:10
3<>テストすれ3<>9/10 11:15
1<>テストすれ1<>9/10 11:10
2<>テストすれ2<>9/10 11:13
このように同じ要素
1<>テストすれ1<>9/10 11:10
があったので
array_unique($log);
で消そうと思いましたが、だめでした。
なぜでしょうか?



86:nobodyさん
08/09/21 15:46:08 amudP2A4
$keyはその消したいやつがある配列の番号count。

2番目のスレを上げで書き込む前に
ループで
if(スレ番==2){
array_splice(スレの配列、$i、1、"")//配列をループさせ、スレ番号が2の行を見つけたら、その行を空にする
}

で、新しい2をunshftで書き込む

87:nobodyさん
08/09/21 15:46:42 UFHYPm4K
質問させてください。
以下のようにクラスセパレータを含むようなクラス変数を表示させたいのですが
うまくいきません(どうも変数が通っていない)
どのようにすれば表示できるか教えてください。

<?php
$var = "no->hoge_id";

$str = '<?xml version="1.0"?><item>'.
'<no><hoge>123</hoge>'.
'<huga>456</huga></no>'.
'</item>';
$xml = simplexml_load_string($str);

// 出力無し
echo $xml->{$var};
?>


88:87
08/09/21 15:47:37 UFHYPm4K
すいません、一部間違えました。
× $var = "no->hoge_id";
○ $var = "no->hoge";

89:nobodyさん
08/09/21 15:58:15
たまちゃん応援あげ

90:nobodyさん
08/09/21 16:09:11
>>88
二つに分けりゃいいじゃん

91:nobodyさん
08/09/21 16:16:41
>>たまちゃん

アレイユニークをループの中に入れてもしょうがないので
ループの前に
$配列 = アレイunique($配列)
にしてループで表示すればいいよ

ただそれだとログの中は同名のスレだらけになるから
書き込む時にunique使って、表示する時は通常通りがいいよ

ただ、uniqueでやると改行文字もuniqueの判定基準になるから
文字コード変えると二つ表示になっちゃうよ

やっぱり古いのは""で置き換えた方がいい


あとほかの方法では
書き込むときのループで
if($i==0 or スレ番!=2){
write
}
とすれば一番新しく追加されたスレ番2以外の2は書き込まれないよ


92:nobodyさん
08/09/21 16:17:50 amudP2A4
ID出し忘れた
というかもうどうでもいい

ひたすらベンチするわ

93:nobodyさん
08/09/21 16:20:16
>>92
いちいち報告しなくていいからあとはチラシの裏でやってくれな

94:nobodyさん
08/09/21 16:34:17
>>92
クソの役にも立たないベンチはどうでもいいからブログにでも書いといてくれ

95:90
08/09/21 16:36:13 UFHYPm4K
返信ありがとうございます。
後出しぽくて申し訳ないですが本当はもっと大きなXMLを読み込んでいて、
階層の深さが特定できない状態という前提で考えているので
$var = "no->hoge->foo->bar"; のように変数名も受け付けるように読み込みたいのです。

splitで分割して、それをセパレータでつなげるというのは挑戦してみたんですが
どうにもうまくできなくて…。おわかりの方はいらっしゃいますでしょうか?


96:88
08/09/21 16:37:12 UFHYPm4K
↑すいません、また間違えてしまいました。
90ではなく88
>> 90さんへの返信でした

97:nobodyさん
08/09/21 16:38:23
階層の深さが特定できないなら余計に文字列でなく要素ごとに管理したほうがいいと思うが
splitでもいいんじゃない?


98:88
08/09/21 16:55:26 UFHYPm4K
>>97さん
XMLの要素名を配列の要素に入れて、それをくっつけて参照できる形に組み立てる感じでしょうか。
僕が知らないだけなのかもしれないんですが、ちょっとその方法がわからないんです。

ちなみにsplitで最初に書いたコードはこんな感じです。

<?php

// XML読み込みは省略

$classvars = split("->", $var);
$num = count($classvars);

for ($i=0; $i<$num; $i++){
if (($i+1) != $num){
// ここでエラーが出る
$class .= $classvars[$i]->;
} else{
$class .= $classvars[$i];
}
}

echo $xml->{$class};
?>

99:nobodyさん
08/09/21 17:06:01
たまちゃん応援あげ

100:nobodyさん
08/09/21 17:11:30
<?php
$str = '<?xml version="1.0"?><item>'.
'<no><hoge>123</hoge>'.
'<huga>456</huga></no>'.
'</item>';
$xml = simplexml_load_string($str);
$var = "{$xml->no->hoge}";
echo $$var;

これじゃだめなん?要素ごとに分けないやり方の方が良いのなら。

101:nobodyさん
08/09/21 17:16:43
すまん勘違いだ。
123を表示できればいいのに$123とかよく分からないことになってる。

よく考えてみたら結局そのまま $xml->no->hoge でいいような気もするんだが
>>87みたいに可変変数使う理由って何なの?

102:88
08/09/21 17:53:49 UFHYPm4K
>>101さん
function showElementValue($node){

// 省略
echo $xml->{$node};

}

実際にはこのようにメソッドとして呼び出しているので表示したいノードを引数にして書きたいのと、
$xml-> というような共通項は関数内で処理できたらなと思ったのが理由です。
冗長になると思ってやめたんですが、意図通りにちゃんとメソッドとして例示した方がよかったですね。

103:nobodyさん
08/09/21 18:13:41
オブジェクトオペレータ込みだと上手いこと展開してくれないんだね。
PHPなんだからしてくれてもいいのにね。

やっぱ要素ごとに渡してくっつける方法か、
関数に分けて入れない方法を検討したほうがいいかもね。
省略中でどんな処理してるか分からんから何とも言えないけど。

104:nobodyさん
08/09/21 18:19:16
汚いけどevalで出来るよ

105:nobodyさん
08/09/21 18:21:35
なにがしたいのかさっぱりわからん

106:nobodyさん
08/09/21 18:43:54
なんか…



必死だなw

107:nobodyさん
08/09/21 18:58:52
>>106
だまれっ!下僕の分際でいきがるな!!!!!

108:nobodyさん
08/09/21 19:00:01 kQIo17gb
Linuxです。
PHPからmail()とかでメール送りたいのですが、メール鯖をインストールするのも面倒なので、
プロバイダのサーバー使えるようにできないもんですかね。
Windowsではphp.iniの設定でなんとかなるみたいですが・・

109:88
08/09/21 19:05:46 UFHYPm4K
ありがとうございました。
結局、以下のように階層を9に絞って手動処理してみました。
>>104さんの仰るようにevalも試していますが、いかんせん
始めて扱う関数でうまくいきません。よければ教えてください。

function showElementValue($node){

$path = parseNode($node);

echo $path;

}

function parseNode($node){

$cv = split("->", $node);
$count = count($cv);

// オブジェクトオペレータの展開がうまくいかないので、すごく冗長な手動処理
switch ($count){
case "1":
return $xml->$cv[0];
case "2":
return $xml->$cv[0]->$cv[1];
// 以下同じように続く
}

}

110:nobodyさん
08/09/21 19:10:46
>>108
phpで直接ISPのメル鯖にsmtp投げればいいだけの話と違うん?

111:nobodyさん
08/09/21 19:17:57
>>107
下僕、ゲッ、僕σ(´Д`)?

(´・ω:;.:...

112:nobodyさん
08/09/21 19:22:08
>>111

113:88
08/09/21 19:27:37 UFHYPm4K
以下でなんとかできましたので、ご報告しておきます。
ありがとうございました。

eval('$node = $xml->'. $node .';');

114:nobodyさん
08/09/21 19:32:40
ちょw

115:nobodyさん
08/09/21 19:35:44

showElementValue($xml->no->hoge);

function showElementValue($node){
// 省略
echo $node;
}

なんで、これじゃだめなん?

116:nobodyさん
08/09/21 19:58:39
>>115
>>102


117:nobodyさん
08/09/21 21:47:12
>>108
ライブラリでもあると思うが

118:nobodyさん
08/09/21 21:52:10 EC1BuyjV
レンタルサーバでPHPをCGIとして利用したい場合、
#!/usr/local/bin/php
みたいに1行目に書く必要がありますが、
このパスがわかりません。
phpinfo();で出力した情報のどこを見ればよろしいのでしょうか?
前提としてその鯖ではPHPをCGIとして動かせるということだけはわかってます。
鯖管に聞くのが一番早いのですが、後学のために教えてください。

119:nobodyさん
08/09/21 21:53:58
仕様に載ってる

120:118
08/09/21 22:01:48 EC1BuyjV
>>119
マニュアルに書いてるということでしょうか?
仕様という項目が見当たらないのですが、
もしよかったらどこを見ればよいか教えてください。

121:nobodyさん
08/09/21 22:05:35
載ってないの?じゃ見てみるからURL教えてくれ

122:118
08/09/21 22:08:35 EC1BuyjV
>>121
サーバの仕様ってことですか?
一応のせてみますので、よろしくお願いします。

URLリンク(www.usamimi.info)

123:nobodyさん
08/09/21 22:12:51 lcTeMIBY


124:nobodyさん
08/09/21 22:13:11
まぁ普通に考えて
/usr/local/bin/php or /usr/bin/php
ではないでしょうか

125:118
08/09/21 22:20:36 EC1BuyjV
レスありがとうございます。
/usr/local/bin/php
/usr/bin/php
拡張子をcgiにパーミッションを755にし、どちらも試しましたが、
テキストとして普通に表示されてしまいます。
cgi-binというフォルダがあったので、
そこに入れてみて実行してみましたが、500が返ってきました。
phpinfo();での確認が無理なようでしたら、あきらめたいと思います。

126:nobodyさん
08/09/21 22:25:19
その挙動は何かおかしいんじゃないの?
perlで書いたcgiなら動くのかい?
俺は良く知らないので詳しい人待ち。

そんなことより、ちゃんと良さげなフォーラムが用意されているのになぜ聞かないんでしょうか

127:nobodyさん
08/09/21 23:11:18
「PHPについては、SuEXEcが掛からない為、特別なパーミッション設定などはありません。」って書いてあるな
PerlだけSuExecしてるってことはないだろうから、CGI版PHPじゃないんじゃね?
仕様の表ではCGIの項目にPHP5ってあるけど誤記かもしれん(鯖缶がアホならCGIとモジュール版の違いが分からんだろうし)

128:nobodyさん
08/09/21 23:45:44
>>118
そもそもphpをcgiで動かせる鯖なのか?

129:nobodyさん
08/09/22 00:32:06 FSj+R9kA
"aaa","bbb","ccc"

というダブルクォーテーションで囲まれた文字があるとします。
これを文字だけ取り出して配列に入れるにはどうすればいいのでしょうか?
ファイルではないので、fgetcsvは使えませんでした。

130:nobodyさん
08/09/22 00:32:09
モジュール版だったら、.phpで。
CGI版だったら、.cgiで。

動かすってこと?

131:nobodyさん
08/09/22 00:38:55
>>129
explode
>>130
そんなのどうとでも設定できる

132:nobodyさん
08/09/22 00:47:40
>>131
揚げ足とって楽しい?
そうやってリアルでもやってて人から嫌われてるだろ?

133:nobodyさん
08/09/22 00:52:06
ど、どの辺が揚げ足・・・?

134:nobodyさん
08/09/22 00:54:46
>>130 一般的にはそうだが、>>131も正解。
ていうか鯖管に聞けよ

135:nobodyさん
08/09/22 01:00:26
>>131=>>133=>>134

136:うんこ ◆otPHSLbxjY
08/09/22 01:02:48 JxuRK2av
よくさぁ、掲示板とか作るけど、ログをDBに入れるかdatファイルに保存するか悩むやついるよね。
「DBの方が速そう」とか。

今日(というか昨日)ベンチしまくって分かったんだけど
DBの方が遅いわ。
1000行書き込んで表示させたんだけどdatの方が速かった。

「そんなわけねーだろバカ」って思った?
なぜかって、DBだって結局取り出したあとPHPの変数に入れてPHPでループ表示させるので
違いはデータをDBから読みとるかファイルから読みとるかの違いでしかないんだよね。
で、DBだってデータ圧縮されて保存されてるわけじゃないから
HDDが読みとるデータ量はほぼ同じ。
結局速度は同じなんだよね。
でもDBはDBに接続する時に少し時間がかかってるようだ。
ということで単純にデータを取り出すだけならdatファイルがいい。
ただし、検索したり並び変えたりするのであれば
PHPのeregやソート関数を使うよりDBの方が断然速いのでDBを使おうな。

137:nobodyさん
08/09/22 01:12:19
>>136
あのさ、datファイルに保存する奴の目的って
「後からログを検索したい」だと思うぞ。

そりゃ読み込むだけならdatファイルの方が早いのは当たり前だ

138:nobodyさん
08/09/22 01:13:14
もう相手すんな

139:nobodyさん
08/09/22 01:13:29
間違えた

datファイルに保存する奴の目的って

ログを保存する奴の目的って


140:nobodyさん
08/09/22 01:13:58
どこを立て読み?
ていうか駐留しなくていいからそろそろ名無しに戻るか消えてくれないかな
スカトロマニアはこのスレにはいないので

141:nobodyさん
08/09/22 01:22:51
>>136
どこに新しい要素があるのその話

142:nobodyさん
08/09/22 01:25:54
DBスレいって書き込んで来い
盛大に笑われるからw

143:nobodyさん
08/09/22 01:39:27
>>136
普通の人はね、ファイル名とハッシュだけDBに入れてデータはファイルで持つとか
用途に応じて格納場所変えるのね。まぁ試行錯誤するのは悪くないのね。

ところで質問は?

144:nobodyさん
08/09/22 01:47:51
>>143
横から質問で申し訳ないんだけど、

>普通の人はね、ファイル名とハッシュだけDBに入れてデータはファイルで持つとか

そうなの?MTのDB構造とか見てると、ログはテーブルに全て書き込んでた

145:nobodyさん
08/09/22 01:50:05
お前は何を言ってるんだ

146:nobodyさん
08/09/22 01:53:39
>>144
用途に応じてと言う言葉が見えんのか・・・

次の質問どうぞ

147:nobodyさん
08/09/22 01:55:02
「用途に応じて」って言ったら、どの質問もそれで片づけられるなw

148:nobodyさん
08/09/22 01:58:23
いや、その片づけ方は難度高いぞ

149:nobodyさん
08/09/22 02:03:02
>>144
blogのログとかは利便性もあってDBに全部放り込むとか良くあるのね。
逆に考えるのね。何故MTは全部DBに放り込んでるのか、そう考えるのね。
そういう思考できないとSEとかPGとしては暗い未来が待ってるのね。

ぼちぼちウザいからこの文体やめるのねw

150:nobodyさん
08/09/22 02:05:24
とりあえずうんこ野郎には構ってやるな
有益な意見交換ができるどこか
こうやって口論を誘発させるレスばっかなんだから
前スレでの教訓をいい加減生かしてくれ

151:nobodyさん
08/09/22 02:06:35
>>136
さあプログラムを書く作業に戻るんだ

152:nobodyさん
08/09/22 02:10:22
>>150
うんこ自身はともかくその後のやり取りは割と有益に見えるがな

153:nobodyさん
08/09/22 08:11:46
>>140
せっかくトリつけてるんだから、NGにしとけよ。

154:nobodyさん
08/09/22 08:59:46
>>136
初心者のボクには役に立った。
でもなぜネット上では「preg_matchの方がeregより速い」という情報があるのかな。
というかマニュアルにも書いてあるし。これPHPの制作者が書いたんでしょに。

155:nobodyさん
08/09/22 09:22:53
>>154
マニュアルにあるように「多くの場合pregの方が早い」
全ての状況でeregより早いって訳じゃないんだな

156:nobodyさん
08/09/22 09:23:40
>>154
まぬあるにはどこにもpregのが方が早いとは書いて無いぞ

>注意: Perl 互換の正規表現構文を使用する preg_match()  のほうが、多くの場合 ereg() よりも速く動作します。

ここに書いてあるのは”多くの場合”だ


157:nobodyさん
08/09/22 09:30:56
なるへそ

158:nobodyさん
08/09/22 09:37:39
私はメモリの使用量や比較量のオーダを計算して客観的に見ることができるんです。
あなたたちとは違うんです。

159:nobodyさん
08/09/22 09:40:12
お前は何を言っている

160:nobodyさん
08/09/22 10:01:31
>>158
まあ最終的にはそういうことだな

161:nobodyさん
08/09/22 10:07:11
そういや初心者未満スレで
URLリンク(www.php.net)
> 注意: PHP 5以降、デフォルトで値はリファレンス渡しとなります。
これ訳が間違ってるって指摘あったぞ

162:nobodyさん
08/09/22 12:08:11
PHPとjavaScript、
どっちが難しい?

163:nobodyさん
08/09/22 12:16:05
クロスブラウザのことがあるからjavascriptじゃね?ライブラリで吸収すれば事足りるが

164:nobodyさん
08/09/22 12:24:45
ブラウザ上のクライアントサイドで間違っても「ごめんねテヘッ☆」で済むことがほとんどだが
サーバーサイドで間違うと民事補償で首が回らなくなる

セキュアに作るのが大前提の昨今ではPHPのほうが難しいと言わざるを得ない

165:nobodyさん
08/09/22 12:29:36
>> サーバーサイドで間違うと民事補償で首が回らなくなる
民事補償で首が回らなくなるようなシステムをphpで作るわけないだろw
もう少し考えて物言ったほうがいいよ。

166:nobodyさん
08/09/22 12:54:53
>>165
バカだなあ
本当にバカだなあ

167:nobodyさん
08/09/22 16:23:26 Ib6bzj0X
PHPでなにかエラーがあったときに、エラー内容がHTMLに出力されますが、
同じ内容をログファイルかなにかに出力させることはできますか。
Ajaxを使っていると、エラーがおきても 200 OK でかえってくるので、
わかりにくいです。


168:nobodyさん
08/09/22 16:37:37
log_errors

169:たまちゃん ◆ExGQrDul2E
08/09/22 22:32:32 igNMx8gy
先日はお世話になりました
o(・◇・)o

おかげさまで、成功いたしました。

今回は、ユーザーエージェンとから、ブラウザ名を取得する配列を作ろうと思います。

UAにMSIEが含んでいたらIE
Sleipnir/が含んでいたらSleipnir

みたいに、たくさんのブラウザ情報を取得したいです。教えてください。

170:たまちゃん ◆ExGQrDul2E
08/09/22 22:33:38 igNMx8gy
教えてくださいというのは、ブラウザ情報です。

preg_matchで、マッチさせたいと思います。

よろしくお願いします

171:nobodyさん
08/09/22 22:47:03
何が分からんの?

172:nobodyさん
08/09/22 22:52:54
>教えてくださいというのは、ブラウザ情報です。

全ブラウザのユーザーエージェントを教えろと言っているか?
だったらスレ違いだヴォケ

173:たまちゃん ◆ExGQrDul2E
08/09/22 23:32:56 igNMx8gy
すべてではないです。

有名なブラウザを5〜8個くらいお願いしたいです。


174:nobodyさん
08/09/22 23:42:09
なんのために?
書き出すJavaScriptの分岐でもするのかな

175:nobodyさん
08/09/22 23:50:57
>>173
訪問者のUA記録してそっから上位のブラウザしぼって調べればいいのでは?

176:nobodyさん
08/09/23 00:09:15
>>174
XHTMLとか使うんだと思う
あれはIEは読めない

177:nobodyさん
08/09/23 00:40:53
>>173
とりあえず「ユーザーエージェント 一覧」でググれ
php関係ねーよその質問

178:nobodyさん
08/09/23 06:12:56 pjs6yXW6
たまちゃん応援あげ

179:nobodyさん
08/09/23 06:35:46 NJoiFrJ7
PHPってCGIじゃないから
パーミッションの勉強はしなくていいの?

180:nobodyさん
08/09/23 07:15:24
>>179
ディレクトリもファイルも全部に777にしとけばそれ以上気にする必要はない

181:nobodyさん
08/09/23 08:47:20
>>179
PHPだってCGIだ

182:nobodyさん
08/09/23 09:18:57
>>179
「PHP CGI版 モジュール版」でググってこい

183:nobodyさん
08/09/23 10:25:58
>>181
その回答には疑問を呈さざるを得ない

184:nobodyさん
08/09/23 11:47:07 EW2yGFvW
【OS名】WindowsXP
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
PHPを使ってWEBアプリのファイルマネージャを
作成しようと思っていますが、
ローカル側のファイル一覧の取得及び
ファイル操作のやり方がわかりません
くだらない質問ですみませんが
ご教示ください

185:nobodyさん
08/09/23 12:03:36
>>184
まあ基本的にはCGIとかではローカルデータの取得はできません
(できたらページにアクセスしただけでじゃんじゃんファイルがアップロードされて困る)

プラウザ上でローカルディスクをいじれるものを導入してください
IEとActiveXコンポーネントが定番なのかな

186:nobodyさん
08/09/23 12:06:53 EW2yGFvW
>>185
なるほど
ローカル側にはなるべくアプリを入れないで方法を
考えたかったんですが、
こればかりはしょうがなさそうですね・・・


187:nobodyさん
08/09/23 12:49:56
しかしなんだな。184の日本語を理解して、よくぞ185のような適切なアドバイスが
できるもんだな。オレには何の相談か検討がつかなかったが。

188:nobodyさん
08/09/23 14:14:19
>>185
できるよ普通に

189:nobodyさん
08/09/23 14:32:34
いやいやちょっとまて。
自分のパソコンの中で
アパッチを動かして
localhostでやりたい、という
意味だったのかもしれんぞ。

それだったらPHPで可能では?

190:nobodyさん
08/09/23 14:32:52
>>188
できねーよ
絶対に、ユーザーが明示的に単一データをsubmitする必要がある(それは意図ではあるまい)
これができるならアップロードデータの一時保持問題で世界中のWebプログラマが困ったりせんわい

CGIからローカルユーザーのデータやディレクトリ構成を読み込めるなら
それはWebブラウザのセキュリティバグなので報告しろ

191:nobodyさん
08/09/23 14:34:45
>>189
そういうのはローカルとは言わん
2000歩くらい譲ってローカルホスト略してローカルだったとしても

というか>>186みる限り普通にクライアント側のディスクいじりたいんだろ

192:nobodyさん
08/09/23 14:38:51
>>184で「ローカル側の」ってあるからリモート側にCGIがあると考えるのが普通だわな。
当然CGIでは無理っつー話にはなる。(できたら怖ぇw)

まぁネットワーク越しの共有とか駆使すればそれっぽいことはできるがCGIの仕事じゃねーわな。

193:nobodyさん
08/09/23 14:52:59
javaとjavascriptを組み合わせると可能

194:nobodyさん
08/09/23 14:56:53
新しい質問

外部に公開してない、
社内限定サービスを、
携帯電話でアクセスして
ページを見たりすることは不可能?

195:nobodyさん
08/09/23 15:00:49
>>1

196:nobodyさん
08/09/23 15:03:48
>>194
>外部に公開してない

の時点でどう見ても不可能

197:nobodyさん
08/09/23 15:06:02
>>194

誘導

【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
スレリンク(php板)

198:194
08/09/23 15:07:02
すいません、何回も質問するためにIDは絶対だしたくないのでそちらに行きます


199:nobodyさん
08/09/23 15:07:38
でも社内パソコンだったら、200台くらい
からアクセスできて、もちろん社内ネットワーク
限定ですけど、その目の前のパソコンで動いている
画面に、手持ちの携帯からはアクセスできないと
いうのが、はがゆくて。やっぱ無理?その社内サーバーに
携帯でアクセスできれば済む話なんだけど、携帯って
絶対にドコモとかのサーバーを通さないと通信できないんだよね。

つまり

[携帯]−[社内サーバー]

これができればいいんだけど,実際は

[携帯]−[ドコモ]−[社内サーバー]
こうするしかないのかなーって。

200:nobodyさん
08/09/23 15:07:59
>>194
できるが、社内に会社の回線とは別の専用のサーバが必要
そのサーバに携帯電話でアクセスして、社内サーバのデータを取得するという流れになる
これがバレたらおおむね社内処分対象だが、可能

201:nobodyさん
08/09/23 15:10:00
>>200
3日くらいで発覚しそうだが…
ケータイからアクセスしたいですと管理者に言うほうが早いな

202:nobodyさん
08/09/23 15:12:51
>>199
無線LAN付きの携帯でも買えよ。
あとスレ違い。

203:nobodyさん
08/09/23 15:14:05
>>199
というかなんでそこまでして携帯で見たいのかがわからん

204:nobodyさん
08/09/23 15:28:41
IDなしの質問だぞ

205:nobodyさん
08/09/23 15:31:02
>>198
別に何回質問したっていいじゃない
問題なのは的を得ない質問を延々と繰り返したり
全く理解してないのに持論を展開しつつ理解したつもりで次の質問したり
明らかに自分の意思でやろうというのが感じられず
全てわからないで最初から全部他人任せな質問者
解決してでは次の質問でこれをお願いしますというのならたたかれたりしない

206:nobodyさん
08/09/23 15:59:33
>>205
偉そうに説教してくれるな

207:nobodyさん
08/09/23 16:06:36
IDなんて1日で変わるんだからどうでもいいっていうか>>194は釣りだよね

208:nobodyさん
08/09/23 16:19:05
>>184
URLリンク(navphp.sourceforge.net)
ほれ、可能

209:nobodyさん
08/09/23 16:34:10
>>208
リモート側のファイル操作しかできないんですが・・・

210:nobodyさん
08/09/23 16:38:58
>>200
それだとドコモのネットワークを通過するじゃない。

211:nobodyさん
08/09/23 16:48:42 L7uUnnXk
OSX 10.5.5 での質問です。

Server version: Apache/2.2.8 (Unix)

PHP 5.2.6 (cli) (built: Jul 17 2008 23:04:49)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

がインストールされています。PHPからOracleのInstantClientを
使おうと思って作業しました。
$ sudo php go-pear.php
$ sudo ./pecl install oci8
というような処理を実行しました。その後 httpd.confとphp.iniを書き換えて、
コマンドラインで
$ php -m
すると oci8 があり、また実際にサーバーに接続して select * from dual
するスクリプトを実行して正常に処理できることが確認できました。

ですが、
$ sudo launchctl load /System/Library/LaunchDaemons/org.apache.httpd.plist
などとしてapacheを起動すると、apacheのerror_logに

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613/oci8.so' - (null) in Unknown on line 0

というログが残り、phpinfo()で確認してもやはりモジュールがロードされていません。
DYLD_LIBRARY_PATHなどの環境変数がうまくわたっていないのかと思い、org.apache.httpd.plistに
設定を追加して再起動後、ps -xE で httpdにその環境変数が渡された状態で実行されていることを
確認しましたが、やはり警告がでています。

このあとどのようなことを確認すべきでしょうか?
よろしくおねがいします。

212:nobodyさん
08/09/23 16:59:29
InstantClientのverは?

213:nobodyさん
08/09/23 17:16:45 L7uUnnXk
InstantClient 10.2.0.4 for Mac OS X (Intel x86)
のbasic, sql*plus, sdkを www.oracle.com からもらってきて入れました。
sqlplus コマンドは正常に実行できました。
phpのcliからのoci8呼び出しも正常に動いているようです。

なのに警告がでる理由がわからず手詰まりになってしまいました。

よろしくおねがいします。

214:nobodyさん
08/09/23 17:21:46 zv1b+5oE
>>184
要するにWAMPやLAMPでのWEBアプリで
クライアント側のファイルを操作できる
エクスプローラを作りたいって事だろ

WAMPやLAMPじゃできねぇよ!

まずは何で出来ないのか(出来てはならないのか)を
勉強しましょうね


215:nobodyさん
08/09/23 17:57:22
ローカル って言葉がちょっと分かりにくい
クライアントかサーバにすればこんな混乱は起きなかった

216:nobodyさん
08/09/23 18:02:33 iCMm4+DU
<?php
header("HTTP/1.0 404 Not Found");
?>

このようなページを作成したのですが、
404 Not foundのページが表示されません。
これはヘッダーを返すとブラウザが自動的に404を読み込んでページを返してくれるというものじゃないのでしょうか?

217:nobodyさん
08/09/23 18:15:37
その404のページはどこから読み込むのさ?

218:nobodyさん
08/09/23 18:17:26 iCMm4+DU
ErrorDocument 404 /error.html

とhtaccessにて指定しているのですが、これではダメなのでしょうか?

219:nobodyさん
08/09/23 18:19:27
>>213
oracle依存の問題っぽいからDB板に移った方がいいかもしれん

220:nobodyさん
08/09/23 19:03:27 L7uUnnXk
そうですか…
なんでもいいので気づいたことなどあれば教えてください。
しばらく足掻いてみます。

221:nobodyさん
08/09/23 20:08:59
>>220
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。

222:nobodyさん
08/09/23 20:24:44
別にID出してるうちは問題ないような

223:nobodyさん
08/09/23 20:31:53
>>211
php.iniのextension記述コメントアウトしたらどうなる?

224:たまちゃん ◆ExGQrDul2E
08/09/23 20:34:47 juer5RVw

PHPで掲示板を作っています。
書き込み後に、headerでトップに飛ばすのですが、
携帯、Windows/Vista
なら、普通に大丈夫ですが、

XPのIEから書き込めば、画面が白くなり、更新ボタンを押さなければ、書き込むことができません。
VistaではできてXPではできないのはなぜでしょうか?

array_push("ログ配列",$data);
$fp =fopen(ログファイル,"w");
for($i=0;$i<count(ログファイル);$i++){
fwrite(logfile,$log[$i]);
}
@fclose($fp);

header("Location: $jump");

exit();

?>

225:nobodyさん
08/09/23 20:39:08
XPのIEって6と7どっちだよ

226:たまちゃん ◆wSaCDPDEl2
08/09/23 20:41:02 juer5RVw
IE6です。



227:nobodyさん
08/09/23 20:50:12 L7uUnnXk
>>223
extension=oci8.so をコメントアウトしてみました。
cliは Fatal error: Call to undefined function oci_connect() が
出るようになります。
apacheの起動時には error_log の警告が消えますが、oci8 は phpinfo()
には現れません。


228:nobodyさん
08/09/23 20:58:18
おくれましたが、
>>168
ありがとうございました。


229:nobodyさん
08/09/23 20:59:22
>>227
ok。じゃあ今度はそのextension記述のoci8.soをフルパスで書いてみ。

230:たまちゃん ◆ExGQrDul2E
08/09/23 21:03:39 juer5RVw
IE6には、何かバグのようなもの


header();が対応していない

とかあるのですか?

231:nobodyさん
08/09/23 21:05:35 L7uUnnXk
ごめんなさいタイムアップなので続きはまた後日。。。

extension=/usr/lib/php/extensions/no-debug-non-zts-20060613/oci8.so
と書くという意味でしょうか?

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613//usr/lib/php/extensions/no-debug-non-zts-20060613/oci8.so' - (null) in Unknown on line 0
こうなりました。。。

extension_dir は現在コメントアウトしています。
extension=oci8.so と書いているときは、
extension_dirをコメントアウトするか、extension_dir=/usr/lib/php/extensions/no-debug-non-zts-20060613/
としているときに CLI が正常に動きました。

とりいそぎ報告。どうもありがとう。


232:nobodyさん
08/09/23 21:09:49
>>231
・・・本当にextension_dir無効になってるか・・・?

233:nobodyさん
08/09/23 21:13:25 silsv7a8
たまちゃん応援あげ

234:たまちゃん ◆ExGQrDul2E
08/09/23 21:23:54 juer5RVw
>>233
毎度毎度応援ありがとうございますo(*・◇・)o

感謝します。

IE6のブラウザだけ、画面が真っ白になるというのは、なぜでしょうか…


header($header);

echo "ジャンプ失敗";

exit();


exit;は使ってはいけないでしょうか…

235:nobodyさん
08/09/23 21:28:16
>>234
vistaでも何でもいいから正常に表示されてるときのhtmlを晒すかどこかにうpしろ

236:nobodyさん
08/09/23 21:42:18
>>234
1つ言えるのはPHPの問題ではない
サーバサイドの言語でブラウザ別に異なる結果が返ってくるということは
明示的にそうする意外はありえない
ブラウザの挙動がおかしいか変なhtmlはいてるとしか思えない

237:nobodyさん
08/09/23 22:26:10
Includepathで指定されてるディレクトリって
file_existsでは省略できないんだな

238:たまちゃん ◆ExGQrDul2E
08/09/23 22:30:13 juer5RVw
たしか、

<html>
<head>
<title>

</title>

<body>

……

で、ヘッドを閉じ忘れていたかもしれません。
問題ありますか?

239:たまちゃん ◆ExGQrDul2E
08/09/23 22:37:39 juer5RVw
閉じましたけど、とくに問題はないです。

IEが書き込みできないのは、困ります。
だいたいの人はIEを使ってると思うので…

240:nobodyさん
08/09/23 22:38:30 JwvtqXNH
■index.php
<?php
if($mode=="js") {
header("Content-Type:text/javascript");
echo <<<EOM
window.onload = test;
function test() {
for(i=0;i<5;i++) {
alert("test");
}
}
EOM;
} else {
echo <<<EOM
<html><head>
<script type="text/javascript" src="./index.php?mode=js"></script>
</head><body>...</body></html>
EOM;
}
?>


このように書いたときにスクリプトの中に<や>が入ると(※8行目)上手く動作しないのですが
何か良い改善策はないでしょうか?

241:nobodyさん
08/09/23 22:38:52
>>238
とりあえずそのHTMLが表示されていればLocationはできない

header('Location: URLリンク(example.com)');

こういう形になってる?
$headerの内容を表示してみ

242:nobodyさん
08/09/23 23:05:54
>>240
ヒアドキュメントを使わない

243: ◆pv9EB/sLdI
08/09/23 23:51:24 +JSHtbhX
参考書を使って勉強しています

参考書の中で
foreach((array)$example as $key => $value)
という文が出てきたのですが、(array)の部分に関する説明が全く書いてありません


(array)を変数の前に付けるとどうなるのか
他に変数の前に(○○)と記述する場合はあるのか

この2点について教えてください

244:nobodyさん
08/09/23 23:55:24
>>243
URLリンク(jp.php.net)

245:242 ◆pv9EB/sLdI
08/09/24 00:02:32 RHQqV9in
>>244
よく読んで勉強してみます
素早い返答ありがとうございました

246:nobodyさん
08/09/24 01:50:00
require_onceで失敗したときにエラーコードを吐き出して終了させたいのですが

require_once "hoge.php" or die("エラーっす");

としてみたのですが
Failed opening required '1'
とエラーが表示されて自分で書いたエラーが出力されません。
どのようにすればエラー処理ができるのでしょうか?

247:nobodyさん
08/09/24 02:55:44
>>246
はいどうぞ
URLリンク(www.php.net)
includeのページも読んでおけよ

248:nobodyさん
08/09/24 04:18:52
hoge.php
<?php
$nullpo = 'gatt'';
?>

***.php
<?php
$bar = include 'hoge.php';
if (!$bar) die("逝ってよし");
?>

249:211
08/09/24 07:06:45 0bs2J/yD
>>232
無効とはどういう状態のことでしょうか? 231での変更をもとに戻し、
$ grep "^[[:space:]]*ext" /etc/php.ini
extension=oci8.so
$
という状態です。

CLIで動作するかどうかを見ても意味ないかもしれませんが。。。
$ php ocitest.php (←自分で作ったものです)
$ php -d extension_dir="" ocitest.php
$ php -d extension_dir="/usr/lib/php/extensions/no-debug-non-zts-20060613/" ocitest.php
いずれも期待通りの動きです。

$ php -d extension_dir="./" ocitest.php
PHP Warning: PHP Startup: Unable to load dynamic library './oci8.so' - (null) in Unknown on line 0
Fatal error: Call to undefined function oci_connect() in ...
となります。


250:nobodyさん
08/09/24 13:07:51
>>249
CLIとmod_phpは別物だからいったん離れようぜ。
>>231のエラーメッセージを見る限り明らかにpathがおかしい。

251:nobodyさん
08/09/24 13:49:22 tcsExBCJ
PHPのRoRは
いくつあって、
名前はなんていうの?

252:nobodyさん
08/09/24 14:03:57
>>251
そこでRoRが出てくること自体・・・
フレームワークのことを言いたいのか?と予想してみる


253:nobodyさん
08/09/24 14:19:47 tcsExBCJ
>>252
そう

254:瀬戸内みかん
08/09/24 14:30:17 7nXE5EDo
PHPプログラマーとして就職したいんですけど
実務経験がほとんどありません。
独学でプログラミング歴が大体5ヶ月ぐらいです。
開発現場で働いている方はどのぐらいのレベル何でしょうか?

年齢は25歳の人間です。

255:nobodyさん
08/09/24 14:34:50
>>251
ググればいくらでも見つかるだろ
あえてここで質問している意図が見えないが・・・

phrame
Mojavi
Agavi
Ethna
Maple
CakePHP
symfony
Zend Framework

後半3つがRoRぽいヤツだな
「いくつあって」と言うが、挙げればキリがない
↑のが使えるかどうかは別に知名度の高いやつ

256:nobodyさん
08/09/24 14:47:44
>>254
5ヶ月か、頑張りどころだな

規模や受けてる仕事の内容で現場のレベルは変わるが
俺の場合は今年6年目
PHPのソース書くだけでなく、Zendのコードが読める、PECLも作れる
自社開発のフレームワークも管理してる、ってレベル
PHPに限った内容ではこんなもん、他の知識やスキルにも精通しなきゃならん段階には入ってる

257:nobodyさん
08/09/24 14:54:18
>>254
マルチ乙

258:nobodyさん
08/09/24 14:57:51
>>256
誰がお前の自己紹介なんか聞いてねーよw
こういう自己主張の強い奴は、どこに行っても嫌われるから、
こういう奴だけにはならないように、という反面教師になった。

この業界、人間的に欠落している人が多いから、
素直な性格で新しい事を修得するのに積極的な人は、
現時点での実力がなくても、将来性を買って採用してくれる企業は一杯ある。

259:nobodyさん
08/09/24 15:03:08 tcsExBCJ
>>255
結局どれを使えばいいのかな?
rubyだったら、RoR一択なので考える
こともないのですが。

260:瀬戸内みかん
08/09/24 15:10:51 7nXE5EDo
いろいろアドバイスありがとうございます。
周りにプログラマーいないんで・・・
自分の書いているコードが正しいかどうか、判断もつきません。

ネットで検索して求人内容など見ているんですが
自分では到底できそうもないことばかりです。

お勧めの参考書とかあれば教えてもらえますか?



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4072日前に更新/235 KB
担当:undef