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

このエントリーをはてなブックマークに追加
115nobodyさん
おかしな事になっているので
お暇な方いたらちょっとお付き合いください。

OOPの勉強していて、あるプログラムを作ってみたのですが
エラー表示が出ずに
http://www.gomo.jp/exp/ref_logger.php
「表示が出きません。サーバーが見つからないか、DNS エラーです。」という画面
(たぶん他の方もそう見えると思うのですが、うちではこのページはそういう画面です。)になります。

このプログラムがなぜ動かないかはさておき、なぜエラーじゃなくこういう画面になるのでしょうか?
以前にも別のサーバーで同じような状態になり、デバッグに非常に手間取ったことがあります。
その時はたしか、存在しないファイルをrequireしていたのか、存在していないクラスをnewしてたとか、そんな感じの間違いだった思います。

くどいようですけど、いちおう確認のため・・・
私が疑問に思っているのは、このソースがなぜ動かないかではなく、なぜエラー表示が出ないかです。

ちょっと恥ずかしいけどソースさらします。
http://www.gomo.jp/exp/ref_logger.txt

お願いいたします。
116nobodyさん:2007/08/28(火) 08:53:43 ID:???
>>115
うちの環境でも動かないから大丈夫w
ループして落ちているようにしか見えませんよ
117nobodyさん:2007/08/28(火) 09:24:43 ID:???
>>115
エラーメッセージが出るような間違いをしてれば画面も出るだろうけど、
何も表示せずに終わってしまうようなバグも多いよ。
バグってのは必ずしもエラーとは限らない。
(ロジックミスとかは、エラーではなく変な動きのまま正常終了してしまう)
その場合、出力が空っぽのためブラウザが認識できず
相手先のサーバーが繋がってないようだ、と誤認識される。

むしろ
> その時はたしか、存在しないファイルをrequireしていたのか、存在していないクラスをnewしてたとか、
このケースでメッセージが出てこないってのが不思議。
php.iniでエラー出力を「なし」に設定してたんじゃあるまいな?
118nobodyさん:2007/08/28(火) 11:40:28 ID:/qxtkLLI
変数$nameに

AAA_○○○
AAA_○○○_BBB
AAA_○○○_BBB_CCC
AAA_△△△
AAA_△△△_BBB
AAA_△△△_BBB_CCC

のような文字列が格納されている時、○○○や△△△の部分のみを取り出すにはどのような記述をすれば良いですか?
preg_match('/AAA_(\w+)/', $name, $matches);
ここまでは考えたのですが、その先が思いつきません。
宜しくお願いします。
119nobodyさん:2007/08/28(火) 11:44:43 ID:???
$a = explode('_', $name);
echo $a[1];
120nobodyさん:2007/08/28(火) 11:46:09 ID:???
AAA_(\w+).*
121nobodyさん:2007/08/28(火) 12:00:05 ID:/qxtkLLI
お二方、ご回答ありがとうございます。
わざわざ正規表現を使わなくても良かったんですね^^;
122115:2007/08/28(火) 12:20:51 ID:oYOChStQ
>>116
>>117
レスありがとうございます。
エラーは全部出るようにしています。

ループして、PHPが何もヘッダーを送らずダウンしたってことでしょうか?
不正終了したときもエラーを出すように設定できないものでしょうか?
何かしらヒント出してくれると、デバッグも楽なのですが。

> その時はたしか、存在しないファイルをrequireしていたのか、存在していないクラスをnewしてたとか、
このケースは、勘違いでしょう。すいません。
いろいろな部分をコメントアウトして、やっと動いたのしか覚えてません。
何かをnewしてるとこあたりだったので勘違いしたんでしょうかね。
その時も、ループしてひたすらインスタンスつくりまくってたのかも。

今、マニュアル見てみたんですけど、staticなメンバーってstaticなメソッドからしかアクセス出来ないみたいですね
そこでエラー表示出してくれても良いような気もするけど
123nobodyさん:2007/08/28(火) 12:44:12 ID:???
質問があります
本当にくだらないのですが、簡単なスクリプト(掲示板やカウンター)などを作られるときに、関数を沢山作って管理するほうですか?
参考にしたいので、よろしくお願いします。
124nobodyさん:2007/08/28(火) 12:46:04 ID:???
ファイル入出力やフィルタリングは
外部ファイルにクラスを作って使い回していますが何か?
125nobodyさん:2007/08/28(火) 13:08:32 ID:???
>>123
作っといたほうが楽
126nobodyさん:2007/08/28(火) 13:09:11 ID:???
>>124
質問に質問をぶつけておまえ頭悪いだろ
127nobodyさん:2007/08/28(火) 13:13:10 ID:???
まぁ、確かに関数より記録リソースの操作モジュールでも作っといたほうが色々楽だろうけどねぇ。
12896:2007/08/28(火) 13:53:56 ID:y77U9tuf
自己解決しました。

$mlfr = "From: " . mb_encode_mimeheader("あああ<[email protected]>");



$mlfr = "From: " . mb_encode_mimeheader("あああ") . "<[email protected]>";

とすることで正しくFromヘッダが送信されました。
niftyのメールサーバは何か特殊なんですかね・・・。
129nobodyさん:2007/08/28(火) 13:56:39 ID:Vlzye/6Z
$data = array(
 array('id'=>1,'cnt'=>5,'title'=>'hoge'),
 array('id'=>2,'cnt'=>4,'title'=>'foo'),
 array('id'=>3,'cnt'=>0,'title'=>'bar')
);

こんな配列があったとしてcntの順にソートしたいのですが可能でしょうか?
どんな方法で出来ますでしょうか?
130nobodyさん:2007/08/28(火) 13:59:22 ID:YkG/SsxW
>>4の簡易FAQの5ですが
print <<< DOC
<form method="POST" action="$_SERVER['SCRIPT_NAME']">
DOC;
のように他の文字列が隣接してないのにエラーが出てしまうのは、
どういう解釈がされるからなのでしょうか?

あと変数を波括弧で囲む時
{$_SERVER['SCRIPT_NAME']}
${_SERVER['SCRIPT_NAME']}
の2種類の書き方がありますがこの違いってなんなのでしょう?
131nobodyさん:2007/08/28(火) 14:24:19 ID:GM5VT/dP
$format="%-s %-35s %-60s %-s";
printf($format, $a, $b, $c, $d);

1行目にある「%-s」や「%-35s」などにあるマイナス文字はどのような意味
なのでしょうか。
132nobodyさん:2007/08/28(火) 14:32:21 ID:???
オプションの符号指定子。これは、 数値で符号 (- あるいは +) を使用するよう指定します。 デフォルトでは、数値が負の場合の - 符号のみが使用されます。 この指定子により、正の数にも強制的に + 符号をつけることができます。 これは PHP 4.3.0 で追加されました。
133nobodyさん:2007/08/28(火) 14:33:14 ID:???
マニュアル読まないクズは市ね
134nobodyさん:2007/08/28(火) 14:35:54 ID:???
>>129
cntでソート用の配列作ってarray_multisort( )
>>131
文字列の場合は-は左詰で表示
135nobodyさん:2007/08/28(火) 18:30:13 ID:???
$sumの値がokでなければループ

while ($sum != "ok"){
..........
}

これでできないんですがどこがおかしいのでしょうか
136135:2007/08/28(火) 18:32:18 ID:???
すみません、>>1読むの忘れてきたのと、
マニュアルに載っていたのを見ていませんでした
出直してきますね
137nobodyさん:2007/08/28(火) 18:34:42 ID:wOTpbT+K
フォームに\だけを書いてポストして
$_REQUESTを表示させると\\になります
この現象は何ですか
138nobodyさん:2007/08/28(火) 18:36:13 ID:???
>>137
エスケープ
139nobodyさん:2007/08/28(火) 18:38:35 ID:wOTpbT+K
>>138
これを中止させるにはどうすればいいですか?
140nobodyさん:2007/08/28(火) 18:40:05 ID:???
>>139
エスケープを解除する関数
「PHP エスケープ」出てくるんじゃね?
141nobodyさん:2007/08/28(火) 18:45:15 ID:???
>>139
PHP.INIのマジッククォートを停止させる
142nobodyさん:2007/08/28(火) 18:49:44 ID:???
>>140-141
ありがとうございました
143nobodyさん:2007/08/28(火) 18:49:48 ID:???
function en_stop($str)
{
$tmp=ereg_replace("[\][\]","\x5c",$str);
$tmp=ereg_replace("[\][']","'",$tmp);
$tmp=ereg_replace("[\][,]",",",$tmp);

return $tmp;
}
144nobodyさん:2007/08/28(火) 19:43:38 ID:???
>>合ってるとオモ
動かないか?
145nobodyさん:2007/08/28(火) 19:44:29 ID:???
>>135
146nobodyさん:2007/08/28(火) 19:44:51 ID:???
内部コードutf8、pcサイトutf8、携帯サイトsjis
で運用しようと思っています。
この運用だと、ポストされるエンコードがsjisとutf8になりますよね
sjisだった場合は当然utf8に変換しないといけないのですが、
mb_detect_encodingは
携帯の絵文字が混ざった文章もちゃんとsjisと判定できるのでしょうか?
あるいはもっといい方法があれば教えて下さい
147nobodyさん:2007/08/28(火) 19:50:54 ID:???
>>146
できる
148nobodyさん:2007/08/28(火) 21:27:05 ID:???
まぁまぁ、そう熱くならずに自分のおならの臭いを嗅いでエクスタシー感じようよ
149nobodyさん:2007/08/29(水) 02:34:35 ID:???
>>147
そうなんですか
絵文字はsjisの範囲内で実現してるんですね
ありがとうございました
150nobodyさん:2007/08/29(水) 06:42:45 ID:uYM+HrXL
$test = "テスト";

$template = <<<_TMP_
テンプレートです。
タイトル:{test}
おしまい
_TMP_;

preg_replace('/{(.*)}/', '$$1', $template);

{hogehoge}を$hogehogeに格納されている値に置き換えたいのですが
何か良い方法はありませんでしょうか?

このやり方では、「$test」と出力されてしまいます
151nobodyさん:2007/08/29(水) 08:42:05 ID:???
>>150
<?php
$test="テスト";
?>
テンプレートです。
タイトル:<?=$test;?>
おしまい
152nobodyさん:2007/08/29(水) 09:19:27 ID:uYM+HrXL
>>151
早速のご回答ありがとうございます

「テンプレートです。
タイトル:{test}
おしまい 」
これは外部ファイルとして保存しておいて
呼び出してから文字列の置き換えを行いたいのです
153nobodyさん:2007/08/29(水) 09:25:27 ID:bOc70w1/
拡張子phpにしてincludeでおk
154nobodyさん:2007/08/29(水) 09:54:17 ID:uYM+HrXL
何度もすみません
詳しく言うと、アップーロードにて一般の方にテンプレをUPしてもらい
そのテンプレを元に作成したいのです
なので、拡張子はtxtがメインになると思います
155nobodyさん:2007/08/29(水) 10:17:47 ID:???
>>154
アップロードしてもらって移動した時点で拡張子を変えればおk
156nobodyさん:2007/08/29(水) 10:18:17 ID:???
>>154
指定先にファイルがあれば拡張子がなくてもincludeできる
157nobodyさん:2007/08/29(水) 10:51:00 ID:???
>>154
preg_replace('/{(.*?)}/e', '$$1', $template);
158nobodyさん:2007/08/29(水) 11:06:55 ID:???
>>154
外部のユーザからアップロードされたファイルをincludeして実行するという話を
本気にしてはダメだ。eスイッチも同様。

動的にやりたいならpreg_replace_callbackで。
そうでないなら preg_replace(//,array("hoge"),array($hoge)); とか。
159nobodyさん:2007/08/29(水) 11:14:14 ID:???
>>148
理由は単純で殺人未遂だから。

おならには、硫化水素という有毒なガスが含まれていて、
量によっては即死する。
つまりおならによって人が死ぬことも理論的にはありえるわけで、
そのような殺人未遂行為(不可罰であるが)が、人から嫌がられるのは当然。
160nobodyさん:2007/08/29(水) 11:27:16 ID:uYM+HrXL
>>157-158
ありがとうございます

preg_replace_callbackを参考に

$test = "aaaaaa";

$text = <<<_TEXT_
test
{test}
test
_TEXT_;

function getVar($matches){
$matches = trim($matches[1]);
global $$matches;
return $$matches;
}

$text = preg_replace_callback("/{(.*)}/","getVar",$text);

echo $text;

としてみると見事に解決しました。
161nobodyさん:2007/08/29(水) 12:08:32 ID:???
Basic認証をしてアクセス管理をしているのですが、
ブラウザを閉じない限りログアウトできませんよね?
再度認証できる方法はないのでしょうか?

162nobodyさん:2007/08/29(水) 12:25:58 ID:???
日本語でおk
あと>>1
163nobodyさん:2007/08/29(水) 12:29:31 ID:???
すいません、やはりBASIC認証では無理みたいですね。
失礼しましたm(..)m
164nobodyさん:2007/08/29(水) 12:50:14 ID:???
>>159
DHMOの危険性に比べたら、とてもとても
165nobodyさん:2007/08/29(水) 13:26:20 ID:???
>>160
それでいいのなら別にいいのだけど、
その実装だとテンプレートをアップロードできる人が
変数を全部参照できることになるから注意してね。

つまり、$mysql_passwordにパスワードを入れとくとやばいとかそういうこと。
166nobodyさん:2007/08/29(水) 13:34:48 ID:uYM+HrXL
>>165
ありがとうございます
特に重要なものは取り扱わないので大丈夫です
167nobodyさん:2007/08/29(水) 13:39:40 ID:???
>>166
個人的にはテンプレート用の配列のみを置換するようにした方が便利だと思うよ。
$replaceStr['test'] を {test} に置き換えるとか。
168nobodyさん:2007/08/29(水) 17:24:45 ID:???
ヒアドキュメントの中に関数(例えばif)などを入れて動作させることは可能でしょうか?
以下のようにやってみたのですが出来ないようです。

echo <<<EOF
I am <?php if($test == 1) {echo 'hoge'} ?>
EOF;
169nobodyさん:2007/08/29(水) 17:29:18 ID:???
1はtrue
170nobodyさん:2007/08/29(水) 17:32:42 ID:???
>>168
無理
171nobodyさん:2007/08/29(水) 17:40:06 ID:???
>>168
echo は与えられた文字列を出力するだけ。
eval() なら出来る。
172nobodyさん:2007/08/29(水) 19:48:55 ID:???
ヒアドキュメント内はすべて文字列として出力されちゃうんじゃない?
一度ヒアドキュメントを抜けないと無理だと思う
173nobodyさん:2007/08/29(水) 22:36:27 ID:???
mysql_connect関数の第一個目のパラメーターはホスト名なんですが
ホスト名が無い場合は使えないんでしょうか
174nobodyさん:2007/08/29(水) 22:37:21 ID:???
ひあどきゅめんとにはいるまえにいふなりなんなりへんすうをしょりして
ひあどきゅめんとないにへんすうをいれれば
ふつうにできるじゃん。
175nobodyさん:2007/08/29(水) 22:39:20 ID:???
>>173
localhostか127.0.0.1でいいんじゃ。
176nobodyさん:2007/08/29(水) 22:47:26 ID:???
>>174
さすが行政書士だなw
漢字も満足に書けないんだなぁwww
177nobodyさん:2007/08/29(水) 23:06:07 ID:???
>>174
妊婦かよ!
178nobodyさん:2007/08/29(水) 23:18:35 ID:???
>>175
そう書いておけばたしかに動くんです
そうしておきます
179nobodyさん:2007/08/30(木) 00:08:26 ID:6umYOf5a
多階層のxmlのパースで困っています
domxmlを利用しています
このような感じです
<one>
<title>
<main>あ</main>
<man>
<blue>
<a>い</a>
<b>う</b>
</blue>
<pink>
<a>え</a>
<b>お</b>
</pink>
</man>
<woman>
<blue>
<a>か</a>
<b>き</b>
</blue>
<pink>
<a>く</a>
<b>け</b>
</pink>
</woman>
</one>


<two>
(↑の同じ構造)
</two>
180179:2007/08/30(木) 00:12:36 ID:6umYOf5a
このような多階層のXMLで、twoの要素を全て、変数に入れたいのです。
(配列ではダメです)

まずは、

$dom = domxml_open_file("xmlのURL");

$root = $dom->document_element();

$node = $root->get_elements_by_tagname('two');

みたいに書いたのですが、ここから効率のよい取得方法が分かりません。
自分で書いてみたプログラムは200行ぐらいになりました。。。

どなたかご教授ください。
181nobodyさん:2007/08/30(木) 01:27:14 ID:???
utf8でhtmlソース吐く時って
BOMを付加するべき?しないべき?
182nobodyさん:2007/08/30(木) 01:32:25 ID:???
つけてはいけない
183nobodyさん:2007/08/30(木) 01:34:41 ID:???
つけてはいけないをつけてはいけない
184nobodyさん:2007/08/30(木) 01:40:21 ID:uPaIz1km
携帯絵文字一文字だけでdetect_encodingしてみました
mb_detect_orderは("sjis, UTF-8, EUC-JP")
すると、utf-8で判定されたり、euc-jpで判定されたりしました

太陽(f89f):UTF-8
ATM(f8c9):euc-jp

これは「絵文字だけでエンコーディングを判定するのは無理ぽ」
ということでしょうか?
またshift-jisを最初に設定しているのにマッチしていないのが気になります
判定方法にバグでもあるのでしょうか?
185nobodyさん:2007/08/30(木) 01:51:22 ID:???
>>184
絵文字は外字領域(SJISで未使用の範囲)を使ってるので
SJISコードとして判定されないのが正しいとオモ
186nobodyさん:2007/08/30(木) 02:44:58 ID:???
preg〜ってなんて発音してる?
187nobodyさん:2007/08/30(木) 02:46:56 ID:???
ぴーしーあーるいーれげっくす
188nobodyさん:2007/08/30(木) 02:54:56 ID:cbvqe7SV
>>186
プレグ


csvファイル専用関数を使うメリットってありますか?
普通のファイル操作系の関数で全然問題ないのですが
189nobodyさん:2007/08/30(木) 03:04:22 ID:???
>>176
sohoスレにかえれクズ
190nobodyさん:2007/08/30(木) 03:06:10 ID:???
Perl Regexの略だよね?
そうだとおもうからpとregをわけてピーレグって読んでるけど
191nobodyさん:2007/08/30(木) 03:29:17 ID:???
preg_matchのことを
プレグマッテと読んでるが
人それぞれだな
192nobodyさん:2007/08/30(木) 03:31:21 ID:???
matchはマッチだろ・・・
193nobodyさん:2007/08/30(木) 03:35:43 ID:???
プレグマッチ
プレグマッチアール(オールだがついついアールと読んでしまう
プレグリプレイス
194186:2007/08/30(木) 03:57:17 ID:???
プレグが多くて安心した
195nobodyさん:2007/08/30(木) 03:59:03 ID:???
犯人はヤスw
196nobodyさん:2007/08/30(木) 04:37:15 ID:cbvqe7SV
require_once('config.php');

で、

Warning: require_once(1) [function.require-once]: failed to open stream: No such file or directory
Fatal error: require_once() [function.require]: Failed opening required '1' (include_path='.;C:\xampp\php\pear\')

というエラーが出てしまいます。
「No such file or directory」はファイルがないということですが、同じフォルダにその名前のファイルが存在します。
他に何か思い当たることはないでしょうか・・・?
197nobodyさん:2007/08/30(木) 04:45:29 ID:???
大文字小文字とかじゃねーのw
198nobodyさん:2007/08/30(木) 04:50:46 ID:cbvqe7SV
すみません、超初歩的なミスでした
or die()ってできないんですね

返り血考えるの忘れてました
199nobodyさん:2007/08/30(木) 09:58:09 ID:???
殺人事件キタコレ
200nobodyさん:2007/08/30(木) 10:01:26 ID:???
201nobodyさん:2007/08/30(木) 10:18:40 ID:3muSx8fZ
お願いします。

PHPである項目を、セレクトボックスでの選択か、もしくは
テキストボックスへの入力にさせたいのです。

つまり、セレクトボックスでの選択かテキストボックスに入力かが
されていればOKで、両方になにもない場合のみ「選択しろ」という
エラーメッセージを出したいのですが、どうしたらいいですか?

// 営業所コード
if($_POST['g_c'] == '') {
$err_u .= '[営業所コード]が未選択です。<br>';
}
// 営業所の名前
if($_POST['g_n'] == '') {
$err_u .= '[営業所の名前]が未入力です。<br>';
}

現在エラーメッセージを出させる記述はこうなっているのですが、
この場合はどちらかが未入力・未選択でもエラーが出ます。
[営業所コード] か、[営業所の名前] どちらかが選択・入力されていればOK
というようにはどうしたらいいのか、すみませんが教えてください。
202nobodyさん:2007/08/30(木) 10:24:45 ID:???
||
203nobodyさん:2007/08/30(木) 11:00:36 ID:Qqw8XwhJ
array_push()に関して質問なのです
array_push()はどんな利用目的で使うのが正しいのでしょうか?
マニュアルを見る限りarray_push()をつかうなら関数を呼ぶオーバーヘッダ
のない$array[] = のほうが良いとかいてありました。
204201:2007/08/30(木) 11:03:53 ID:3muSx8fZ
解決しました、&& でいけました。ありがとうございました。
205nobodyさん:2007/08/30(木) 11:15:13 ID:???
>>203
自分でインデックス管理して最後尾に追加するなりのコードを
書くなら$array[] =...でいんじゃね。
206nobodyさん:2007/08/30(木) 11:17:27 ID:???
>>203
pop, shift, unshiftと作ってpushも作らざるを得なかっただけなので使う必要なし
配列に配列を加えるときには使ってもいいよ
似たような関数にarray_merge( )もあるけどね
207nobodyさん:2007/08/30(木) 11:44:06 ID:Qqw8XwhJ
>>205-206
ありがとうございます
208nobodyさん:2007/08/30(木) 13:30:39 ID:???
>>184
SJIS-win
209nobodyさん:2007/08/30(木) 14:33:45 ID:OWaQUMa6
ラフなログイン認証コードを書きたいのですが
basic認証よりはセッションで管理するほうがいいですか?
210nobodyさん:2007/08/30(木) 14:38:00 ID:???
>>209
basic認証はログアウトがだるくなるからやめたほうがいい
211nobodyさん:2007/08/30(木) 14:47:36 ID:OWaQUMa6
ありがとうございます。
セッション使うことにします
212nobodyさん:2007/08/30(木) 17:43:29 ID:bLGc1mde
http://mu-tuyukusa.arekao.jp/
良ブログ ですか?
213nobodyさん:2007/08/30(木) 18:00:15 ID:???
悪ブログ ですよ?
214nobodyさん:2007/08/30(木) 18:02:30 ID:???
むしろゴミブクロ
215nobodyさん:2007/08/30(木) 18:30:42 ID:???
PerlからPHPに現在移行をしております。

Perlの場合、日本語や絵文字を処理することを考慮し、例えばSJISで
画面を出力する場合でも、ソースはEUC、処理内でJcode等を使用
してSJIS出力するようなことをしておりましたが、PHPの場合はどの
文字コードで書くのが一番問題等発生しにくいのでしょうか。

ご教示いただけますと幸いです。
216nobodyさん:2007/08/30(木) 18:35:39 ID:???
ISO-2022-JP
217nobodyさん:2007/08/30(木) 18:36:08 ID:Qqw8XwhJ
>>215
基本的なことはperlと同じ
218nobodyさん:2007/08/30(木) 18:59:53 ID:???
>>217
早速のご返答、有難うございます。

PHPをよくSJISで書く方がいらっしゃるので、日本語処理関係が
充実しているのかなと多少期待してしまってました。
SJISでデータを受けてEUCに変換してSJISに戻すというのが
非常に手間だったので。。

同じくEUCで書きたいと思います。
ご教示有難うございました。
219nobodyさん:2007/08/30(木) 19:20:40 ID:???
今時EUC(笑)
220nobodyさん:2007/08/30(木) 19:22:31 ID:???
アルファベットを数字に変換する関数とかないでしょうか。
aaa05130
といった感じのIDを使用しているのですが、
これを一意な数字列に変換したいのれす
221nobodyさん:2007/08/30(木) 19:27:09 ID:???
ord
222nobodyさん:2007/08/30(木) 19:34:26 ID:???
>>219
携帯サイトを作っているのですが、ソースからSJISにしたほうが
都合いいのでしょうか。
223nobodyさん:2007/08/30(木) 19:34:43 ID:???
>>219
今時、EUCというが、処理コストの関係で、
EUCにせざるを得ない現場はたくさんあるぞ。
あまり知ったかぶりするなよw
224nobodyさん:2007/08/30(木) 19:35:39 ID:???
処理コストの問題ってなに? エロイ人教えて
225nobodyさん:2007/08/30(木) 19:36:36 ID:???
今どきというか主流だけどな
226nobodyさん:2007/08/30(木) 19:47:10 ID:???
>>218
PHPをSJISで書いてる人が多い!?
それ、どこの馬鹿サイトの受け売りだよ。
PHPは確かにマルチバイトに強いが、
コードをSJISで記述するのは正式サポートしていない。
専用コンパイルした特殊なバージョンを使わないとダメ。

逆に、PHPはマルチバイト処理がPerlより強力なので、
その辺は自動変換でやってしまうのも1つの手ではある。
227nobodyさん:2007/08/30(木) 19:48:21 ID:???
>>223
どんだけ〜
228nobodyさん:2007/08/30(木) 19:52:59 ID:???
>>223
出力だけSJISにしてりゃ、さほど処理コストには大差ないわけで
229nobodyさん:2007/08/30(木) 19:55:40 ID:???
例えば、UTF-8で全て文字コードを統一させようとすると、
EUCの場合と比べてサイズが増大する。
西暦を4桁ではなく2桁で処理していたのと同じ問題。

サイズが増えれば、ストレージのコスト、バックアップコスト、日々のプロセスコストが増える。
こういった諸々の理由から、クライアントからEUCを指定してくる場合も多い。
230nobodyさん:2007/08/30(木) 20:04:17 ID:???
>>229
なるほど。
_〆(。。)
231nobodyさん:2007/08/30(木) 20:10:04 ID:CeKsBD3c
Linux、apache php4.30

いつもお世話になっております。
アニメーションgifのサムネール画像を作ろうかと思い、
ソースのgif画像をイメージ関数のimagecopyresampledでリサンプリングしたんですけど、
ノイズの入った画像静止画像が得られてしまい、失敗しましました。

どうすりゃサイズ縮めたアニメーションgifをえられるでしょうか。オネガイシマスm(_ _)m
232222:2007/08/30(木) 20:14:52 ID:???
なんだかすごく勉強になりました。

PHPをSJISで書いている人が多いのは、うちの職場の
方々なんです。
別にルールとかは一切ないんですけどね。

グローバル変数を使いまくるようなタイプなので、ちょっ
とこちらで質問させていただいた次第です。
決してそれが悪いということを言っているわけではなく、
僕の書き方とだいぶ異なると思ったためです。

>PHPは確かにマルチバイトに強いが、 コードをSJIS
>で記述するのは正式サポートしていない

ということも知らなかったので、非常に説得力のある
ご意見でした。
やはりEUCで書くことにします。

皆様有難うございます。
233大ウソつき人間:2007/08/30(木) 20:22:53 ID:???
今日のレスは、久しぶりにとても参考になりますね。
このスレを毎日読んでいて良かった。
234nobodyさん:2007/08/30(木) 20:29:32 ID:???
sjisでもまったく問題ないよ
文字といってもコンピュータにとってはただの数字だし
235nobodyさん:2007/08/30(木) 20:33:48 ID:???
>>234 無知さらし乙
236nobodyさん:2007/08/30(木) 20:34:27 ID:???
>文字といってもコンピュータにとってはただの数字だし
>文字といってもコンピュータにとってはただの数字だし
>文字といってもコンピュータにとってはただの数字だし
237nobodyさん:2007/08/30(木) 21:50:00 ID:???
sjisでphpコード書いたら
特定の日本語文字で\を入れないと
コンパイルエラーになるけどな。
238nobodyさん:2007/08/30(木) 21:55:41 ID:???
ーなんかもエラーになりやすいですね
239nobodyさん:2007/08/30(木) 22:05:04 ID:???

ダメ文字だな
240nobodyさん:2007/08/30(木) 22:44:01 ID:???
それは、文字コードのせいじゃなくてphpの言語体系が糞なだけ。

たとえば、javaでいえば、sjisで書いても内部でutfに自動変換される。
241nobodyさん:2007/08/30(木) 22:48:05 ID:???
>>231
自己レス。どうも標準のGDじゃだめみたいっすね。また何か考えます。じゃ。
242nobodyさん:2007/08/30(木) 22:50:53 ID:???
レベル下がってきたね
243nobodyさん:2007/08/30(木) 22:53:29 ID:???
>>242
行政書士が紛れ込んでいるせいじゃねwww
夏休みは、免許取得ラッシュだから、あっちこっちで行政書士が暴れまくりだよwww
ほんと、大した法律知識も持たないで金稼ぐ阿漕な商売だぜ
244nobodyさん:2007/08/30(木) 22:54:46 ID:sqac9GrM
文字コードEUC-JPを使い、MySQL(バージョン: 4.1.20)でデータベースをphpMyadminで管理・運用していましたが、
この度、ドイツ語を取り扱うことになり、文字コードをUTF-8に変えました。
もちろんデータベースのレコードもUTF-8にエンコードしました。
文字化けなどはしてません。

しかしここで問題が発生しました。
phpmMyadminでの検索機能で、あるはずのレコードが検索にひっかからなくなってしまうことが起きています。

例)TBL_exampleというテーブルに、Namaeというフィールドがあり、その中にドン・ジョバンニというレコードがあります。

SELECT *
FROM `TBL_example`
WHERE `Namae` LIKE '%ドン%'
と入れると、きちんとドン・ジョバンニが結果に出てきますが、

SELECT *
FROM `TBL_example`
WHERE `Namae` LIKE '%ジョバ%'
と入れると、ドン・ジョバンニが出てきません。

Namaeフィールド以外に、英語で情報が入ったフィールドがあるのですが、そちらでは問題なかったです。

解決のためのヒントをいただければ幸いです。どうぞよろしくお願いします。
245nobodyさん:2007/08/30(木) 22:59:35 ID:???
>>240
>たとえば、javaでいえば、sjisで書いても内部でutfに自動変換される。
これが「言語体系」?

そんなにSJISが好きなら--enable-zend-multibyteすりゃいいのに。
もっとも全ての入出力で変換が掛かる訳じゃないけどね。
246nobodyさん:2007/08/30(木) 23:07:20 ID:???
そもそもJavaとPHPじゃ単純比較できんだろ
247nobodyさん:2007/08/30(木) 23:10:24 ID:???
mysqlとの連携ってどれぐらい早いですか
たとえば掲示板の書き込みデータを区切り文字で区切って保存、読み込みするのと
mysqlのテーブルとして保存、読み込みするのはどちらが早いですか
248nobodyさん:2007/08/30(木) 23:16:43 ID:???
>>247
データ件数とデータの複雑さにもよる。
100件以下で参照関係なし、とかならテキストファイル使った方がさすがに速かろう。
249nobodyさん:2007/08/30(木) 23:17:33 ID:???
データ件数による
250nobodyさん:2007/08/31(金) 00:41:05 ID:icDPlmBN
すみません。
テキストファイルから文字を読み出し、
1024文字で分割し、それぞれをテキストエリアに表示。
ってのがうまく出来ないんです。
どなたか教えてほしいです。
251nobodyさん:2007/08/31(金) 00:42:56 ID:???
今までどういうコード書いた?
252nobodyさん:2007/08/31(金) 00:52:54 ID:icDPlmBN
文字を1024文字ごとに<>を加え、それを<>を区切りに分割
までは考えたんですけど、だめですかね?
253nobodyさん:2007/08/31(金) 00:54:37 ID:???
コードだよコード。
PHP語話せ
254nobodyさん:2007/08/31(金) 00:56:49 ID:???
>>252
ダメっつーか、それで思った通りの結果が得られなかったのか?
それが良いコードかどうかはともかく、動くことは動きそうだが。
そもそも1024文字ごとに<>を加え、ってのがどうやったのか不明だけど。
255nobodyさん:2007/08/31(金) 00:56:56 ID:icDPlmBN
携帯からなんで無理なんです。
256nobodyさん:2007/08/31(金) 00:59:53 ID:???
じゃあパソコンから書き込んでください。
257nobodyさん:2007/08/31(金) 01:01:08 ID:icDPlmBN
chnuk_split
explode
使いました。
258nobodyさん:2007/08/31(金) 01:01:25 ID:???
>>248>>249
どうもありがとう
259nobodyさん:2007/08/31(金) 01:05:12 ID:???
chunk_splitなんて関数初めて知ったよw
使いどころがなさそうな関数だな。
どんな発想でこんな関数を見つけてこれるんだ?
どっかのコードのコピペ?
しかも脆弱性情報満載

>>257
あー、まー、てめー、もっと
どんな関数があるのか調べろというこった。
260nobodyさん:2007/08/31(金) 01:06:09 ID:AXGaJdGV
>>250
ファイルを読み出すときにどの関数を使っていますか。
261nobodyさん:2007/08/31(金) 01:08:06 ID:icDPlmBN
脆弱性ですか。
どこに穴があるのか教えて下さい。
262nobodyさん:2007/08/31(金) 01:10:01 ID:icDPlmBN
file_get_contentsです。
263nobodyさん:2007/08/31(金) 01:10:32 ID:AXGaJdGV
>>257
freadを使わないのは、 freadを知らないからですか。
それともfreadでは駄目な理由があるのですか。
264nobodyさん:2007/08/31(金) 01:36:03 ID:???
宿題なんだからそんなに簡単に正解のヒントをあげちゃダメっ
265nobodyさん:2007/08/31(金) 01:37:05 ID:icDPlmBN
freadで1024ごとに分割して出力はどうするんですか?
266nobodyさん:2007/08/31(金) 01:46:11 ID:???
HTMLの出力すらできないんかいっ
267nobodyさん:2007/08/31(金) 01:49:36 ID:icDPlmBN
1024ごとに分割された出力が出来ないので、

htmlはわかりますよ。
268nobodyさん:2007/08/31(金) 01:55:24 ID:???
ループ処理くらい知ってるんだろ?
269nobodyさん:2007/08/31(金) 02:02:43 ID:icDPlmBN
ループ…foreachで出来ますか?
270nobodyさん:2007/08/31(金) 02:05:34 ID:AXGaJdGV
271nobodyさん:2007/08/31(金) 02:08:04 ID:???
>>269
キミ、いくらなんでもダメすぎ。
272nobodyさん:2007/08/31(金) 02:32:31 ID:icDPlmBN
わからないです。
273nobodyさん:2007/08/31(金) 02:37:01 ID:???
携帯ってこんなに長くIP変わらないの?
IDおんなじだよね。

>>272
ソースかけ
274nobodyさん:2007/08/31(金) 02:37:25 ID:???
学校で何を習ってるんだ、君は…
275nobodyさん:2007/08/31(金) 02:40:34 ID:icDPlmBN
IP帯域は頻繁に変わりますね。
自分のサイトはPCのアクセスを.HTACCESS使って制限してます。
276nobodyさん:2007/08/31(金) 02:45:21 ID:???
>>269
他のループは知らんのか。
関数より、制御構造を一通り使えるようになっとかないと何も作れないぞ。
ほとんど正解書かれてるじゃん >レス
277nobodyさん:2007/08/31(金) 02:48:58 ID:???
255 名前:nobodyさん[] 投稿日:2007/08/31(金) 00:56:56 ID:icDPlmBN
携帯からなんで無理なんです。

↑こういう嘘つくやつに答える必要はない。
278nobodyさん:2007/08/31(金) 02:49:30 ID:icDPlmBN
>>276さん
ループ
fread
を使う、ということでしょうか?
279nobodyさん:2007/08/31(金) 02:50:59 ID:icDPlmBN
>>277
なぜ嘘だと言えるんだ?
280nobodyさん:2007/08/31(金) 02:51:58 ID:???
>>278
好きなのを使え。

それ使ってもできるし
使わなくてもできる

違いは、どれが一番簡単にやれるかどうかって話しなだけだ。

で、お前が今まで書いたコードは?
281nobodyさん:2007/08/31(金) 02:53:11 ID:???
>>279

275 名前:nobodyさん[] 投稿日:2007/08/31(金) 02:40:34 ID:icDPlmBN
IP帯域は頻繁に変わりますね。
282nobodyさん:2007/08/31(金) 02:56:01 ID:???
携帯はIPじゃなく個体識別でID振られるんじゃなかったっけ?
283nobodyさん:2007/08/31(金) 02:56:17 ID:icDPlmBN
AUのIP帯域表見てこいよ
俺はDocomoだけど、
WILLCOMなんて糞多いぞ?
284nobodyさん:2007/08/31(金) 03:02:14 ID:???
>>283
それ、反論になってないw

>>277>>281は「2chのIDは接続IPごとに振られるはずだから、
IPが頻繁に変わる携帯なら毎回違うIDになるはず」と言ってる。
だが、それ自体が勘違いなので、気にする必要なし。
そんな糞仕様だったら携帯使ってるやつは自演しまくり、
他の携帯のやつとID被りまくりになる。
285nobodyさん:2007/08/31(金) 03:03:38 ID:???
で、お前が今まで書いたコードは?
286nobodyさん:2007/08/31(金) 03:05:40 ID:???
chnuk_split
explode
foreach
こんだけ知ってて作れないってのもどうかと思う。
効率は決して良くないが、できないことはないぞ。
287nobodyさん:2007/08/31(金) 03:11:23 ID:???
>>284
お前の論理展開もおかしいぞ。

> そんな糞仕様だったら携帯使ってるやつは自演しまくり、
頻繁に変わるIPでIDが決まるなら、自演なんか出来ないだろw
お前馬鹿すぎ。
288nobodyさん:2007/08/31(金) 03:15:10 ID:icDPlmBN
>>284
俺自身個体識別番号でIDなんて知らなかったんだから仕方がないだろ。
携帯に関してIPでIDという意見だったんだから、その可能性は低いだろうということを指しただけだ。

>>286
効率のいい方法が気になるんですけど、速度的にも違うんですかね?
289nobodyさん:2007/08/31(金) 03:16:17 ID:???
いいから、さっさとお前が書いたコード書け
290nobodyさん:2007/08/31(金) 03:18:45 ID:icDPlmBN
コードは明日でいいですか?
291nobodyさん:2007/08/31(金) 03:19:33 ID:???
あぁ、来月で良いよ。
292nobodyさん:2007/08/31(金) 03:22:00 ID:icDPlmBN
まずは出来る限り自分でしてきます。ヒント貰えましたから。
お休みなさい。
293nobodyさん:2007/08/31(金) 03:24:27 ID:nPx6LHaB
夏休みの宿題は大変そうだな、こんな時間まで。
来年はもっと早くやろうな。
294nobodyさん:2007/08/31(金) 03:24:30 ID:???
強気になったり低姿勢になったり全くなんて感情の起伏が激しい子
295nobodyさん:2007/08/31(金) 03:27:18 ID:icDPlmBN
夏休みの宿題なんてとっくに終わったが?
296nobodyさん:2007/08/31(金) 03:28:34 ID:???
もういいから寝ろよw
297nobodyさん:2007/08/31(金) 03:30:00 ID:icDPlmBN
寝たいんだが…不眠症でな…
わりぃ
298nobodyさん:2007/08/31(金) 03:35:02 ID:???
不眠症か
どうりで感情の起伏が激しいわけだ
299nobodyさん:2007/08/31(金) 03:37:52 ID:icDPlmBN
そうらしいな。
まぁ…今日は朝日でも見に行くかな。
300nobodyさん:2007/08/31(金) 04:03:30 ID:???
発言が脂肪フラグくさいなw
301nobodyさん:2007/08/31(金) 05:02:36 ID:???
強くイ`
302nobodyさん:2007/08/31(金) 05:44:34 ID:qJAlQosv
JISでもダメ文字ってんの?
UTF-8→JISに変換して送信したら
勝手にエスケープ入ったんだけど。。。
303nobodyさん:2007/08/31(金) 10:15:58 ID:???
さぁ、エスパーさんの出番ですよ
304nobodyさん:2007/08/31(金) 11:20:10 ID:???
よーしまかせろ
>>302
それはきっとあれだ。
EUC>UTF-8>そのまま保存>取り出し>JIS
とやったんだな。うん。
305nobodyさん:2007/08/31(金) 11:29:32 ID:???
popen()実行時のPATH変数はどこで設定されているのでしょうか?
CentOS4.5です。
306nobodyさん:2007/08/31(金) 11:59:02 ID:icDPlmBN
分割表示出来た。(`・ω・´)
みんなありがとう!!!!!!!!!!
307nobodyさん:2007/08/31(金) 12:17:30 ID:???
>>305
そもそもPHPからプロセス起動するときは常にフルパスにしてるし
そうすべきものだと思うからそんなの意識したことも無かったけど、
多分rootユーザの環境設定じゃないの?
PHPはApacheプロセスなんだから、Apache起動時のユーザ環境を
そのまま引き継いでるんだと思うけど。
308nobodyさん:2007/08/31(金) 12:30:09 ID:???
バイナリ文字列をchrで作成するのって問題ないですか?
何か切り捨てられるasciiコード番号ってあるんでしょうか
309nobodyさん:2007/08/31(金) 12:34:55 ID:???
>>307
Apache起動スクリプトでPATHを変更してみて確認しました。
Apache起動時のPATH変数を引き継いでました。
ありがとうございます。
310nobodyさん:2007/08/31(金) 12:35:09 ID:???
>>308
特にないんじゃない?
311nobodyさん:2007/08/31(金) 12:53:41 ID:???
>>308
一般にバイナリ文字列ならpack()の方が便利だと思うよ。
つか、バイトオーダーとか、charのサイズとかバイナリの基礎知識ある?
312nobodyさん:2007/08/31(金) 13:14:13 ID:???
>>247-249
んーmysqlつかって掲示板システム組んでるけど目的は早い遅いじゃないなぁ。
データと外観を別個に扱いたいというか。
外観変えようと思ったら全部のファイルにバッチ流したりってのがメンドイんで
データDBに突っ込ませてるけど間違った用法かなぁ。
313nobodyさん:2007/08/31(金) 13:20:44 ID:???
トンチンカンキターーー!
314nobodyさん:2007/08/31(金) 13:23:12 ID:WC6dpiwK
質問です
1.hoge.com/hoge.php?test=1234

2.hoge.com/hoge.php/1234

1は$_GETなんですが、2はどうやって1234というキーを取り出せばいいんでしょうか
315nobodyさん:2007/08/31(金) 13:26:44 ID:???
apache設定
316nobodyさん:2007/08/31(金) 13:26:56 ID:???
>>314
$_SERVER['PHP_SELF']
317nobodyさん:2007/08/31(金) 13:28:45 ID:???
>>312
データ形式(ファイルかDBか)と外観はぜんぜん関係ないと思うけど
318nobodyさん:2007/08/31(金) 13:41:36 ID:WC6dpiwK
>>316
$_SERVER['PHP_SELF']でURLを拾って分解するしかないということでしょうか?
319nobodyさん:2007/08/31(金) 13:43:43 ID:???
>>318
簡単な方法はそれ
.htaccessかApacheの設定で静的URLを動的URLにしてGETで取得できるけど、
そうするのだったまずググってみ
320nobodyさん:2007/08/31(金) 13:45:53 ID:WC6dpiwK
>>319
なるほど、ありがとうございます
321nobodyさん:2007/08/31(金) 13:55:52 ID:???
parse_url
322nobodyさん:2007/08/31(金) 14:12:15 ID:icDPlmBN
…見間違えだったやっぱ分割表示出来ない…
for文でやってみたんだが…
もぅだめだ…
スクリプト教えてくれ
323nobodyさん:2007/08/31(金) 14:15:15 ID:???
>>322
なんのこと言ってんだ?
324nobodyさん:2007/08/31(金) 14:15:59 ID:???
コード出すんじゃなかったの?
325nobodyさん:2007/08/31(金) 14:17:50 ID:???
>>322
freadで1024Byteずつとりだしてechoで吐き出せばいいんじゃね?
326nobodyさん:2007/08/31(金) 14:21:57 ID:???
>>322
まず自分で書いたコードを出せ。そしたら添削してやる。
327nobodyさん:2007/08/31(金) 14:22:07 ID:icDPlmBN

$source = fopen("./a.txt","r");

for($i = 0; $i < mb_strlen($source) $i++)
{
$x = fread($source,1024);
echo "$x";
}
328nobodyさん:2007/08/31(金) 14:23:06 ID:???
ワロタ
329nobodyさん:2007/08/31(金) 14:24:14 ID:???
>>327
> mb_strlen($source)
この条件はおかしい。fopenの戻り値はリソースIDでしかないので
文字列の長さを取得できるようなものではない。
ファイルを全部読みきったかどうかは feof() で判定できるぞ。
330nobodyさん:2007/08/31(金) 14:26:31 ID:???
このソースはワロタwwwwwww

ヒント

$source = fopen("./a.txt","r");
while(){}
$x = freas($source, 1024)
echo "{$x}"


これ組み合わせれ
331nobodyさん:2007/08/31(金) 14:29:29 ID:???
必要性はないが別にforでもできる。
ま、普通はwhileを使うだろうが、この場合は根本的な解決にはならん。
332nobodyさん:2007/08/31(金) 14:40:18 ID:???
これはソース出せんわな ハズカシクテ
333nobodyさん:2007/08/31(金) 14:42:03 ID:icDPlmBN
>>330
わからないです。
334nobodyさん:2007/08/31(金) 14:44:12 ID:???
>>332
学校の宿題なんて大抵こんなもんだぞ?
335330:2007/08/31(金) 14:45:47 ID:???
>>333
大ヒント
マニュアルなり何なりでwhileの仕組みを調べろ
336nobodyさん:2007/08/31(金) 14:47:26 ID:icDPlmBN
whileの条件がわかりません。
337nobodyさん:2007/08/31(金) 14:48:25 ID:???
50人くらい釣れたのにまだ満足しないとは
338nobodyさん:2007/08/31(金) 14:50:25 ID:???
>>336
わかりませんじゃねーよ、調べるんだ
携帯だったらPCが使える環境に移動して調べろ
339nobodyさん:2007/08/31(金) 14:53:35 ID:icDPlmBN
学校の宿題って何の話ですか?
家に自作PC一つあるがネット繋がってないんです。

あーー、
わからねぇーーーーーーーーーーーーー、ー、
340nobodyさん:2007/08/31(金) 14:57:18 ID:???
>>339
while (式)
{

}

式がTRUEの状態のときに{}内を繰り返す
FALSEになるとループから抜け出す


これでわかる?
あと、わからないなら何がわからないか明確に言え
ここにエスパーってめったにこないんだし
341nobodyさん:2007/08/31(金) 14:58:09 ID:???
342nobodyさん:2007/08/31(金) 15:01:53 ID:1M6g8luz
なぜ>>314の質問に$_SERVER['PATH_INFO']という答が返らないのでしょうか。
343nobodyさん:2007/08/31(金) 15:02:25 ID:icDPlmBN
>>340
条件式がわからない。
344nobodyさん:2007/08/31(金) 15:02:30 ID:1M6g8luz
ID:icDPlmBNがどうやってPHPを勉強しているのか、 そもそもなぜPHPを勉強しているのか、 非常に気になります。
345nobodyさん:2007/08/31(金) 15:02:53 ID:???
まずマニュアル読めよ・・・
346nobodyさん:2007/08/31(金) 15:04:03 ID:???
>>343
条件式の何がわからない?
347nobodyさん:2007/08/31(金) 15:05:56 ID:icDPlmBN
あなたが出してくれた条件式の中身だ。
私が求める結果に適する条件式がわからない。
348nobodyさん:2007/08/31(金) 15:07:01 ID:???
>>347
>>340を見て何がわからない?
349nobodyさん:2007/08/31(金) 15:10:17 ID:icDPlmBN
>>348
>>347を見て俺が何がわからないかをあなたが理解出来ない理由を教えてくれ
350nobodyさん:2007/08/31(金) 15:13:44 ID:???
>>349
条件式の中身←whileの()の中?{}の中?
351nobodyさん:2007/08/31(金) 15:15:04 ID:icDPlmBN
()
352nobodyさん:2007/08/31(金) 15:16:06 ID:???
ちょっとみてたがテキストファイルのときは
file_get_contentsのほうがなにやらいいって書いてあったよ
353nobodyさん:2007/08/31(金) 15:19:35 ID:???
354nobodyさん:2007/08/31(金) 15:19:49 ID:???
>>351
結果がTRUEになり、終了するとFALSEになるような式
お前がどういう条件でループしたいかだ
355nobodyさん:2007/08/31(金) 15:20:08 ID:???
>>352
どこに書いてあったのさ。
356nobodyさん:2007/08/31(金) 15:23:36 ID:???
>>342
Apacheの設定が必要だったりして説明が面倒くさいから。
357nobodyさん:2007/08/31(金) 15:23:52 ID:???
358nobodyさん:2007/08/31(金) 15:26:07 ID:???
>>357
>file_get_contents() はファイルの内容を文字列に読み込む方法として好ましいものです。
もしかして、これ見て何も考えずに「あ、file_get_contentsはなにやらいいんだ!」とか思ってる訳?
359nobodyさん:2007/08/31(金) 15:29:49 ID:???
>>358
freadでなければならない理由が特に無ければ使わないに越した事無いだろ?
360nobodyさん:2007/08/31(金) 15:29:57 ID:???
PHPプロマガジンってのがあるんだ
年4回発行かな?
361nobodyさん:2007/08/31(金) 15:32:41 ID:???
>>359
使わないに越したことはないって…freadに何の不満があるんだお前。
ちなみにfile_get_contentsは「テキストファイルの場合」じゃなく
「文字列変数に取り込みたい場合」にパフォーマンスが高いもの。
ファイルの種類は全く関係ないし、入力したものを出力するだけの
今回のケースではかえってパフォーマンスが低い。
362nobodyさん:2007/08/31(金) 15:34:12 ID:???
俺がfile_get_contents使うのは特定のURLのページを読み込むときくらいだが
他に使った記憶ない・・・

まぁ、DB使ってるからファイルとか全然つかんw
363nobodyさん:2007/08/31(金) 15:34:39 ID:1M6g8luz
>>356
ああ、 なるほど。
364nobodyさん:2007/08/31(金) 15:35:17 ID:yIsfOZYg
>>362
お前の好みの話なんて聞いてねぇ
365nobodyさん:2007/08/31(金) 15:35:36 ID:???
>>361
パフォーマンスというのは速度的、若しくはメモリ的ななもの?
その実測値の比較データを見せてくれたら納得してやる
366nobodyさん:2007/08/31(金) 15:40:33 ID:icDPlmBN
>>354
freadで1024づつ取り出し、ファイルの終端まで取り出したらループを停止。
367nobodyさん:2007/08/31(金) 15:41:13 ID:???
>>365
は?つーか、逆におまえこそfreadを使うべきでないという理由を実測データをもって示せよ。
368nobodyさん:2007/08/31(金) 15:42:00 ID:???
>>366
>>329
お前の目は節穴だ。
369nobodyさん:2007/08/31(金) 15:44:14 ID:???
普通に検索すればfile_get_contentsのほうが効率的だとでているのを
たかが匿名掲示板の一人が騒いだところで何の説得力も無いわな
370nobodyさん:2007/08/31(金) 15:44:25 ID:???
>>366
freadでどうすればTRUEが返る?どうすればFALSEが返る?
371nobodyさん:2007/08/31(金) 15:46:01 ID:???
>>369
ファイル全部を丸ごと読み込みたい場合の話だろそれ。
今回みたいに1024バイトずつしか読み込む必要がない場合でも効率的とか
相当に頭が眠ってるようだな、おまえ。
372nobodyさん:2007/08/31(金) 15:46:11 ID:icDPlmBN
>>370
もうスクリプト出してくれたほうが早い。
373nobodyさん:2007/08/31(金) 15:47:27 ID:???
>>372
は?スクリプト出したら宿題にならないだろ
しかも聞いておいてその反応は何?

じゃあわからないなら学校の先生にでも聞け
俺はもう答えるのやめる
374nobodyさん:2007/08/31(金) 15:47:40 ID:???
>>372
そんなの当たり前だ。
だが断る。

不勉強なやつが怠けるのを手伝うほどお人好しじゃない。
375nobodyさん:2007/08/31(金) 15:47:58 ID:???
今日は盛況だね
376nobodyさん:2007/08/31(金) 15:51:26 ID:???
夏休みももう終わりだ。もうしばらくの辛抱さw
377nobodyさん:2007/08/31(金) 15:51:57 ID:???
今日で8月も終わりか…
378nobodyさん:2007/08/31(金) 15:52:56 ID:???
全部読み込んで分割。これ最強
379nobodyさん:2007/08/31(金) 15:53:08 ID:???
そっか、高校だったら明日が宿題の提出日か

>>372
ざまぁwwwwwwwwwwwwwwwww
380nobodyさん:2007/08/31(金) 15:54:04 ID:icDPlmBN
商業の先生にPHPわかる奴なんていないですから
商業高校の先生にPHPの宿題出す奴いないですから。
二年、三年は知らないがな。

なぁ、恥ずかしくてソースも出せなかった俺の身にもなれよ、
あのソース見たら俺がどれだけPHPについてわかってないかわかるだろ?
なぁ、もぅソース出してくれよ
381nobodyさん:2007/08/31(金) 15:54:13 ID:???
>>378
それなら分割しながら出したほうが効率よくね?
382nobodyさん:2007/08/31(金) 15:55:09 ID:???
>>380
だ が 断 る

努力もしないで他人に頼ってばっかりのゆとりのお前に答えるものなどない
383nobodyさん:2007/08/31(金) 15:55:26 ID:???
>>380
おまいが商業高校の1年というのはわかった。
384nobodyさん:2007/08/31(金) 15:55:57 ID:icDPlmBN
>>379
馬鹿?w
明日土曜日ですけど?w
学校は9月3日ですからw
385nobodyさん:2007/08/31(金) 15:56:13 ID:???
ずいぶん前に学校教育が終わってしまった人から質問だが、
実際今の普通科高校じゃどのくらいの事やるんだ?
?モレ?モレはベーシックヤッテタヨ。歳バレソウダケド。
386nobodyさん:2007/08/31(金) 15:56:47 ID:???
>>380
宿題じゃないなら焦る必要もないじゃん。
まずはPHPのマニュアル本買うか、自宅のPCをネットに繋げてオンラインマニュアルにアクセス。
話はそれからでも遅くはあるまい。
387nobodyさん:2007/08/31(金) 15:57:56 ID:icDPlmBN
>>382
昨日の夜からPCに向かってるが、わからないもんはわからないんだ
お前にとっちゃわからない=努力していない
かもしれないが、俺はいろいろといじくりまわして頑張ってんだよ
388nobodyさん:2007/08/31(金) 15:58:23 ID:???
>>378
PHPの文字列・配列処理はそんなに効率よくねーよ
389nobodyさん:2007/08/31(金) 15:58:32 ID:???
>>385
ベーシックどころか普通高校では授業でパソコンすらさわらなかった俺\(^o^)/オワタ
390nobodyさん:2007/08/31(金) 15:59:05 ID:???
>>387
いいけど、すでに回答は書かれてるんだけどな…
読み落としてるお前も悪いと思う。
391nobodyさん:2007/08/31(金) 15:59:11 ID:???
>>387
本当に努力しているやつは自分を「頑張ってる」なんて言わない
392nobodyさん:2007/08/31(金) 15:59:51 ID:???
>>385
工業高校だったから
F-BASIC
アセンブラ
VB
393nobodyさん:2007/08/31(金) 15:59:57 ID:???
>>387
きっとみんなはいろいろいじくりまわした結果達成したときの喜びをお前に教えてあげたいんだよ
394nobodyさん:2007/08/31(金) 16:00:50 ID:???
>>387
エネルギーの使い道を間違ってるよ。
よく考えないでいじってるだけだろ?
395nobodyさん:2007/08/31(金) 16:02:49 ID:???
>>389
うちの高校週一か二ぐらいでPC触る授業あったな。
中学からPCさわってたオレはヒーローになれたから楽しかった。
>>392
やっぱ工業高校はつよいね。モレが高校のときはVBなんて影も形もなかった。
DOSの原型はさわってたけど。
396nobodyさん:2007/08/31(金) 16:03:15 ID:???
>>387
それ、なんの課題なんだ?
それを隠されてもアドバイスのしようがないし。コードだけじゃなくてさ。
あと本当にPHP勉強してるの?
なんかプログラムを全く知らない素人が適当にコードをつなぎ合わせて何とかしてるように見えるんだが。
397nobodyさん:2007/08/31(金) 16:03:20 ID:icDPlmBN
BASICは中学の技術の時間にやった。
インターネットつなげたいんだが
、まだ金が貯まってない。
FTTHかADSLって考えたら俺の家は親子電話でADSL不可能
FTTHだと27800、
バイトは学校側から駄目だと言われてる

アセンブリ言語か、羨ましいな。
マジで
逆汗してkrack学習とかもしたんですか?
398nobodyさん:2007/08/31(金) 16:03:56 ID:???
そもそもPHPのマニュアルは持ってるのか?
399nobodyさん:2007/08/31(金) 16:05:18 ID:???
>>250 設問はこれか?150レスもよく遊んだもんだw
1024バイトづつか。2バイト文字の真ん中とかだったらどうすんだべ?
それでもぶった切るんかな?
400nobodyさん:2007/08/31(金) 16:05:19 ID:???
ってか、PHP使う環境が整っていないのに
使おうとする>>397には誰もつっこまない件
401nobodyさん:2007/08/31(金) 16:05:25 ID:???
ブラインドタッチできるだけで凄い凄い言われたなぁ。
ちょっとスクリプト書けたり、レジストリ弄れるだけでハカー扱いだったしw
402nobodyさん:2007/08/31(金) 16:06:10 ID:???
BASICでHit&Blow作ったときは皆からすごいすごい言われたな
403nobodyさん:2007/08/31(金) 16:06:28 ID:???
ネットでまかなえるが本当に勉強しようと思ったら関数のリファレンスくらいはもっといたほうが楽だぞ
404nobodyさん:2007/08/31(金) 16:07:32 ID:???
俺はWebのPHPマニュアルだけでほとんど全部身に付けたよ
405nobodyさん:2007/08/31(金) 16:07:38 ID:???
いい言葉を紹介しよう。

   ぐ   ぐ   れ
406nobodyさん:2007/08/31(金) 16:08:48 ID:???
>>404
いくつか参考書買ったけど、
今一番気に入ってるのがPHP5大全

でも最近はネットでの検索が多いな・・・


PHPマニュアルは関数の使い方のサンプルみたいなのあるけど、
PEARってそういうサンプル載ってないのが辛いな・・・
407nobodyさん:2007/08/31(金) 16:11:08 ID:???
>>406
俺もPHP5大全。
関数調べるのオンラインだとなんか作業効率悪くなるんだ
408nobodyさん:2007/08/31(金) 16:12:01 ID:???
>>407
仲間いて嬉しいよ
後ろの索引での検索ができないのが辛い・・・
409nobodyさん:2007/08/31(金) 16:12:36 ID:???
>>406
たしかに、今は本の売れ行きは良くないな。
Javaで本を一冊書いたけど、増刷しないことが決まっちゃった。
410nobodyさん:2007/08/31(金) 16:13:47 ID:???
>>409
PEARの全てを書いて出版してくれ
PEARの本ってamazonで探しても1冊しかなかった

専門書ってかなり高いけど、あれってどうにもならないもんなの?
411nobodyさん:2007/08/31(金) 16:17:11 ID:icDPlmBN
>>393
そぅでしたか。
余談だが
確かに…あの頃は感動したなぁ。
ドライアイスによる竜巻発生装置作った
まだ俺がカメラのフラッシュ回路を訳も分からずに触って感電した時だった。
コッククロフトウォルトン回路作りたかったんだ。
>>401
俺の親父はレジストリいじくってPC壊れたw
ハッカーか。凄いな。
BotVirusとか作りまくったりしてんのかな。
懐かしいがWordでメリッサやったりした。
ブラクラもやってみたり、
FLASHやったり、
crkmeいじくったり
VVSおじさんに憧れたりもしていた。
とにかく中途半端だった。
本は一冊買った。
PHP5
逆引き
500の極意
基本から勉強しようと思う。
なんかラクダの絵とかかかれてる本はどうなんですか?
412nobodyさん:2007/08/31(金) 16:18:40 ID:???
>>410
多分無理だろうな。phpのニーズがそれほど大きくない上に、
PEARってライブラリーの一つに過ぎないから

どの出版社も企画会議で、類似書籍の販売実績が高くないものは通りにくいらしい。

専門書が高いのは、売れないから。
大学入試用の参考書が分厚いのにものすごく安いことを比べれば分かること。
413nobodyさん:2007/08/31(金) 16:20:11 ID:???
ニーズないのか
webの発達が急速化してるのに本って売れないんだね
414nobodyさん:2007/08/31(金) 16:21:00 ID:???
>webの発達が急速化してるのに本って売れないんだね

いや

webの発達が急速化してる「から」本って売れないんだよ
415nobodyさん:2007/08/31(金) 16:21:28 ID:???
なるほど、そういうことか
416nobodyさん:2007/08/31(金) 16:21:54 ID:???
>>410
リファレンスが日本語化されてないライブラリでも中学校程度の英語力でもなんとかなる。
っていうかなんとかなってる
417nobodyさん:2007/08/31(金) 16:24:15 ID:icDPlmBN
なぁ、
俺が先生に「今からPHPやります」って言った時、
何て言われたかわかるか?
418nobodyさん:2007/08/31(金) 16:25:07 ID:???
>>417
中途半端に終わるからやめとけ


ってか、ここはお前のスレじゃないから
とっとと消えろよ
419nobodyさん:2007/08/31(金) 16:25:37 ID:???
>>417
「今から、PHP出版を殺(や)るのか?」
と言われたとか。
420nobodyさん:2007/08/31(金) 16:25:59 ID:icDPlmBN
「今頃PHP(笑」
今頃って何なんだ!!!!!!!!!!!!!!!!!!!!!!!!!
421nobodyさん:2007/08/31(金) 16:26:41 ID:???
>>411
基本構文くらい理解していれば
後はネットにあがってる他人のコード追ってみて
ちょっとあそんでればそれなりに習得できるのがphp。

できなければ素質が無かったと思ってあきらめる。
422nobodyさん:2007/08/31(金) 16:29:58 ID:icDPlmBN
>>421
…今から公共のPC使いに行ってくる…
片道一時間だけどな…
423nobodyさん:2007/08/31(金) 16:30:31 ID:???
>>422
勝手に行ってくれば?
いちいち報告しなくていいよ


ところでSmartyのスレってないの?
424nobodyさん:2007/08/31(金) 16:31:10 ID:???
こーりゃ ID:icDPlmBNは大学生じゃまいか?
他の言語一つでもやったことあればPHPはかなり入りやすいとおもうけどな。
425nobodyさん:2007/08/31(金) 16:32:26 ID:???
デバグはちとメンドクサイかもしれんが。
環境なんてレンタルサーバ月150円だせばどんだけでもうごかせるし。
426nobodyさん:2007/08/31(金) 16:32:44 ID:hmrJM+EB
現状ではPHP以外に選択種はないからな
427nobodyさん:2007/08/31(金) 16:33:21 ID:???
>>423
その質問よくあるけど、Smartyのレスはないよ。

Smartyなら、今まで何回も案件こなしているし、
カスタマイズもしているから、俺に聞けば分からないことはない。
428nobodyさん:2007/08/31(金) 16:34:04 ID:???
>>411
早くスクリプトキディを卒業できるといいですね
429nobodyさん:2007/08/31(金) 16:35:03 ID:???
>>427
PHP+MySQL+PEARがある程度理解できてきたのでSmaryでも勉強してみようかなと・・・
Smartyスレ立てたらたたかれるのかな・・・
430nobodyさん:2007/08/31(金) 16:35:12 ID:icDPlmBN
>>424
actionscript
とXHTML.HTMLかじった程度
http://arazikai.lxl.jp/index.xhtml
拡張子がxhtmlには訳がある。
携帯サイト。
じゃ
431nobodyさん:2007/08/31(金) 16:37:01 ID:icDPlmBN
>>428
余計なお世話ですw
432nobodyさん:2007/08/31(金) 16:39:57 ID:QupiSU+k
phpinfo()を実行すると、マニュアルにある紫色の画面ではなくて、
違った画面がでるんですが、これは何でしょうか?
http://www.nya-taloda.jpn.org/2MB/src/mamitasu10627.jpg
433nobodyさん:2007/08/31(金) 16:41:35 ID:QupiSU+k
>>432
よく分からないけど、インストールの際のオプションとかどうしたの。

通常は、phpinfo()で出力されるはずだけど。
あとは、文法的にエラーってない?
434nobodyさん:2007/08/31(金) 16:42:34 ID:???
ちょwwww

何がだよwww
435nobodyさん:2007/08/31(金) 16:44:28 ID:???
>>432
どうせ変な所からソースを引っ張ってきたんだろ、ちゃんとした所からダウンロード
してやり直した方が良いぞ。
436nobodyさん:2007/08/31(金) 16:52:48 ID:???
神奈川県 株式会社 インターリンク なんだこりゃ?
437nobodyさん:2007/08/31(金) 17:07:35 ID:hmrJM+EB
>>432
お前の醜き心を現した写真か
438nobodyさん:2007/08/31(金) 17:15:07 ID:???
面倒くさくて軽く100レスくらい読み飛ばしたけどなんか問題ありますか
439nobodyさん:2007/08/31(金) 17:16:08 ID:???
1+1=
440nobodyさん:2007/08/31(金) 17:19:40 ID:???
>>439
<?
1+1=
?>
Parse error: parse error, unexpected '=' in C:\www\test.php on line 2
441nobodyさん:2007/08/31(金) 17:21:20 ID:???
>>432
それはお前の顔が画面に映ってるだけだ
442nobodyさん:2007/08/31(金) 17:22:02 ID:???
1 + 1 = 2
Google 電卓機能について

このキーワードを含むドキュメントを検索する 1+1= .
443nobodyさん:2007/08/31(金) 18:07:01 ID:???
ちんこまんこー
444nobodyさん:2007/08/31(金) 18:37:06 ID:???
もしかして、このスレの住人は工業(商業)高校の出身多いの?
445nobodyさん:2007/08/31(金) 18:43:59 ID:???
高校 普通科
大学 医学部
446nobodyさん:2007/08/31(金) 18:45:19 ID:???
俺は平均偏差値74の超進学校だぃ(^_^




・・・ウソだけど
447nobodyさん:2007/08/31(金) 19:16:21 ID:???
医学部2年ですが・・・なにか?
448nobodyさん:2007/08/31(金) 19:25:08 ID:???
馬鹿田大学医学部ですが、なにか?
449nobodyさん:2007/08/31(金) 19:50:12 ID:???
桐堂大学ですが・・・?
450nobodyさん:2007/08/31(金) 19:59:37 ID:???
武蔵中学3年ですが、何か文句がありますか?
451nobodyさん:2007/08/31(金) 20:05:54 ID:???
幼稚園児ですが、PHPのエキスパートです
452nobodyさん:2007/08/31(金) 20:31:05 ID:???
胎児です。こんにちは。
453nobodyさん:2007/08/31(金) 20:32:13 ID:???
どうも。精子です。
454nobodyさん:2007/08/31(金) 20:33:12 ID:FU/+7uRQ
フォームから入力された文字列に「'」が入っている場合があります。
これをhtmlspecialchars使ってもサニタイズされず、困っています。

どうしたらよいのでしょうか?
455nobodyさん:2007/08/31(金) 20:34:31 ID:???
まずマニュアルのhtmlspecialcharsのページを全文コピペしろ
456nobodyさん:2007/08/31(金) 20:34:52 ID:???
addslashes
457nobodyさん:2007/08/31(金) 20:37:00 ID:???
>>456
初心者乙
458454:2007/08/31(金) 20:43:09 ID:???
自己解決しました。。↓ですね。
htmlspecialchars($_POST["name"], ENT_QUOTES);
459nobodyさん:2007/08/31(金) 20:46:37 ID:???
こんだけヒントもらっといて自己解決たぁいい度胸だ
460nobodyさん:2007/08/31(金) 20:54:31 ID:???
姫井ゆり子で自家発電中です。
461nobodyさん:2007/08/31(金) 20:59:25 ID:???
>>460
お前は人間として最悪だな。
お前のような腹黒い人間は早く死んだほうが世の中のためになるよ。
462nobodyさん:2007/08/31(金) 22:39:41 ID:7jATCbIM
phpのセーフモードで一部のユーザーやディレクトリを非適用にしたいのですがどういった方法がありますでしょうか?
ググってもわかりやすい回答に出会えませんでした
よろしくお願いします
463nobodyさん:2007/08/31(金) 23:44:14 ID:???
変数の前の&ってなにを意味してるんでしょうか。ビット演算子じゃないっぽいし…
例) hoge( &$ss , $int ){
464463:2007/08/31(金) 23:47:28 ID:???
吊ってくる
FAQにありましたね・・
465nobodyさん:2007/09/01(土) 00:22:33 ID:2rZ2o9PE
あるテキストにある単語の中で、もっとも使われている単語などを順番にリストアップしたいです
どうすれば良いのでしょうか?
466nobodyさん:2007/09/01(土) 00:26:12 ID:???
>>465
英文か日本語か、又はどこかの言語かによって違う。
活用形がある場合とかも考えて揺らぎ除去するとか考えるともっと複雑。
467nobodyさん:2007/09/01(土) 00:29:49 ID:???
>>466
レスありがとうございます

kakasiなどを利用すればきちんと出来るのかもしれませんが
今回の場合は「ゆらぎなし」の「日本語」を想定しています
言葉足らずで申し訳ありません
468nobodyさん:2007/09/01(土) 00:36:28 ID:???
>>467
日本語を単語レベルで集計するのにphpの力だけでやろうとしているの??
形態素解析器から出力したものを集計する方が早いだろ?
469nobodyさん:2007/09/01(土) 00:48:43 ID:2rZ2o9PE
「形態素解析」恥ずかしながら知りませんでした
もっと簡単なものだと思っていましたが、私がやろうとしていることはそんなに面倒なことなのでしょうか?
470nobodyさん:2007/09/01(土) 00:50:52 ID:???
文字レベルでやるならphpの力でも出来るけど。
単語レベルなら、自然言語処理の知識がないと無理。
471nobodyさん:2007/09/01(土) 00:58:01 ID:???
>>470
ありがとうございます
もう少し自分で勉強してみます
472nobodyさん:2007/09/01(土) 01:38:21 ID:???
kakasiを知ってて形態素解析がわからんとは
473nobodyさん:2007/09/01(土) 01:48:09 ID:???
                 ,.    _,...   __,..
               /レ' |,, -‐''´∠-‐'´,∠-z_,.
             _l         ´   ∠__
             、)   /           ∠___
             〉 _l_.∠..__/      -‐<_
             〉´:::7:。'´ ̄`'ー-、_,. -  -‐<__
            __l;;;;;;;;|;゚_......,,∠@ `ヽ._,..-  -<_        よんだ?
      ,-r―‐‐''''´| ト、`i/'´..三.ヾ.     \  Z´ ̄`''ー-、 
     λ|     | ト、_|、 ´、_゚_,` iヽ.   。゚/Y'T´       |ト、
    /人 |      | |:::::ト、ー--‐'⌒'‐`ー、∠イ |        | K}  
   く`'´::::::\  、、、、ゝヽ;:::::\       /:::ノ ノ    ........ ノ人}
   /`:::::::::::;;;;;〉、 ゛゛゛。`X'、::::::`::、_____,.::´::::;:'X´o"""""__./∩::/7
   〉:::::::::::;;;;;;;;;イ`ー--‐'^'、ヽ;::::::::::::::::::::::::ノノ`'ー-、...____/;;::::H/./
   ノ:::::::::::::::;;;;;イ=〒〒=i `'''ー===i===‐'''´r=〒〒=iト;;;;;;;ハつ /7-,
  /::::::::::::::::::;;;フ}{==+=+==}}     ||    {{=+==+==}{;;;;;;;i,::::`iー'-^j
474nobodyさん:2007/09/01(土) 02:12:32 ID:???
バカはスルーして
つづきどうぞ↓
475nobodyさん:2007/09/01(土) 02:22:08 ID:Ym+xGTAW
そんなの関係ねぇ!
そんなの関係ねぇ!

つづきどうぞ↓
476nobodyさん:2007/09/01(土) 02:24:24 ID:KtjHm3MJ
携帯サイトのアクセス解析のため、簡単なスクリプトを書いて対象のサイトにimgタグで貼り付けて動作させているんですが、
imgでphpファイルを指定すると画像表示不可能を表すマーク(×など)が表示されて見栄えが悪くなってしまいます
これなんとか非表示にできませんか?
477nobodyさん:2007/09/01(土) 02:27:28 ID:???
できます。
478nobodyさん:2007/09/01(土) 02:31:17 ID:???
はい、オッパッピー

ってだれかのってくれよ
479nobodyさん:2007/09/01(土) 02:44:40 ID:KtjHm3MJ
自己解決しました
無能ども死んでください
480nobodyさん:2007/09/01(土) 03:23:06 ID:???
PHP暦二ヶ月です。
>>250
ID:icDPlmBN が言ってるやつを試しにwhileとfreadで書いてみたんですが、
2バイト文字が境目で切られて、文字化けしてしまいました。
これの対応策を教えてくれませんか? 残念ながら見当が付きません。

まあ「区切ってないテキストを○○文字ずつ出力」という事は多分しないですけど。
481nobodyさん:2007/09/01(土) 03:28:23 ID:???
自演乙
482nobodyさん:2007/09/01(土) 03:57:33 ID:???
>>481
自演じゃないよ、別の馬鹿だよ。
>>330 さん見てて、とりあえずこう書いた。

$fh=fopen("test.txt","r");
while($str=fread($fh,1024)){
print "<p>".htmlspecialchars($str,ENT_QUOTES)."</p>\n";
}

実行したら、境目の文字が化けた。
↑のやり方で、境目の2バイト文字の片割れと1バイト文字の判別法がわからない。
483480,482:2007/09/01(土) 03:59:01 ID:pRNvjrEd
ごめんID表示忘れてた。
484nobodyさん:2007/09/01(土) 06:28:53 ID:r9rVpK15
さくらのレンタルサーバーでhtmlの拡張子のままphpを動かそうとしています。
.htaccessに
AddHandler myphp-script .html
Action myphp-script /php.cgi
と記述してアップしたところ、○○.phpのファイルはそのまま読めますが、
○○.htmlのファイルは500Internal Server Errorになってしまいました。
php拡張子のものが読み込めるということはパーミッションの設定ミスというわけでもなさそうですし
(念のためすべて755にしました。)
実は昨日までは普通に動いていたものをミスで.htaccessを削除してしまっため、もう一度アップしたらこの現象となってしまいました。
どなたかわからないでしょうか?
さくら以外のサーバーでは「AddType application/x-httpd-php .html」だけでいけたのですが、さくらだけはどうにも。
485nobodyさん:2007/09/01(土) 06:52:57 ID:???
486484:2007/09/01(土) 08:06:30 ID:r9rVpK15
>485さん
どもです。
検索ワードに.htaccessも加えてあちこち探して、
telnet直接乗り込みviで作り直したらうまくいったとあったので、
やったらうまく行きました。
たぶん改行コードかFTPのときのエラーかと思います。
どうもでした!
487nobodyさん:2007/09/01(土) 12:49:26 ID:oiOJU//q
自ファイルへのリンクってどうでしたっけ?
$_POST[self]だったかと思ったら違いました
488nobodyさん:2007/09/01(土) 12:52:13 ID:???
ファイルポインタを一行だけ戻したいんだけど
489488:2007/09/01(土) 12:57:16 ID:???
自己解決しました><
490nobodyさん:2007/09/01(土) 13:29:56 ID:WrlGqUhd
すいませんしてないです
id出してなくてすいません
491nobodyさん:2007/09/01(土) 13:31:33 ID:???
>>487,488
二人とも、人に聞く前にまず自分で調べることを心がけたほうがいいよ
492nobodyさん:2007/09/01(土) 14:51:25 ID:???
配列のインデックスを、数値にする=4バイトも使う
1文字の文字列にする=1バイトで済む
こう考えると、インデックスは文字にした方がよいのでしょうか?
493nobodyさん:2007/09/01(土) 15:56:15 ID:NfVJpLYy
末尾が\の文字列を表記する時に、
'hoge\'や"hoge\"だと、クオートがエスケープされてしまうのでエラーになります
'hoge'."\\"
とか書くしかないですか?
もっといい方法あれば教えて下さい
494nobodyさん:2007/09/01(土) 16:01:14 ID:???
"hoge\\"
495nobodyさん:2007/09/01(土) 16:12:30 ID:???
>>494
盲点でしたw
ありがとうございました
496nobodyさん:2007/09/01(土) 16:41:48 ID:???
>>487
$_POSTはクライアントから渡されるパラメータじゃん。
システム系の情報は$_SERVERだよ。
ttp://www.php.net/manual/ja/reserved.variables.php
↑ブックマークするか保存しておくといい。
497nobodyさん:2007/09/01(土) 16:45:02 ID:???
>>488
1行読み込む前に現在のファイルポインター位置をftell()で保存しておいて
戻したいときはそのデータをfseek()でセット。

元の位置を保存しないでやるとしたらfseek()で現在位置を1文字ずつ
前にずらしながら読み込んでいって、改行文字を探しだすとかしないと
無理なんじゃないかな。
498nobodyさん:2007/09/01(土) 16:49:48 ID:???
>>482
読み込んだデータの末尾1文字の文字コードを調べて
プリンタブルコードの最後の文字よりコードが大きい場合は
切り捨てて、次のファイル読み込み位置を1バイト手前に設定、
って感じじゃないのかな。
SJISで半角カナを含む場合は該当文字コードの範囲に気をつけないといかんけど。
499nobodyさん:2007/09/01(土) 17:02:07 ID:???
文字コードで悩んでいるなら、素直にUTF-8にしとけよ。
時間の無駄だよ。

この辺が、Javaと違ってphpの言語仕様が糞なところだが、
どれでも使えるから使っていいじゃなくて、
何が使いやすいかを考えて文字コードを選択しないと、
あとで余計な時間を費やすことになるぞ。

趣味で時間がありあまっているなら、勝手にすればいいと思うが。
500nobodyさん:2007/09/01(土) 17:37:28 ID:???
誰宛のレスだ
501nobodyさん:2007/09/01(土) 17:44:48 ID:HTX0SqTD
ちょっとしたことですが、気になったので質問です。
フォームから受け取った値を出力する時、
$_POST["name"]というようにしていますか?それとも変数に変換して
$nameとして出力していますか?

郵便番号の書式を変換したりするとき、$zipというように変数に代入していますが、
それ以外は$_POSTのまま出力しています。こちらの方がセキュリティ的に
良いのかな?っと思いまして。皆さんの場合を教えて下さい。
502nobodyさん:2007/09/01(土) 18:22:34 ID:???
・グローバル変数を増やしたくない
・同じ内容の変数が複数あるのは無駄
・スーパーグローバル変数である(関数内でglobal宣言無しにアクセス可能)
ってな理由でそのまま使ってるな。
503nobodyさん:2007/09/01(土) 18:30:27 ID:epTGamb+
>>501
値を出力するときは常にhtmlspecialcharsを通す。
htmlspecialcharsを通された値が代入されていることが分かる変数であれば、 そのまま出力する。

echo $_POST['name']; // これは危険

echo htmlspecialchars($_POST['name'], ENT_QUOTES); // これは安全

echo $safeName; // htmlspecialcharsに通された値を 「safe」 が付く変数に代入するという規則が決めてあれば、 これは安全

参照:
間違ったコードは間違って見えるようにする
(http://local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B)
504nobodyさん:2007/09/01(土) 18:34:42 ID:???
↑つながらん
505nobodyさん:2007/09/01(土) 18:52:25 ID:???
>>501
元々のデータをそのまま使うなら$_POSTのまま、
データを様々加工する場合は別途変数に入れて、
としてる。

そのまま扱うのに別の変数に入れるってのは意味が分からん。
加工がある場合は元データを消失する構造にしてると
後の仕様変更で困ることが多いのでこれは別変数とする。
セキュリティはDB登録時やHTML出力時にそれぞれに合った形で
逐次エスケープするわけだから、別変数に入れる必要は全くない。
506nobodyさん:2007/09/01(土) 19:49:34 ID:Ca6l/pzb
とりあえず変数(ローカル)に叩き込む派。
無駄でもなんでも変数ぐらいわかりやすく使えよ。さほどメモリ減るもんじゃなし。

自分の言い訳を考えるに、 読み込み→加工→出力 の一般的プロセスを分かりやすくするため
最初にリードしてる気分でローカル変数に叩き込んでる、つーかんじなのかもしれん。

グローバル変数で受け取る?つーかグローバル変数使うなんて阿呆のすることだと思うが?
507501:2007/09/01(土) 20:12:35 ID:???
皆さん、ありがとうございます。自分は今まで505さんの言う方法をしていました。
それでふと「他の変数に入れた方が、わかりやすいんじゃないか?」っと
思って、他の方はどうしているか気になった次第です。

とりあえずこれまで通り、加工しない場合は$_POSTのまま出力し、
加工する場合は、別途変数に入れる出力方法で行きます。
ちなみにhtmlspecialcharsは常にやっています。
508nobodyさん:2007/09/01(土) 20:15:41 ID:???
>>506
またすごい奴来たなwグローバル変数使ってると阿呆だって言い切ってるしw
509nobodyさん:2007/09/01(土) 20:29:33 ID:???
そんなそんなグローバル変数がどこで入力されて、内容が加工されて、出力されてるか
プログラムを瞬時に理解できてミスもしない神プログラマーの>>508さんには間違っても勝てませんて。
510nobodyさん:2007/09/01(土) 20:44:02 ID:???
必要時にローカル変数化するならともかく、「とりあえず変数に叩き込む」レベルで
そのローカル化したという変数がどこで加工されて出力されてるか把握できるのもすごい。
というか、ローカルって言うけどPHPの先頭がいきなりmain()とかの関数呼び出しになってるの?
関数内ならともかく、PHPのメイン処理で変数にぶち込んだらそれグローバル変数だと思うんだけど。
511nobodyさん:2007/09/01(土) 20:47:14 ID:???
神ではないが普通にグローバル変数使うときは、変数破壊には注意を払うね。
全く使わないというのは無理。
512nobodyさん:2007/09/01(土) 21:00:50 ID:???
グローバル変数の意味とりちがえてるかも。
少なくとも俺はPHPはじめてglobal宣言はサンプル以外で書いたことはない。
全部関数に引数与えて処理してるし、スコープ考えて処理してる。
main()て書いて、いきなりスコープかましてるわけではないけど、

入力したデータはなにで、どこでしてるか
加工はどこでしているか
出力してるとこはどこか
ぐらいは簡単になるまで関数化、引数として何が必要か明確にしてるけど。

つか、そうそうソースの中のルートに書いた変数を関数内で扱う事に抵抗が無いわけ?
それじゃ簡単なものは作れても後々こまってくるとおもうんだが?
513nobodyさん:2007/09/01(土) 21:26:07 ID:???
>>512
関数に引数として渡すこと=ローカル変数化、って言ってるの?
だったらこっちも同じだよ。
ってかふつーそんなの「とりあえず変数に叩き込む」って言わないだろう。
514506,509,512:2007/09/01(土) 21:38:22 ID:???
んーまた物議を醸し出しそうでこわいが、(w)
ほぼオレの書いたソースはこれに近い形になってる(してる)んだが。
やっぱオレ間違ってる?なんか説明まちがった?よろしくw

<?php
//入力
$a=$_POST[〜]; //←変数に叩き込み
//処理
$b=process($a);
//出力
output($b);
function process($aa){

}
function output($ab){

}
?>
515nobodyさん:2007/09/01(土) 21:42:29 ID:???
>>514
確かに「とりあえず”グローバル変数に”叩き込んでる」のね。

> $a=$_POST[〜]; //←変数に叩き込み
> $b=process($a);

…これって意味あるのか?($a代入)
セキュリティ以前に開発ミスを防ぐって意味でも。

セキュリティ的な意味合いでは「それが外部から来たデータであること」を
常に意識できる形になってないと極めて危険、というのが俺の経験則。
516nobodyさん:2007/09/01(土) 21:45:27 ID:???
>>514
global宣言したものをグローバル変数というのではなく、
グローバルスコープの変数をグローバル変数というのだよ。

$_POSTのままの方がユーザー入力だと解りやすいと思うけどね。
517nobodyさん:2007/09/01(土) 21:54:34 ID:???
なーんかオレが劣勢っぽいけどw

もちろんprocess関数内では「グローバルとしては扱ってない」よ。
$aが外からきた変数の明示 ($a=_POST[〜];)と
加工部内でその$aが使われている証明($b=process($a);)
があるからいいんじゃね?

もしprocess内で$_POST[]がつかわれたらそれこそどこの環境の
どのデータとってきてるんだってことになるとおもうが?

どのデータを処理に使ってるか処理順序で明示してやるほうが分かりやすかろう
とおもってこうしてるわけだが。

>>516 んではサンプルのprocess内でも$_POSTで値とってきたほうが分かりやすいのか?
518nobodyさん:2007/09/01(土) 22:00:47 ID:???
$_POSTにポストデータ以外の出所なんてあるのか。
519nobodyさん:2007/09/01(土) 22:03:40 ID:???
ああ、あと一つ。

もし$_POSTをprocessにかける前に加工する必要性がでたら・・・・


おまえらソース書き換え大変だろwwwww
520nobodyさん:2007/09/01(土) 22:10:14 ID:???
>>517
なんで関数内からグローバル変数を参照することを前提に書いているのか謎だが、
>>501が質問したのは$a=$_POST[〜];が必要かどうかってことでしょ。
>>502の直接参照出来るってのは利点として挙げただけでそうしろってことではないでしょ。
それに関数内からグローバル変数を参照することはほとんどないといってもケースバイケースだし。
521nobodyさん:2007/09/01(土) 22:14:31 ID:qAbTQU9w
今まで、自分の考えていることに間違えなんて無いと思っていたけど、
このレスに来て、俺にも間違えが生じることがあることに気付かせてくれた。
悔しいけど、ありがとう。
> >>517
> なんで関数内からグローバル変数を参照することを前提に書いているのか謎だが、
ああ、これはオレのグローバル変数の取り違え。正直すまんかった。
わざわざスーパーグローバルと同じ動きさせるために global $a; $a=$_POST[]なんてやんのか?
とかおもったんでアホか!っておもって書いた^^;

> >>501が質問したのは$a=$_POST[〜];が必要かどうかってことでしょ。
>>519で論破でいいか?

> >>502の直接参照出来るってのは利点として挙げただけでそうしろってことではないでしょ。
べつにおれもそうしろとはいってないよ。アホだとはいってしまったけど。^^;
プログラムはうごきゃいいんだよ。保守性なんて保守する必要なければ必要ないしね。
でも分かりやすく、ミスなく、とかおもったら俺の経験則でこうなったが。

> それに関数内からグローバル変数を参照することはほとんどないといってもケースバイケースだし。
ケースがないわけないじゃない。globalが用意されてんだから。
でも明示してないものを関数内で入力として使う危険性のほうがおれは経験則で怖いんで俺は明示するよ?
というかんじかな。

>>521 >>519で論破でOK?
523nobodyさん:2007/09/01(土) 22:33:07 ID:???
もう、完敗宣言しているんだから、勘弁してやれよw
524nobodyさん:2007/09/01(土) 22:44:58 ID:VWNhFO8z
PHPスクリプトを配布しているおすすめのサイトを教えてください。
ソースを見て勉強したいと思っています。
525nobodyさん:2007/09/01(土) 22:51:55 ID:???
>>524
PEAR
526nobodyさん:2007/09/02(日) 00:23:30 ID:???
俺はglobal宣言せず、どうしても必要なら$GLOBALを使う派。
global宣言した変数ってコード追ってるときに判別しづらくて
バグの元にならない?
つかったことないけど、俺がそんな状況におちいったら
変数名$gblABCとかって接頭文字くっつける

かもしれない。
528nobodyさん:2007/09/02(日) 01:44:25 ID:???
>>527
変数名にプリフィックス付けるなんて、VBじゃないんだから止めろよバカ
お前の頭は、10年前から進歩ないのかよ
529nobodyさん:2007/09/02(日) 02:02:17 ID:???
>>528
お前、まさかハンガリアン記法とプリフィックスを
ごっちゃにしてないよな?

型を示すプリフィックスのハンガリアン記法は否定されているが、
スコープを示すプリフィックスは否定されてねーよ。

Javaだってメンバ変数の前かあとに _ をつけたりしてるだろ。
530nobodyさん:2007/09/02(日) 02:14:22 ID:QvprOJVv
お揉めのところ申し訳ないのですが、質問です。

アクセス解析をつくっているのですが、ユニークをどうやって取得・カウントすればいいか検討もつきません
つまらない素人質問で恐縮ですが、ご教示願います
531nobodyさん:2007/09/02(日) 02:26:42 ID:???
その日アクセスされたIPと照合
532nobodyさん:2007/09/02(日) 02:32:34 ID:QvprOJVv
レスありがとうございます。
そこまでは自力でわかりましたが、具体的にどのようにすれば良いのでしょうか?
533nobodyさん:2007/09/02(日) 02:36:52 ID:???
ifで条件判断すりゃいいだろ。
そこまでわかってんなら書け
534nobodyさん:2007/09/02(日) 03:05:17 ID:t27ykBXA
apacheユーザで動かしているwebサーバ上でphpを使用しwebmailを作ろうと思っているんですが、
システムユーザを作らないとユーザが作成できません。
rootユーザでapacheを動かせば作れるんですが。。。。。

一時的にrootで動かすにはやっぱりsudoを使わなければならないでしょうか?
宜しくお願いします。
535nobodyさん:2007/09/02(日) 03:07:12 ID:???
>>534
ちょwww 人が眠ろうとしているときにメールするなよ!!
536nobodyさん:2007/09/02(日) 03:26:09 ID:???
答えられないのに無理に答えなくてもいいと思うよ
537534:2007/09/02(日) 03:27:06 ID:t27ykBXA
>>535
( ゚д゚)ダレニモメールシテナイヨ
538nobodyさん:2007/09/02(日) 03:40:21 ID:QvprOJVv
>>533
ありがとうございました
539nobodyさん:2007/09/02(日) 03:45:09 ID:???
>>534
webmail とシステムユーザの作成に何の関係が?
たぶんシステムのユーザのメールボックスを使いたいのだろうが、
エイリアスで不足な理由は?

やっぱり使わなきゃダメかなぁみたいなノリでroot権限を使わない方がいいよ。
540534:2007/09/02(日) 03:49:52 ID:t27ykBXA
>>539
Web上でユーザの作成、削除をしたいんです。
formにて必要な情報を管理メールアドレスへ送ればいいのでしょうけど、
リアルタイムで作成したいと思っています。(yahooやgmailのような仕組み)
なのでやっぱりsudoとshellscript又はsystem()関数を使わなければいけないかなと思ったんですが。。。
541nobodyさん:2007/09/02(日) 03:54:37 ID:???
>>540
いやいや、だからメールボックスだけが必要なら、
システムのユーザを作る必要はどこにもないんだよ?
エイリアスで十分でしょ。

postfixなどには、エイリアスをデータベースに格納する設定があるから、
まずはそいつを調べるんだ。
542nobodyさん:2007/09/02(日) 04:06:36 ID:???
array(5,6,7,8,9,10)とか
連番の配列を作るにはどうしたらいいですか?
543nobodyさん:2007/09/02(日) 04:11:49 ID:???
>>542
for($i=5; $i<=10; $i++){
$array[] = $i;
}
544534:2007/09/02(日) 04:11:50 ID:???
>>541
Postfixにそんな機能があったのか、thxです!
ちょっと調べてみます。
ありがとうございました。
545nobodyさん:2007/09/02(日) 04:24:42 ID:???
>>542
range(5,10)
546nobodyさん:2007/09/02(日) 04:54:05 ID:???
>>543
それならできます
>>545
ありがとうございました
547nobodyさん:2007/09/02(日) 04:55:15 ID:???
こんなに優しくされたの初めてです♪
548nobodyさん:2007/09/02(日) 11:59:26 ID:IAvjtU3B
【やりたい事】
・HTMLのフォームに初期値を表示したい。
・初期値は別のテキストファイルからphpで呼び出したい。
・下記のソースではフォームに「$file_data[0]」,「$file_data[0]」と表示されてしまいます。
・本当に表示させたいメッセージは「名前を入力してください」,「問い合わせ内容を入力してください」です。

【data2.txtの中身】
名前を入力してください
問い合わせ内容を入力してください

【環境】
サーバーのOS:CentOS 4.5
Webサーバー:Apache 2.0.52
PHP:5.1.6
549nobodyさん:2007/09/02(日) 12:00:44 ID:IAvjtU3B
>>548の続き
【index.htmlの中身】
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>フォームに初期値を表示する</title>
</head>
<body>

<?php
$file_data = file("data2.txt");
?>

<form method="post" action="form.php">
お名前:<input type="text" name="name" value="$file_data[0]">
<br>
問合せ:<input type="text" name="contact" value="$file_data[1]">
<br>
<input type="submit" value="送信">
</form>

</body>
</html>
550nobodyさん:2007/09/02(日) 12:09:48 ID:???
>>549
お名前:<input type="text" name="name" value="<?php echo $file_data[0] ?>">
問い合わせも同様
551nobodyさん:2007/09/02(日) 12:22:39 ID:IAvjtU3B
>>550
ありがとうございます。
正常に動作する事を確認しました。

※補足
>>550さんの記述+index.htmlをindex.phpにする事で動作しました。
何となく過去の経験上、phpは拡張子がhtmlでも動作した気がしたのですが、htmlのままでは動きませんでした。
552nobodyさん:2007/09/02(日) 12:30:49 ID:???
>>551
AddType application/x-httpd-php .php .html
553nobodyさん:2007/09/02(日) 12:44:03 ID:3ZNK8eVt
テキストファイルに"5"が見つかったらその上の行を表示するようにしたいんので

$file = fopen("xxx.txt","r");

while (!feof($file)) {

$line = fgets($file,1024);

if ($line == 5){

fseek($file, $get);

$line = fgets($file,1024);

echo ("$line<br>");
}

$get = ftell($file);
}


fclose( $file );

これじゃできないんです。どうすればいいでしょうか
554nobodyさん:2007/09/02(日) 13:33:02 ID:???
if(strpos($line,'5') !== false)
555nobodyさん:2007/09/02(日) 13:37:02 ID:IAvjtU3B
>>552
ありがとうございます。
ググッて意味が理解でき、htmlでも動作するようになりました。
556nobodyさん:2007/09/02(日) 15:36:12 ID:bbqIMTHD
ここに書いてある方法でphp.ini設定してもphpファイル読み込めば勝手に西ヨーロッパ言語(ISO)でエンコードされて文字化けしてしまう
http://allabout.co.jp/internet/database/closeup/CU20050321A/index5.htm
まあ読み込むたびに手動でエンコード変えればちゃんと見れるのだが・・・
どうすりゃデフォルトでShift-JISやEUC-JPで読み込んでくれるのよ?


557nobodyさん:2007/09/02(日) 15:50:42 ID:???
htmlの勉強をしてください。
558nobodyさん:2007/09/02(日) 15:56:19 ID:???
>>556
今時ブラウザの自動判定に頼らずに、
ちゃんと文字エンコーディング情報を伝えてあげてください。
559nobodyさん:2007/09/02(日) 16:06:39 ID:bbqIMTHD
IEの自動判定ってどこで設定すんだよ
FFxだとうまく表示されるんだがIEだとなぜか西ヨーロッパ言語(ISO)になっちまうんだよ
ちなみにFFxだとエンコードはうまくいってるのにPHP5がちゃんと動作しない
どうすりゃいいのさ
560nobodyさん:2007/09/02(日) 16:10:25 ID:???
だからhtmlの勉強をしろ。
561nobodyさん:2007/09/02(日) 16:11:35 ID:???
>>559
>ちなみにFFxだとエンコードはうまくいってるのにPHP5がちゃんと動作しない
なんでPHPがブラウザに依存するんだよ
562nobodyさん:2007/09/02(日) 16:15:54 ID:???
ずるぽんあぷろだのソースはもう配布されてないのですか?
どこかに落ちてませんか?
563nobodyさん:2007/09/02(日) 16:16:38 ID:???
あんなもん1から作った方がいい。あれソース汚すぎ。
564nobodyさん:2007/09/02(日) 16:25:36 ID:cq55lstZ
function jikan(){
$jikan = time();
$_SESSION['jikan'] = $jikan;
}


jikan();
echo $_SESSION['jikan']

jikan関数を定義して、$jikanに現在の時間を入れて、$getに$jikanを代入したのですが、
ブラウザを更新するたびに$getの値が変わってしまいます。
$getにはtime()って関数がそのまま代入されてるからでしょうか?
$getにはじめに取得した時間のまま値を変えずにするにはどうしたらいいのでしょうか?
565nobodyさん:2007/09/02(日) 16:32:35 ID:???
>>564
$_SESSION['jikan']が存在すればjikan();に行かないようにすればおk
566nobodyさん:2007/09/02(日) 16:34:15 ID:cq55lstZ
アドバイスくださったとおりでした。
なんども定義関数を呼び出してました。
ありがとうございました。
567nobodyさん:2007/09/02(日) 16:37:14 ID:???
ソースから余分な改行等を抜いてつめつめにしたら
高速化できますか?
568nobodyさん:2007/09/02(日) 17:06:14 ID:???
できるよ
569nobodyさん:2007/09/02(日) 17:08:25 ID:???
なるんじゃね?

1GhzのCPUは一秒間に1000000000の命令を実行できるから
改行一つ当たり0.00000001秒ぐらい。
570nobodyさん:2007/09/02(日) 17:13:53 ID:???
>>569
CPUの命令の意味が全然分かっていない、知ったか厨
571nobodyさん:2007/09/02(日) 17:15:13 ID:???
>>570
本当はお前がわかっていないんだろうなw
反論するときは、その理由を書くもんだよ。
572nobodyさん:2007/09/02(日) 17:16:21 ID:???
>>571
その手に乗らねよ、厨www
知りたかったら自分で調べろ。
573nobodyさん:2007/09/02(日) 17:22:33 ID:???
お前の(間違った)考えを
ネットで調べろとは、また無茶なことを言うな。

ほれみろ、反論できやしない。
574nobodyさん:2007/09/02(日) 17:25:14 ID:???
>>573
馬鹿丸出しw
575nobodyさん:2007/09/02(日) 17:25:48 ID:???
>>570
たかが改行を一つ飛ばすぐらい。
機械語でも、比較命令・アドレス加算、ジャンプの
数命令程度ですむわけだが?
576nobodyさん:2007/09/02(日) 17:26:27 ID:???
コードキャッシュ入れたら無意味になるけどな。
577nobodyさん:2007/09/02(日) 17:27:00 ID:???
>>573は、自分の疑問を他人に調べさせようとしています。
以後、餌をあげないように。
578nobodyさん:2007/09/02(日) 17:28:14 ID:???
>>570はPHPの1命令は機械語に直すと
もっとかかると言いたかったのだろうが、
改行を飛ばすコードなんて機械語でもほんの数命令でしか
ないことに気づかなかった馬鹿ということでFA?
それ以外に何を言いたいのかわからない。
579nobodyさん:2007/09/02(日) 17:29:36 ID:???
盛り上がってまいりました
580nobodyさん:2007/09/02(日) 17:29:40 ID:???
>>577
お前さ、自分で反論していて、
その反論の理由をいえないなんて恥ずかしくないの?

私はあなたの意見の反論する。
その理由はお前がググレ。

これを議論の場で言ったら恥をかくだけだと思うよ。
581nobodyさん:2007/09/02(日) 17:32:58 ID:???
これでどっちが知ったかかはっきりしましたねw

もちろん>>570のことですよ。
582nobodyさん:2007/09/02(日) 17:33:18 ID:???
とりあえずネットよりまずPHPのC言語ソースを調べろと。
スクリプトの解析処理がどういう仕組みになってるかによって
改行コードの有無による処理コストは変わってくるし、
そこを調べずに論議してもまるで無意味。

でも多分、改行コードは単独で判定されてるわけじゃなく、
正規表現での構文解析で他の記号とまとめて処理されてると思うので、
構文解析としては改行があっても無くても速度はまるで変わらず、
差が出るのはディスクから読み込むときにバッファが小さくて済み、
サイズが数十〜数100バイト小さい分だけディスクI/Oが早く完了する、
という点に尽きると思う。
この速度差はCPUのクロックだけじゃなく、ディスクのI/O速度にも依存する。
583nobodyさん:2007/09/02(日) 17:36:40 ID:7yTluSfa
PHP4+Apache+MySQL(PostgreSQL)+Smartyが使用できるおすすめのフレームワークを教えてください
できればデファクトスタンダードになりそうなので
584nobodyさん:2007/09/02(日) 17:37:22 ID:???
>>583
今更PHP4がデファクトスタンダードになるわけないじゃん。
公式サポートはもう終了しちゃったよ。
585nobodyさん:2007/09/02(日) 17:37:49 ID:???
>>582
正規表現といっても、結局は最終的には
単純な機械語による比較とループとして実行されるわけで、
結局改行一つで増加するコードは10命令文にもならないだろうな。
0.00000001秒は妥当なんじゃね?むしろそれ以下。

586nobodyさん:2007/09/02(日) 17:40:01 ID:cq55lstZ
$array = array("aa"=>"1234","bb=>"2314","cc"=>"5814","dd"=>"3501");

$arrayに格納された値に含まれる1を削除したいのですが、
以下のコードよりももっと良い書き方ありませんでしょうか?

foreach($array as $k => $v) {
$hairetu[] = str_replace("1", "", $v);
}
587nobodyさん:2007/09/02(日) 17:41:55 ID:???
>>584
> 今更PHP4がデファクトスタンダードになるわけないじゃん。

デファクトスタンダードになりそうな
フレームワークを聞いてるんだろ。

お前は日本語もわからんのかw
588nobodyさん:2007/09/02(日) 17:43:55 ID:???
>>583
CakePHP
589583:2007/09/02(日) 17:47:43 ID:7yTluSfa
>>584
Zend FrameworkのようにPHP5のみじゃなくて
現状でPHP4が使えて今後デファクトスタンダードになりそうなフレームワークということです。
590nobodyさん:2007/09/02(日) 17:49:19 ID:???
改行を全て削除したらファイルサイズが1割くらい減るから
1割くらいは高速化するだろう
591nobodyさん:2007/09/02(日) 17:50:01 ID:???
スカスカのプログラムだなw
592nobodyさん:2007/09/02(日) 17:50:17 ID:7yTluSfa
>>588
ありがとうございます
試してみます
593nobodyさん:2007/09/02(日) 17:51:07 ID:???
>>590
お前は>>570か?w
594nobodyさん:2007/09/02(日) 17:52:23 ID:???
>>590
しねーよw
595nobodyさん:2007/09/02(日) 18:05:50 ID:???
>>586
コールバック関数使うとか参照foreachとか。
596nobodyさん:2007/09/02(日) 18:25:02 ID:???
>>586
それで十分じゃないのか?
597nobodyさん:2007/09/02(日) 18:37:55 ID:SjqAaNKw
内容:
初心者です 参考書を片手に勉強中なんですが
PHP mysqlでチェックボックスを使い フォームでチェックされた名前のも
のだけを取り出したいのですが 上手くいきません
チェックボックス側
<form method="GET" action="./hoge.html" >
<table width="778" border="0" cellpadding="0" cellspacing="1" bgcolor="#999999">
<tr> <td width="70" height="32" valign="top" bgcolor="#FFFFFF" class="unnamed2"><b>名前</b></td>
<td valign="top" width="229" bgcolor="#FFFFFF" class="unnamed2">
   <?php
for ($si = 1; $i <=10; $i++) {
echo <input type=\"checkbox\" name=\"c1[]\" value=\"{$row['id']}\">{$row['id']};
}
?>
表示側
//データーを受け取る
$c1 = @$_POST["c1"];
$sql = "SELECT * FROM hoge";
//データーが選択されているときはWHERE以下を組み立てる
if (count($c1) > 0) {
//分割されたここのキーワードをSQLに反映
$where = "WHERE (id IN (";
for ($i = 0; $i < count($c1); $i++) {
$where .= $c1[$i];
if ($i < count($c1) - 1) {
$where .=","; }
else {
$where .= "))"; } } }
for ($i = 0; $i < count($c1); $i++) {
echo "$c1[$i]"; }
echo "<p>e".$sql.@$where;
598nobodyさん:2007/09/02(日) 18:38:39 ID:SjqAaNKw
↑よろしくお願い致します。
599nobodyさん:2007/09/02(日) 18:44:42 ID:???
何が上手くいかないんだよ
何を教えてほしいんだよ
ひどい質問だ
600nobodyさん:2007/09/02(日) 18:46:15 ID:???
とりあえず、inputのvalueを改ざんされて
" 1 )); delete * from hoge; --"
とか送ってこられたら楽しいことになるぜ。へっへっへと
関係ないことを指摘しておく。
601nobodyさん:2007/09/02(日) 18:47:16 ID:???
@$_POST["c1"];
.@$where;

何言語?
602nobodyさん:2007/09/02(日) 18:49:26 ID:???
>>586
array_map
603602:2007/09/02(日) 18:50:51 ID:???
ちなみにarray_mapはforeachとかより若干遅い。でも便利だから使ってる。
604nobodyさん:2007/09/02(日) 20:20:58 ID:???
>>601
マヌアル嫁
605nobodyさん:2007/09/02(日) 20:57:00 ID:lMwXxY/u
Javaのパッケージみたいな概念はありませんか?

あと、PHPでのファイル・クラスのネーミングルールとか。
606nobodyさん:2007/09/02(日) 22:08:55 ID:???
$a="うんこ";
として、

echo "$a ちんちん";

echo $a." ちんちん";
のどっちが速いっすかね?
607nobodyさん:2007/09/02(日) 22:14:30 ID:???
>>606
かわらん
608nobodyさん:2007/09/02(日) 22:37:36 ID:O0vZytK1
すいません。
http://pc11.2ch.net/test/read.cgi/php/1188731930/
これわかる人いませんか?
ぜんぜん表記されないのですが、かいてもよまれないと
言われたんですが、なんとかしたいんです。
609nobodyさん:2007/09/02(日) 22:52:44 ID:???
>>608
これ読めってのは無理あるわー
zipで固めてどっかのうpろだにでも上げた方がよくね?
610nobodyさん:2007/09/02(日) 23:00:17 ID:???
テンプレートエンジンのsmartyを自鯖(Linux)にセットアップしてみたけど上手くいかないorz
検索するとたくさんヒットしたので試してみたけど上手くいかず
誰かセットアップ方法の解説願います
611nobodyさん:2007/09/02(日) 23:18:10 ID:pKjcWHTr
>>608
なんでろだにあげなかったの?バカなの?
612nobodyさん:2007/09/02(日) 23:38:24 ID:O0vZytK1
http://www.mywave.co.jp/~ike50/chapter5.zip
UPしました。
よろしくお願いします。
613nobodyさん:2007/09/02(日) 23:38:49 ID:???
>>612
めんどいからみないよ
614nobodyさん:2007/09/02(日) 23:40:52 ID:???
>>610
セットアップというか
Smarty.class.phpをincludeする
$smarty = new smarty;
$smarty->template_dir = "./templates/";
$smarty->template_c = "./templates_c/";
みたいに宣言する

./templates/ 内にテンプレートファイルを作成する。
./templates_c/ のパーミッションを707や777にする

PHPファイルで
$smarty->display("template.html");
のようにテンプレートを指定して表示する。
615nobodyさん:2007/09/02(日) 23:40:55 ID:pKjcWHTr
本丸写しかよ
本作ったトコにでも聞け
自分で作れないうちは会社で運用なんてすんな
616nobodyさん:2007/09/02(日) 23:43:46 ID:???
>>612
とりあえずショートタグ「<?」は推奨されないからやめとけ。
最近のPHPのデフォルトじゃ動作しない可能性がある。
正しくは「<?php」と書く。
617nobodyさん:2007/09/02(日) 23:48:36 ID:???
>>612
ちなみにこれ、最初に表示されるページはどれ?
あと ktouroku.php はPHPコードを含んでないようだけど、これも表示されないの?
618nobodyさん:2007/09/03(月) 00:10:05 ID:???
>>616
> とりあえずショートタグ「<?」は推奨されないからやめとけ。

それよく聞くんだけど、この前理由を探したんだけど
よくわからなかった。なんで?

あとショートタグは<?=とは違うんだよね?
こっちは使っていいの? 単純に変数の内容を表示するだけなら
タイプ数が減っていいんだけど。
619nobodyさん:2007/09/03(月) 00:17:29 ID:KucjbbQW
最初はktouroku.phpです。
これは表示されます。
それ以降が表示されません。
<?phpって
<?でいいのかな?
620nobodyさん:2007/09/03(月) 00:17:43 ID:???
>>618
「<?=」もショートタグの1種。これは「<?php echo 」の省略形。

ショートタグはPHPしか使わない環境であればそれほど困らないけど、
XMLなどの他にも「<?***」形式の特殊タグを使うシステムが混在すると
「<?」だけでPHPと認識することはできなくなるので、将来性・拡張性に欠ける。
特に昨今はXMLとの混在環境も増えてきているので推奨されないというわけ。

その辺をきちんと意識して設計できる上位の人間なら好きにすれば、ってとこだが
分かってもいないのにその環境に慣れてしまうのは教育上よろしくないかと。
621nobodyさん:2007/09/03(月) 00:25:41 ID:???
>>619
ktouroku2.phpを呼び出すと何も表示されない、ってこと?
ちなみにURL直打ちでktouroku2.phpを呼び出しても真っ白?
require('./include/init.inc');
の行を
//require('./include/init.inc');
とコメントアウトしてみたらどーなる?

ところで凄い気になるんだが、
<meta http-equiv=content-type content="text/html;charset=euc-jp">
とEUC-JP指定してるようだがソースはSJISで書かれてるよな。
これは本当はどっちにしたいんだ?
622nobodyさん:2007/09/03(月) 00:36:02 ID:KucjbbQW
真っ白です
やってみました。
ktouroku2.phpが表示されました。
でも登録画面のktouroku3.phpはだめでした。
EUCでやりたいです。
このソースの書き方ではだめなの?

623nobodyさん:2007/09/03(月) 00:38:21 ID:???
>>620
あー。やっぱり人間(コンピュータも?)の混乱が理由なのね。
もっと重大な、セキュリティ上の問題があるのかと思っていた。

<?=もやっぱり使っちゃだめなのだろうか?
php以外でこれ使うやつある?

まあ、phpだとわかりにくいが理由なら
その理由には納得するから、大きなプロジェクトでは
<?=も使わないけどね。

ただ、セキュリティ上の問題がないのなら、
個人的な小さなツールやテスト的になら使うけど。
624nobodyさん:2007/09/03(月) 00:39:08 ID:KucjbbQW
ktouroku3.phpもrequireの部分をコメント
アウトしたら表示されました。
どうしたらいいのでしょうか?
625nobodyさん:2007/09/03(月) 00:40:12 ID:???
>>622
つまりini.incの実行で失敗してるわけだ。
こいつの内容は
$con = pg_connect("dbname=touroku");
とDBに接続してるだけなんだが、ちゃんとDBは用意されてるのか?

まずDBのアクセスだけの実験プログラムを作って
テストしてみた方がいい。
このプログラムだと接続失敗時はエラー表示がされるはずだが
それすら出てこないとなるとタイムアウトを起こしてる可能性が高い。
接続先のDBサーバー自体が正常動作してない可能性もありうる。

>EUC
だったらまずEUCのテキストが書けるまともなテキストエディタを用意すれ。
626nobodyさん:2007/09/03(月) 00:42:52 ID:???
>>623
人間は別に混乱しない。コンピュータが混乱するので使えない。
「<?=」は他に無いというか、これも「<?」までの時点でPHPかどうかを判定できないと
PHPに処理を回せないので結局使えない。
セキュリティ的な問題はないと思うので、ちゃんと理解して使う分には問題ないかと。
627nobodyさん:2007/09/03(月) 00:47:21 ID:???
<?=使ったことないけどなんでみんなこれ使うの?
628nobodyさん:2007/09/03(月) 00:50:43 ID:???
楽だから。
余計な単語が混じらずほとんど変数埋め込み気分で使えて見やすいし。
629nobodyさん:2007/09/03(月) 00:51:01 ID:???
>>627
使わない。<?=を使う時点でロジックとデザインを分離されていな糞プログラマーだから。
まぁ、趣味でやるなら別にいいけど。
630nobodyさん:2007/09/03(月) 00:54:50 ID:???
ロジック混在??
<?php if() 〜 ?> とかならともかく、<?=変数?> だけならテンプレのパラメータ埋め込みと一緒だぞ。
それをロジックが分離されてないと思うのは単なる脊髄反射思考だろう。
631nobodyさん:2007/09/03(月) 00:56:55 ID:kOE1ZsUi
PHP初心者です。
サーバーはxamppを使っています。
mysqlを使わずにindex.php , archive.php , post.phpの3つで
フォーム入力、提出(post.php)すると、自動的にfilesにタイトル.txtを作って保存
(index.php)では提出した記事を表示とpost.phpへのリンクと(archive.php)へのリンク。
archive.phpへのリンクはindexの画面で、記事ごとのリンクになっている。
これは可能なんでしょうか?
ついでにphpの簡単なブログのコードがあるサイト知っていたら教えてもらえませんか?
よろしくお願いします。
632nobodyさん:2007/09/03(月) 00:57:24 ID:???
>>630
いや、だから趣味でやるなら別にいいって言ってんだけど。
まぁ、多少心得がある人なら{変数}とやるけどな。
633nobodyさん:2007/09/03(月) 01:02:21 ID:???
>>631
大雑把すぎて何とも言えないけど、多分可能。
634nobodyさん:2007/09/03(月) 01:06:39 ID:KucjbbQW
<?php
$con =pg_connect("dbname=test2");
if(!$con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
で成功と出ているんだけど実際はtest2です。
後どこ見ればいいのでしょうか?
DBもちゃんと作ってあるんですが、
635nobodyさん:2007/09/03(月) 01:08:01 ID:KucjbbQW
したと上が反対です。
636nobodyさん:2007/09/03(月) 01:09:53 ID:???
>>634
tourokuってDBは作ってあるの?
<?php
$con =pg_connect("dbname=touroku");
if(!$con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
を動かすと接続成功って出るの?
637nobodyさん:2007/09/03(月) 01:14:48 ID:KucjbbQW
接続成功って出ます。
後プログラムのinit.incに名前とパスワードを入れたら
ほかのものも一気に表示はされるようになりましたが、
うけわたしてDB登録ができません。
638nobodyさん:2007/09/03(月) 01:17:42 ID:???
>>626
> 「<?=」は他に無いというか、これも「<?」までの時点でPHPかどうかを判定できないと

「<?」までの時点でPHPかどうかを判定する方法なんてあるのかよ?w
639nobodyさん:2007/09/03(月) 01:18:47 ID:KucjbbQW
またktouroku2.phpと
ktouroku3.php
はrequireをコメントアウトしないとでてこない。
ほかはでてきます。
640nobodyさん:2007/09/03(月) 01:19:47 ID:???
>>631
学校の課題ですか?
641nobodyさん:2007/09/03(月) 01:20:35 ID:???
>>637
DBのGRANT設定を間違ってるとかいう落ちじゃないだろうな。

ktouroku3.phpの
<a href=./kensaku.php>戻る</a><br>
下記のとおりに登録しました。<br><br>
の下辺りに
<?php echo pg_last_error($con); ?>
って1行入れたら何かエラーメッセージが出てこないか?
642nobodyさん:2007/09/03(月) 01:23:03 ID:???
>>639
requireをコメントアウトしてちゃDBへの登録は絶対できないだろ…。

ktouroku2.phpの
require('./include/init.inc');
の行を
$con = pg_connect("dbname=touroku");
と差し替えたらどうなる?
643nobodyさん:2007/09/03(月) 01:23:47 ID:???
>>638
だから使えないって書いてるんじゃ?
644nobodyさん:2007/09/03(月) 01:27:15 ID:KucjbbQW
DBのGRANT設定だと思います。
これの意味がわからんくて。
教えてください。
nobodyとかよくわからないんです。
grant allon kaiin_id to nobodyの意味がわかりません。
入れてないのですが.....
これの説明がなかったんです。
これが原因でしょうか?
645nobodyさん:2007/09/03(月) 01:32:17 ID:???
>>643
だからな。<?phpであっても、
「<?」までの時点じゃPHPかどうかは判定できないんだよ。
646nobodyさん:2007/09/03(月) 01:32:40 ID:KucjbbQW
エラーはでてきませんでした。
なんにも表示されなかった。
647nobodyさん:2007/09/03(月) 01:33:19 ID:KucjbbQW
学校の宿題ではないです。
648nobodyさん:2007/09/03(月) 01:38:16 ID:???
>>644
PHPの前にDBの勉強してくるか、
PHPからDBを使うのをやめるかどっちかにしろ。
649nobodyさん:2007/09/03(月) 01:48:59 ID:KucjbbQW
grantの設定をpublicにしました。
でも表示されません。
なんででしょうか?
650nobodyさん:2007/09/03(月) 01:57:20 ID:???
<?=変数?>は普通にテンプレで使ってるなぁ。
まあ自分しか触らない奴だからいいか。
651nobodyさん:2007/09/03(月) 01:58:50 ID:???
>>649
<html>
<?php
$con = pg_connect("dbname=touroku");
var_dump($con);
$sql = "insert into kaiin_table (kaiin_id,company,name,address,tel,email,password) values('1', '2', '3', '4', '5', '6', '7')";
$res = pg_query($con, $sql);
var_dump($res);
echo pg_last_error($con);
$sql = "select * from kaiin_table";
$res = pg_query($con, $sql);
echo pg_num_rows($res);
?>

これ実行したらどんな内容が表示される?(pg_connectのとこはパスとか直せよ)
652nobodyさん:2007/09/03(月) 02:15:13 ID:KucjbbQW
bool(false) bool(false)
です。
653nobodyさん:2007/09/03(月) 02:24:44 ID:???
>>652
DBの接続からして失敗してる。
<?php
$con =pg_connect("dbname=touroku");
if($con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
これで接続成功って出るんじゃなかったのか?
あーもー、最初からやり直し!

<html>
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$con = pg_connect("dbname=touroku");
var_dump($con);
echo pg_last_error($con);
?>
これで何かエラーメッセージは出てこないか?
654nobodyさん:2007/09/03(月) 02:33:33 ID:KucjbbQW
bool(false) です。
655nobodyさん:2007/09/03(月) 02:35:15 ID:???
bool(false) bool(false) bool(false)です
656nobodyさん:2007/09/03(月) 02:59:45 ID:???
よく馬鹿に付き合って時間無駄に消費できるな。
657nobodyさん:2007/09/03(月) 03:04:33 ID:???
>>654
pg_connectのパラメータ内容を改めて再考すれ。
っつーか、コマンドラインのクライアントからは接続できてんの?これ。
658nobodyさん:2007/09/03(月) 03:17:51 ID:KucjbbQW
だめだ。わかんない。どこが理由なんだろう....
接続できてない。
でもDB
<?php
$con =pg_connect("dbname=touroku");
if($con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
はOKと出る。
なぜだ?
659nobodyさん:2007/09/03(月) 03:20:58 ID:???
まさかとは思うけど !$con みたいに"!"付いてないよね?if文のところ。
660nobodyさん:2007/09/03(月) 03:23:32 ID:???
if文の方はどっか書き間違えてる可能性が高いから
var_dumpの結果の方を信用するのが吉。
661nobodyさん:2007/09/03(月) 03:30:18 ID:KucjbbQW
<?php
$con =pg_connect("dbname=touroku");
if(!$con){
print "DB失敗"
}else{
print "DB成功"
}
?>
を動かすと接続成功って出る
662nobodyさん:2007/09/03(月) 03:47:03 ID:Fj5tywcD
セッションを発行したばあい、サーバーのテンポラリディレクトリにセッションデータが作成されますが、
これは放っておいても、有効期限が過ぎれば勝手に消えるものなのでしょうか?
663nobodyさん:2007/09/03(月) 03:50:44 ID:???
>>662
消える。
664nobodyさん:2007/09/03(月) 04:42:03 ID:KucjbbQW
さっき別のテーブルをつくり入れようとしたんだが
エラーになった。
DBの根本的にだめなのかもしれないな。
でもまずDBを作る前にモジコードをEUCにして
テーブルを作るinsertで入力していくのだが
invalid byte sequence for encoding "EUC_JP": 0xe988
というエラーが出ます。
665nobodyさん:2007/09/03(月) 04:53:17 ID:???
>>664
\xe9\x88 == '驤' // SJIS

DBの根本的にだめなのかもしれないことより
自分が何してるか根本的にわかってないことのだめなのかもしれないね。

// 何語なんだ?
666nobodyさん:2007/09/03(月) 05:37:34 ID:KucjbbQW
僕のfedoracoreってUTF8がデフオルト
なんだが、それをeucに直してDBを入れていく様式
にしている。
根本的に間違っているのか、どう勉強していけばいいのだろうか?
eucとshiftjisの区別がわからないんだ。
667nobodyさん:2007/09/03(月) 05:51:43 ID:KucjbbQW
なんかここ嫁。とか
こうするんだよ。とかあれぜひお願いします。
たぶん全部わかっていないと思うんですが、
ぜひご教授をお願いします。
668nobodyさん:2007/09/03(月) 06:02:19 ID:???
>>667
>>1嫁。
669nobodyさん:2007/09/03(月) 06:13:11 ID:???
Unix板にでもいってこれば?
だいぶそれてるし
670nobodyさん:2007/09/03(月) 06:26:48 ID:KucjbbQW
1を読んでみようと思います。
今から寝ようとおもうので、ここが違うよとか
あれば至急直すので、わかった人コメントください。
671nobodyさん:2007/09/03(月) 06:45:45 ID:KucjbbQW
後ほんみても本はeuc-jpがデフォルトなんだが、
俺のはUTF8でうまく入力できないんだが....
672nobodyさん:2007/09/03(月) 07:05:20 ID:KucjbbQW
データベースの言語がeuc-jpが最初から書いてあって
俺のはUTF8なんだが、
それを無理やり変換してEUCで入力しようとすると、
invalid byte sequence for encoding "EUC_JP"
のエラーがでます。
673nobodyさん:2007/09/03(月) 07:23:58 ID:KucjbbQW
さきほど書き忘れましたが、深夜遅くまで付き合ってくれた
方ありがとうございます。
また、意見くれた方もなんとかしたい一身でお礼の言葉
も忘れてしまいました。
立て方等ミスがありましたが、もう少しだけ教えてください。
よろしくお願いします。
674nobodyさん:2007/09/03(月) 11:44:43 ID:???
php講座のサイトや本を見ると

環境変数を使うとき
$ua = $_SERVER['HTTP_USER_AGENT'];
if(!preg_match('/hoge/',$ua))

というように一度$uaなどに代入して使っている場合が多いですが
そのまま

if(!preg_match('/hoge/',$_SERVER['HTTP_USER_AGENT']))

としない理由があるのでしょうか?
675nobodyさん:2007/09/03(月) 11:46:04 ID:ipYR2CKm
==とか!=とか<とか、==←こういうのを総称して呼ぶ名前って何?
676nobodyさん:2007/09/03(月) 11:50:07 ID:???
>>674
多分メンテナンスとかのためじゃないかな。
たとえば、$uaに任意の値を入れてテストしたいときとか、
手間が多少違う

これはスタイルの問題だから、気にくわなければ従わなければいいだけ。
677nobodyさん:2007/09/03(月) 11:52:17 ID:???
>>674
分かりやすい変数名を
タイピングの減少
くらいか?
特にこうしなければならないってわけじゃないがやると少し幸せになれるかもしれないおまじない

>>675
比較演算子
678nobodyさん:2007/09/03(月) 12:59:28 ID:ipYR2CKm
>>677
>比較演算子
これって英語にすると?
679nobodyさん:2007/09/03(月) 13:00:54 ID:ipYR2CKm
operatorでいいのかな?ありがとー
680nobodyさん:2007/09/03(月) 14:24:38 ID:???
>>678
PHPマニュアルで比較演算子のページを英語にしたら
Comparison Operators
だったよ
PHP5.2.4が出てた
681nobodyさん:2007/09/03(月) 14:36:42 ID:???
phpの掲示板の中にアクセス解析(忍者TOOL)を入れたいんですけど
javascriptを入れるとエラーになります。どうすればいいですか
682681:2007/09/03(月) 14:53:02 ID:???
ごめんなさい、自己解決しました。
683nobodyさん:2007/09/03(月) 14:55:14 ID:???
>>674
環境変数などは繰り返し使う場合一度ローカル変数に落としたほうが
動作が早くなる
微々たる物だが・・・
684nobodyさん:2007/09/03(月) 14:57:30 ID:???
>>681
もちつけ
PHPのエラーなのかjavascriptのエラーなのか
その書き方だとわからん
685681:2007/09/03(月) 15:00:19 ID:???
>>684
もちろんPHPのエラーでした
686nobodyさん:2007/09/03(月) 15:07:30 ID:9rbjiygj
PHP+Sendmailでメールの自動返信プログラムを組みたいのですが、
メールを送り、特定のアドレスに送られたメールをhoge.phpに渡し処理させるというのを
してみたいのですが、Sendmailの設定をどのようにすれば良いのでしょうか?

Sendmailは「/usr/sbin/sendmail」のパスで通っていて使えるようです。
他に何か調べるようなことはありますでしょうか。
687686:2007/09/03(月) 15:10:03 ID:9rbjiygj
ちなみにメールを受けたときに実行したいので、
.forwardが使えないといけないと聞いたのですが、これが使えるかどうか調べる方法はありますか?
688nobodyさん:2007/09/03(月) 15:27:27 ID:5z4DsU1G
mbを使えないサーバで、mb_detect_encoding相当の機能を実装したいんですが、
何か良いライブラリのようなものはありますでしょうか?
同梱したいので、ライセンスフリーのもの(大体そうなのかな?)がいいんですが・・・。
689nobodyさん:2007/09/03(月) 16:09:28 ID:???
>>845
エラー文にはなんて書いてあるの?
おそらくそれで全て解決するんでない?

>>687
メール受信時の転送先をコマンド実行のPHP書けばOK
.forwardは鯖缶にきくのが一番早い
690nobodyさん:2007/09/03(月) 16:11:26 ID:9rbjiygj
>>689
使い方は.htaccessと同じような感じでいいのですね
有難うございます
691nobodyさん:2007/09/03(月) 16:18:26 ID:???
>>688
jcode.php
692nobodyさん:2007/09/03(月) 16:25:27 ID:???
質問です。
PHPのページをブラウザ(IE6/火狐)で開くときに、まれに30秒〜60秒待たされます。
サーバの設定が悪いのでしょうか。ご存知の方、お願いします。
-環境-
PHP 5.2.3 ソースからコンパイル
Apache 2.0.54
Oracle xe client 10.2.0.1
OS Debian sarge
設定 ほぼ初期値
693nobodyさん:2007/09/03(月) 16:30:17 ID:???
エスパーおまちしてます
694nobodyさん:2007/09/03(月) 16:31:17 ID:3A8ZdpHH
文字列の入った変数を外部のサーバに送信したいんですが、どうすればできますかね?
695nobodyさん:2007/09/03(月) 16:32:15 ID:???
>>688
ttp://sourceforge.jp/projects/mbemulator/
こいつはGPLなのでライセンスフリーじゃないけど。
696nobodyさん:2007/09/03(月) 16:54:06 ID:???
ネットで見つけたファイルロックの例で分からない部分があります

while (!@mkdir(DE_LOCKFILE))

mkdirが成功するまでループするという意味らしいことは分かるのですが
@は何ですか。どういう意味があるんですか?
php @ で検索しても要領を得ないので教えてください
697nobodyさん:2007/09/03(月) 17:02:39 ID:???
698696:2007/09/03(月) 17:03:28 ID:???
自己解決しました。
マニュアルに書いてました
699nobodyさん:2007/09/03(月) 17:04:41 ID:???
>>697
どうもありがとうございます
700nobodyさん:2007/09/03(月) 17:13:26 ID:???
mkdirが成功するまでループする処理とかってどんだけ・・・
701nobodyさん:2007/09/03(月) 17:27:07 ID:???
権限がなければ実質無限ループかあ
702nobodyさん:2007/09/03(月) 17:43:59 ID:???
@はPHPで最もコストの高い文字
703nobodyさん:2007/09/03(月) 17:52:32 ID:???
ftp関数と
HTTP_Download あたりで
FTPサーバのデータを
直接ブラウザからダウンロードできるようにできないでしょうか。

現在は、
ftp_get で一旦サーバにダウンロードしてから
それをHTTP_Download で指定してダウンロードしてます。
ファイルを一旦サーバに落として、
ではなく、あくまでPHPはデータを
左(FTPサーバ)から右(ブラウザ)へ受け流す、
という感じでいきたいのです。
704nobodyさん:2007/09/03(月) 17:54:03 ID:???
705nobodyさん:2007/09/03(月) 17:54:51 ID:???
HTTP_Download使ってるくせにFTPからダウンロードしたいってどんだけ〜
706nobodyさん:2007/09/03(月) 17:55:43 ID:7Ly2K7mT
ftp関数と
HTTP_Download あたりで
FTPサーバのデータを
直接ブラウザからダウンロードできるようにできないでしょうか。

現在は、
ftp_get で一旦サーバにダウンロードしてから
それをHTTP_Download で指定してダウンロードしてます。
ファイルを一旦サーバに落として、
ではなく、あくまでPHPはデータを
左(FTPサーバ)から右(ブラウザ)へ受け流す、
という感じでいきたいのです。
707nobodyさん:2007/09/03(月) 18:05:50 ID:kOE1ZsUi
初心者です。
タイトルと文の2つのフォームがあって、提出ボタンを押すと
自動的に毎回タイトル.txtを作るにはどう書いたらいいんでしょうか?
708nobodyさん:2007/09/03(月) 18:10:02 ID:???
>>707
とりあえずどの程度まで出来ているのか書け

$name = "自動的に毎回タイトル.txt";

fopen($name, "w");
709nobodyさん:2007/09/03(月) 18:10:48 ID:???
fwrite
710nobodyさん:2007/09/03(月) 18:20:02 ID:9rbjiygj
Smartyをインストールしたのですが、

#Smartyクラス用の定義
$smarty->template_dir = "テンプレートフォルダ";
$smarty->compile_dir = "コンパイルフォルダ";
$smarty->cache_dir = "キャッシュフォルダ";

と書いてあるのですが、各フォルダが見つかりません
自分で作成するものなのでしょうか?
711nobodyさん:2007/09/03(月) 18:22:15 ID:???
>>710
そうだよ。つーか実行して試すなり、解説サイト見たほうが早いだろ。
712nobodyさん:2007/09/03(月) 18:27:06 ID:kOE1ZsUi
>>708
今作っているのは、post.phpで、上の2つのフォームがあって
提出すると、タイトル(例:今日の晩御飯)に.txtをつけたファイルが
自動的にサーバーのfilesの中に作られる。
そして、次に作りたいのがメイン画面(index.php)で。それぞれのファイルへのリンクが表示され、
クリックするとその記事のみが表示される(archive.php)。
メイン画面にはその他にも最新の記事10個が上から順番に表示され、その下にはpost.phpへのリンクがある。

post.phpは最初からファイルを作っておけばそこに追加できるんですが、新しいファイルを記事ごとに
作る方法がわかりません。
そして、index.phpはデザインはできるんですが、postへのリンクと、archive.phpへのリンクの作り方が今いち。
結局ほとんどわかってないんですが、海外なもので日本語の本を探せず、困ってます。
713nobodyさん:2007/09/03(月) 18:28:58 ID:???
>>712
意味がわからん
フォーム入力してpost.phpにデータを送信するのはできるの?
714nobodyさん:2007/09/03(月) 18:30:27 ID:???
>>706
FTP関数じゃムリじゃないかな。
curlならいける。
HTTP_Download を使うのもAPI的にムリっぽい。
でも中身のファイルを読む部分をオーバーライドすりゃいいだけだね。

ていうか、単純にHTMLリンクをつかえばいいと思うが。
715nobodyさん:2007/09/03(月) 18:38:26 ID:???
>>713
post.phpにフォームがあるんです。
そしてフォーム入力して送信すると、2つあるフォームのうち
タイトルがファイル名の.txtの前に自動的に行くようにしたいんです。
しかも、毎回送信するたびにタイトル.txtは作られます。
716nobodyさん:2007/09/03(月) 18:40:28 ID:???
お前が勝手に作ったファイル名をくだくだ言われても分わかんねーよ。
もっと一般化して質問しろ。
717nobodyさん:2007/09/03(月) 18:41:26 ID:???
>>715
とりあえず質問している間は常にID出しておけ

post.phpからどこにフォームのデータを送信するの?
タイトルがファイル名意外の.txtは作れるの?
ってか、ファイルを作る方法知ってるなら名前自分で決めてるの知ってるよな
718nobodyさん:2007/09/03(月) 18:42:47 ID:EPVlEXdm
PHP5 + firebird2 on Apache2(win)

ibase_fetch_object で BLOB を含む SQL を実行すると、

Warning: ibase_fetch_object() [function.ibase-fetch-object]: conversion error from string "BLOB" in hogehoge.php on line 1183

と言われて失敗する。
マジ助けてくれ・・・

ちなみにSQLは単純なSELECT。
719nobodyさん:2007/09/03(月) 18:44:25 ID:???
>>718
「予約語」でググれ
720nobodyさん:2007/09/03(月) 18:46:54 ID:???
>>716
タイトルフォーム
本文フォームがあって
データ送信はできるんですが、タイトルを使ったファイルの作り方がわからないんです。
721718:2007/09/03(月) 18:52:08 ID:EPVlEXdm
>>719
即レスthx!!

どこで予約語使ってるのかまったく不明・・・

SELECT IDXTEXT FROM HOGETABLE WHERE UPPER(IDXTEXT) LIKE UPPER('%hoge%')

上の IDXTEXT が BLOB(string) なんだけど、もしかして LIKE だめ?
722nobodyさん:2007/09/03(月) 18:53:34 ID:???
723nobodyさん:2007/09/03(月) 18:58:34 ID:???
724718:2007/09/03(月) 19:01:38 ID:EPVlEXdm
>>722
thx!!

ただ・・・俺は本気で頭が悪いようだ。
何が問題なのかまったくわからん。
IDXTEXT は問題ないみたいだし、LIKE も単純な演算子だし UPPER は関数だし・・・

頼む答えを教えてくれ><
725nobodyさん:2007/09/03(月) 19:05:01 ID:KucjbbQW
608です。
http://pc11.2ch.net/test/read.cgi/php/1188731930/
を削除依頼出しておきました。
もっと勉強をしてわからないところを
きちんとわかってから質問できるようにしたいと思います。
昨日、今日とすいませんでした。
726nobodyさん:2007/09/03(月) 19:10:21 ID:ZgE8wfr0
ファイルロックってどちらにしてます?

A,

while(file_exists($lf)){
sleep(1);
}
mkdir($lf,0755);

B,

while(mkdir($lf,0755) === false){
sleep(1);
}
727718:2007/09/03(月) 19:11:41 ID:???
自己解決しますた。

BLOB に対し UPPER(BLOB) はサポートされてなかった・・・
INSERT 時に UPPER することにした。

スレ汚しスマソ。
728nobodyさん:2007/09/03(月) 19:20:10 ID:???
>>726
C.
flock
729nobodyさん:2007/09/03(月) 19:34:50 ID:LZnRmggr
>>728
それだとwで開いた時にデータが空になりますし
r+で開くとゴミに注意しないといけない。
730nobodyさん:2007/09/03(月) 20:11:16 ID:???
( ゚д゚ )
731nobodyさん:2007/09/03(月) 20:13:17 ID:???
>>729
( ゚д゚ )
732nobodyさん:2007/09/03(月) 20:17:11 ID:???
>>729
なんのためにflock関数があると・・・
733nobodyさん:2007/09/03(月) 20:18:42 ID:M+H83k8j
>>726
mkdirは時間がかかるから使えないだろ
734nobodyさん:2007/09/03(月) 20:23:24 ID:LZnRmggr
あれ、flockって窓とかマルチスレッドだと使い物にならなかった記憶があるけど
今はそんな事ないのかな?
735nobodyさん:2007/09/03(月) 20:34:28 ID:???
>>734
flock()により、(ほとんどのUNIXやWindowsさえ含む) ほとんど全てのプラットフォームで使用可能な簡易な読み手/書き手モデ ルが実現されます。
736nobodyさん:2007/09/03(月) 20:58:50 ID:???
いろいろ見てきました。API以外は関係ないみたいですね。

基本的には読み書きに関わらずfopenする度にflock($fp, LOCK_EX); とすれば良いのかな。
掲示板などの処理だとそうなりますよね?。
737nobodyさん:2007/09/03(月) 21:39:44 ID:???
名前付きのミューテックス使え
738nobodyさん:2007/09/04(火) 00:40:49 ID:???
>>614
返信が遅くなって申し訳ない&レスありがとう
こちらの書き方に問題があったようで、実はそのレベルには達してなかったりしますorz
ただ今後必要になると思うので、参考にさせてもらいます。

セットアップと言うかインストール自体出来てなかったのですが、↓を参考に一応インストールだけは出来たようです。
ttp://www.zend.co.jp/tech/index.php?PHP%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3%2FSmarty%2F002%20%C6%B3%C6%FE

また分からない事があったらご指導ください。
739nobodyさん:2007/09/04(火) 01:28:40 ID:???
うぷろだを作成してるのですが、
ダウンロード機能をつけるのに一つ懸念があります。
ダウンロードするファイルに対するエスケープ?処理のような
ものを行なわなくてもいいんでしょうか。
ダウンロード時にXSSのように働くデータをアップされて、
それをダウンロードすると・・・・
みたいな心配はしなくてもいいんでしょうか。

ほかのうpろだのソースを見た限り、特にこの点を心配している
様子がないのですが。
740nobodyさん:2007/09/04(火) 01:42:34 ID:???
> ほかのうpろだのソースを見た限り、特にこの点を心配している
> 様子がないのですが。
どうせ知らないだけ。

http://internet.watch.impress.co.jp/cda/news/2004/08/03/4124.html
http://slashdot.jp/security/05/05/19/088246.shtml
741nobodyさん:2007/09/04(火) 02:10:38 ID:bPRYri3Q
phproxy を、ブラウザからではなく、コマンドラインからアクセス出来るようにする事はできますでしょうか?

環境は、php 5とMAC OS X SERVER 10.3です。

宜しくお願いいたします。
742nobodyさん:2007/09/04(火) 02:30:42 ID:???
Macだからだめだなw
743nobodyさん:2007/09/04(火) 02:35:25 ID:bPRYri3Q
>>742

ご回答ありがとうございます。MACからじゃ駄目ですかorz
744nobodyさん:2007/09/04(火) 04:06:26 ID:9L3FCPFc
PHPってPerlと違ってflockしなくてもPHPが保証してくれるんじゃなかったっけ?
最近はデータをDBに格納するのが当たり前になってきたから、それで悩まないけど。
745nobodyさん:2007/09/04(火) 04:21:41 ID:???
>>744
SQLiteか何かを使ってる場合と混同してない??
746nobodyさん:2007/09/04(火) 04:24:50 ID:???
PDO::prepare()の説明に、

>プリペアドステートメントに渡すパラメータは、引用符で括る必要は ありません。
>それはドライバが自動的に行います。 アプリケーションで明示的にプリペアドステートメントを使用するように
>すれば、SQL インジェクションは決して発生しません

とあるんですけど、mysql_real_escape_stringをしなくても問題ナッシング。
つう解釈でokなんですか?
747nobodyさん:2007/09/04(火) 05:12:23 ID:E1xjDifv
---------------------
if($esse == 1) {
$flag = 0;
$length = count($eles) - 1;
foreach($_POST as $key=>$var) {
$key = strtr($key, $string_from, $string_to);
if($var == "eweb_submit") ;
else {
for($i=0; $i<=$length; $i++) {
if($key == $eles[$i] && empty($var)) {
$errm .= "<FONT color=#ff0000>「".$key."」は必須入力項目です。</FONT><BR>\n";
$flag = 1;
}
}
}
}
---------------------
フリーのメールフォームのソースなのですが、
ここの中の
if($var == "eweb_submit") ;
else {
ってどうゆう意味でしょうか・・・
$varがeweb_submitならその下のelseの中を実行する・・・ってことでしょうか?
748nobodyさん:2007/09/04(火) 05:36:20 ID:???
>>747
逆。$varがeweb_submitじゃないときにその下のelseの内容を実行する。
if($var != "eweb_submit"){
と同義。
749nobodyさん:2007/09/04(火) 09:21:07 ID:???
PHPってperlのmy関数みたいなのってないの?
750nobodyさん:2007/09/04(火) 09:24:06 ID:???
>>749
普通に書いていればmyみたいなもの
751nobodyさん:2007/09/04(火) 09:34:16 ID:???
なるへそ。グローバルのやつだけ明示的にすればいいわけね。
752nobodyさん:2007/09/04(火) 10:14:43 ID:???
昨日NHK特集で総務の仕事を中国では時間換算(人件費・経費込み込み)で650円でやるらしいが、
日本じゃ時間換算で5000円も掛かるらしい。

phpを仕事でやっている奴は、もう駄目だなぁ。
総務の非定型な仕事に比べて、日本語ができなくて誰でも手軽にできるphpじゃ、中国人なら500円位でやりそうだ。
753nobodyさん:2007/09/04(火) 10:16:59 ID:???
中国人が売り込みに必死だなw
754nobodyさん:2007/09/04(火) 10:21:30 ID:???
中国人PGって多いのかな。意外に今まで聞いたことなかったけど。
755675:2007/09/04(火) 10:22:38 ID:9L3FCPFc
昨日、比較演算子について聞いたもんです。その節はどうも。
今日は新しいクエスチョンについて教えて下さい。

if( $a and $b) continue;

↑このandですが(orの場合もあり)、and や or は総称して何と呼べばいいんでしょうか?
英語での呼び方もついでにお願いします。
756675:2007/09/04(火) 10:25:10 ID:9L3FCPFc
そういえば、以前、あるプロジェクトの発注を中国にしたことがあります。
でも日本のベンダーが間に入っていたので、発注額としては普通に安いくらいだった。
間に入ったベンダーが儲かってるんだろうなぁ。
757nobodyさん:2007/09/04(火) 10:29:05 ID:???
758nobodyさん:2007/09/04(火) 10:32:42 ID:???
>>755
これからずっと質問していくつもりか
前回の質問でヒント出したんだからマニュアル見るとか検索するとかしましょうよ
759nobodyさん:2007/09/04(火) 10:33:57 ID:???
数年前からoffshore開発は言われ続けているけど、
業界全体として未だにメジャーにはなっていない。
昨今の技術者不足で単金が下がる所か上がっているしw
760nobodyさん:2007/09/04(火) 10:39:41 ID:???
中国人は金儲けなら良い意味でも悪い意味でもなんでもする人間だよ。
日本では犯罪や、日本人が嫌うようなやり方で金儲けてる輩が目立つけど、
あれだけ人口がいれば多種多様なわけで、真剣に頑張ってるやつもいる。
ハングリー精神じゃないけどね。
そういうわけで学校すらいけなかったなんていう貧困層でも、
ちゃんと教えれば真剣にやって、そこそこ使えるようになるのが中国人。
これは貧困層の話だけど、中級層↑では学術機関で学んだハッカーもたくさんいる。
日本人相手にウイルスばら撒いたり、巨大な著作権違反SNSみたいのを開設したりするのは、
わりとこういう階級の人間。
761675:2007/09/04(火) 10:40:03 ID:9L3FCPFc
おーマニュアルみてなかったよーサンキュ−
762nobodyさん:2007/09/04(火) 10:41:22 ID:???
つまり>>1の1行目すら読んでいなかったということか
おとといきやがれ
763nobodyさん:2007/09/04(火) 12:40:03 ID:???
>>761
少しは反省しようよ。
764nobodyさん:2007/09/04(火) 12:48:17 ID:???
>>739
うpされたデータをあくまでも意味づけのないバイナリデータとして
扱ってる限り問題は特に問題はないよ。ただ勝手に意味があるものとして
処理してしまうブラウザとかがあるが。
765nobodyさん:2007/09/04(火) 13:47:51 ID:kR6gSNsI
ftp_putでサイズに上限ってありますか?
10Gを超えるファイルを実行するとfalseを返して終了してしまいます。
300M程度のファイルを実行するとうまく行ってるのですが・・。
766nobodyさん:2007/09/04(火) 14:42:53 ID:t7FQpoBy
forwardの質問はどこですればいいですか?
767nobodyさん:2007/09/04(火) 15:33:38 ID:???
>>726
安全なmkdir

アクセスが以上に多くなければflock
768nobodyさん:2007/09/04(火) 15:35:48 ID:???
>>739
昨日のftpとhttp_downloadの質問したやつか
idだしましょうね
769nobodyさん:2007/09/04(火) 15:51:51 ID:???
>>766
MTAのフォワードの設定と仮定すると、
Unix板のくだ質か、該当のMTAスレじゃないかな。
770nobodyさん:2007/09/04(火) 15:55:05 ID:t7FQpoBy
>>769
サンクス
いってまいります
771nobodyさん:2007/09/04(火) 16:22:15 ID:t7FQpoBy
Unix板、この板より人少ないのかな・・・
772nobodyさん:2007/09/04(火) 16:29:07 ID:???
少ないよ 笑
773nobodyさん:2007/09/04(火) 16:30:28 ID:t7FQpoBy
そか、気長に回答待つか・・・
それまでに自己解決できれば理想なんだが・・・
774nobodyさん:2007/09/04(火) 17:46:28 ID:???
windowでphpを始めて
ブラウザで動作確認をしているのですが
エラーメッセージは何処で確認できるのでしょうか
上手く動いていなくても空のHTMLのページが表示されるだけで
何が悪いのか分からないのですが
775nobodyさん:2007/09/04(火) 17:56:54 ID:???
>>774
とりあえず、サーバーのエラーログを見てみようとか思いませんか?
776nobodyさん:2007/09/04(火) 17:57:00 ID:jHnRn6Rz
sleep 関数 についてですが、

hoge.htmlに以下を記述
$i =0;
while($i < 500){
sleep(10);
$i++;
}

とした場合 hoge.html を 10秒ごとに 500回アクセスするのと、サーバーへの
負荷は変わらないのでしょうか。
777nobodyさん:2007/09/04(火) 18:08:35 ID:???
>>776
何がやりたいかよくわかりませんがたぶん10秒リロードが必要なのでしょう。
そう仮定するとsleepは負荷以前に目的に合わないはずです。
778nobodyさん:2007/09/04(火) 18:08:56 ID:???
>>775
サーバーのエラーログは何処にありますか
779nobodyさん:2007/09/04(火) 18:45:16 ID:EHN55NHE
phpのsystem()関数について教えて下さい。

やりたいことは、
・ブラウザは web serverを稼働させる端末でのみ動作させる を条件で、
 動作中のブラウザ(自身)を終了させたいのですが。

 ボタンクリックで system( "ABC" ); を起動します。
 コマンドABCは ブラウザのpid を調べてkillする Cで記述したプログラムです。

コマンド自体は実行されるのですがブラウザが死にません。
コンソールから ABC を実行するとkill出来ます。
実行ユーザーは同じです。

PHP-4.3.9

よろしくお願いします。
780nobodyさん:2007/09/04(火) 18:48:40 ID:5f+cO2zZ
あるpearのクラス(B)を別のクラス内(A)で継承して使用したいのですが、
Aクラスの中で使用した変数をBクラスへ渡す方法が分かりません。

PHP4 / linux です。
どなたかヘルプミー
781nobodyさん:2007/09/04(火) 18:58:34 ID:???
>>774
htmlじゃないんだからデバッガーつきのIDEで開発して下さい
782nobodyさん:2007/09/04(火) 19:48:20 ID:???
>>774
php.iniの
error_reporting = E_ALL
にすれば出るはず
783nobodyさん:2007/09/04(火) 20:46:49 ID:???
>>780
AでBを継承したのにAの変数をBに渡すってどういうこっちゃ。
「A内で」とか書いてるのを見るとまぁ継承じゃないんだろうが。
784nobodyさん:2007/09/05(水) 00:50:24 ID:MdOFDt2P
16進数文字列(ffe1aa8033…)をバイナリ文字列にする
いい方法を教えて下さい
785nobodyさん:2007/09/05(水) 00:56:10 ID:???
>>782
display_errors=ON
からじゃね?
786nobodyさん:2007/09/05(水) 01:59:28 ID:???
>>779
>>1

勝手に推察するが、WinでApacheのNTサービスが相手なら、
サービスじゃなくすか、コンピュータの管理のサービスで、
「デスクトップとの対話をサービスに許可」してやってみれ
787nobodyさん:2007/09/05(水) 02:00:00 ID:???
>>784
pack('H*','ffe1aa8033')
788nobodyさん:2007/09/05(水) 02:07:30 ID:???
>>776
sleep中は負荷がないとでもいいたいのかね、きみ
789nobodyさん:2007/09/05(水) 02:09:06 ID:???
>>787
こりゃいいですね
ありがとうございました
790nobodyさん:2007/09/05(水) 02:14:37 ID:???
>>789
感謝しろよ
791nobodyさん:2007/09/05(水) 02:19:27 ID:???
なんかずいぶん上から目線なやつが沸いてますね^^;;;;;;;
792nobodyさん:2007/09/05(水) 02:23:03 ID:???
配列の値は何でも入りますが
キーにも何入れてもいいのでしょうか?
たとえばリソースやオブジェクト等を入れても問題ないですか?
793nobodyさん:2007/09/05(水) 02:41:40 ID:???
>>792
ダメ。整数か文字列。

#マニュアルより
配列またはオブジェクトをキーとして使用することはできません。 これを行なうと、warning: Illegal offset type を発生します。
794nobodyさん:2007/09/05(水) 02:48:10 ID:???
>>793
そんな表層的な回答じゃなくて、もっと本質を突く回答をしろよ。
795nobodyさん:2007/09/05(水) 02:56:19 ID:QMlng57L
ディレクリー内のファイル数を取得する関数はありますか?

自作はできたのですができれば効率が悪すぎて実用的ではありません。
$dir = dir('hoge');
$cnt = 0;
while($file = $dir->read()){
 if($file!='.'||$file!='..') $cnt++;
}
echo $cnt;
796nobodyさん:2007/09/05(水) 03:16:21 ID:???
count(glob("hoge/*"));
797nobodyさん:2007/09/05(水) 04:06:24 ID:???
ひさしぶりに公式見に行ったら5.2.4でてたのか
バグ修正だけだね
798nobodyさん:2007/09/05(水) 04:09:32 ID:???
来年はPHP4のバージョンアップがなくなるから
4つかってるひとはいまのうちに5に移行したほうがよさげね。
799nobodyさん:2007/09/05(水) 05:45:15 ID:???
バージョンアップしなければいいだけじゃね
800nobodyさん:2007/09/05(水) 06:44:55 ID:???
それより6の正式リリースはまだか
801nobodyさん:2007/09/05(水) 06:52:30 ID:???
PHP3使ってる俺には関係ない話
お前らも悟ればおk
802nobodyさん:2007/09/05(水) 09:46:04 ID:HTNqPBp7
sage
803nobodyさん:2007/09/05(水) 09:48:40 ID:HTNqPBp7
>>781
phpごときにIDEなんて必要?
で、PHPのIDEってDWのこと?Eclipceのこと?その他?
804nobodyさん:2007/09/05(水) 10:04:48 ID:???
ミスをなくすためにもIDEを使うのは至極当然
DWはPHPのIDEとしては機能的に弱い
俺はEclipse使ってるが他者は知らない
専スレがあるからそれみてどれ使うか決めればいい
http://pc11.2ch.net/test/read.cgi/php/1154082822/
805nobodyさん:2007/09/05(水) 10:06:07 ID:???
てか、何処でエラーが出ているのかわからんような奴に手書きができるわけないだろw
806nobodyさん:2007/09/05(水) 11:01:56 ID:HV9qeu+U
データをダウンロードさせて、
完了した時点で、削除、という処理をしたいのですが、
どうもうまくいきません。
データ自体が正常にダウンロードできておらず、
例えば、画像だと1/10程度が表示され、残りが壊れているような
感じの画像としてダウンロードされます。容量も本来の
10分の1程度になります。

なんとなくダウンロードしきる前に削除しちゃってる気がします。

クライアント側でデータのダウンロード・取得が完了、
というのをサーバ側で判断したりすることは可能なのでしょうか。

ちなみに8kb以下程度なら正常にダウンロード・削除できます。

または別解決方法がありましたらおながいします
807nobodyさん:2007/09/05(水) 11:45:36 ID:HTNqPBp7
>>804
Eclipceはiアプリの開発で使ってたから、PHPでも使えると聞いて、早速
Eclipceでやってみようと思ったけど、設定が多すぎてその時点で嫌になった。
Perlで苦労した俺からしたら、PHPなんて楽チン過ぎて、これ以上なにを求める?!
って感じなんですが。
808nobodyさん:2007/09/05(水) 11:46:26 ID:???
ファイルのアップロードでmove_uploaded_fileではなくcopyでファイルを取ると
環境によっては取れない事があるんだっけ?
809nobodyさん:2007/09/05(水) 12:12:04 ID:???
>>806
ダウンロードさせて、っていうことは、
ファイルシステム上に直接ファイルを作成して、それを参照させてるってこと?

PHPで直接データを送ればいいんじゃないの?
やることは適切なContent-Type: ヘッダをを渡すことだけ。

810nobodyさん:2007/09/05(水) 12:23:04 ID:???
>>806
Ajaxをトリガーにして削除ってのが簡単カモネ
811nobodyさん:2007/09/05(水) 13:37:39 ID:???
strposのサーチ対象の文字を複数("/" or "("など)にしたいんですが
そういう関数ないですか
812nobodyさん:2007/09/05(水) 13:40:13 ID:???
正規表現
813nobodyさん:2007/09/05(水) 13:48:31 ID:iFbT+y59
レン鯖のPHP実行ファイルまでのフルパスってどうすれば確認できますか?
phpinfo()でそれらしい設定が見つからなかったのですが・・・
814nobodyさん:2007/09/05(水) 14:28:23 ID:vAG+Wys0
掲示板みたいなものを作るときテキスト保存で、
httpを含むその行の文字列をアンカーリンクとするようにしたいのですが、
何か巧い方法を教えていただきたいです
815nobodyさん:2007/09/05(水) 14:29:48 ID:???
>>814
正規表現
816nobodyさん:2007/09/05(水) 14:30:19 ID:???
>>813
1、鯖かんに聞く
2、dirname(__FILE__)
3、あきらめる
すきなものを選べ
817nobodyさん:2007/09/05(水) 14:33:06 ID:vAG+Wys0
すみません、自己解決いたしました。
ありがとうございます
818808:2007/09/05(水) 14:48:19 ID:???
すまん、気づいたらいた違いの質問だったな。
819nobodyさん:2007/09/05(水) 14:52:06 ID:???
あ、思い出した、。あの時はSELinux絡みで設定しなおしたんだった

>>818
貴方は誰ですかw
820nobodyさん:2007/09/05(水) 16:01:49 ID:x3JtEU0u
<input type="text" name="name" value="<b>" />

valueの<b>という値はXSSが起こりうるのでしょうか?
一応確認してみたのですが、この行以降の文字は太文字にはなりませんでした。
821nobodyさん:2007/09/05(水) 16:05:00 ID:???
htmlのお約束を覚えろ。
822nobodyさん:2007/09/05(水) 16:10:26 ID:x3JtEU0u
XSSの心配がないので<の無害化などはしないでこのままにします
823nobodyさん:2007/09/05(水) 18:57:53 ID:6UMtGkQv
PHPで掲示板のスレタイだけ抜き出して、フラッシュに文字を渡そうとしてます。
やってみたら、文字コードのフォーマット?か何かが違ってるぽいです。
PHPで出力文字列をunicodeにするにはどうすればいいですか?
824nobodyさん:2007/09/05(水) 19:09:38 ID:???
>>823
mb_convert_encoding( )
825823:2007/09/05(水) 19:15:51 ID:6UMtGkQv
$s = mb_convert_encoding($s, "unicode");
やっぱこれじゃダメですか

文字コードの知識が全然無い俺
unicodeは何て指定すればいいんですか
826nobodyさん:2007/09/05(水) 19:29:01 ID:???
>>825
unicodeは、UTF-7,UTF-8,UTF-16,UTF-32と色々バリエーションがあるし、
さらにそのサブセットもあるから、detectして文字コードの種類を調べるのが先。
827nobodyさん:2007/09/05(水) 19:40:57 ID:???
>>820
<input type="text" name="name" value="ココ" />
ってことだろ?
" /><script>alert("XSSですけど?")</script> <a href="
って値を入れてみようか。

<input type="text" name="name" value="" /><script>alert("XSSですけど?")</script> <a href="" />
駄目じゃね?
828nobodyさん:2007/09/05(水) 19:47:01 ID:???
>>825
多分
$s = mb_convert_encoding($s, "utf-8", "sjis");
829823:2007/09/05(水) 20:05:18 ID:6UMtGkQv
>>828さんの方法でできました!

皆さんありがとうございました。
830nobodyさん:2007/09/05(水) 20:49:40 ID:9ANsBxrb
質問させてください。

◆やりたい事
・phpの中にindex.tplを表示する場合とend.tplを表示する場合の条件を記述したい。
・普通にphpにアクセスした時はindex.tplを表示させたい。
・end.tplはテキスト入力欄に入力した状態で登録を押した時に表示させたい。
・現状は分岐のさせ方が分からないため、index.tplの内容を表示し、その下にend.tplの内容が表示されてしまいます。

◆環境
CentOS 4 & PHP 4.3.9

◆index.php
<?php
require'Smarty/Smarty.class.php';
function get_smarty_object(){
$smarty = new Smarty();
$smarty->template_dir = "tmp/templates/";
$smarty->compile_dir = "tmp/templates_c/";
return $smarty;
}
$smarty = get_smarty_object();
// ここに何かしらの分岐を書く必要があると思いますが、書き方が分かりませんでした。
$smarty->display( "index.tpl" );
// ここに何かしらの分岐を書く必要があると思いますが、書き方が分かりませんでした。
$smarty->display( "end.tpl" );
?>
831nobodyさん:2007/09/05(水) 20:50:52 ID:9ANsBxrb
>>830の続きとなります。
◆index.tpl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>月入力前</title>
</head>
<body>
<form method="post" action="index.php">
<input name="month" type="text">月<br>
<input name="submit" type="submit" value="登録">
</form>
</body>
</html>

◆end.tpl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title>月入力後</title>
</head>
<body>
<form method="post" action="index.php">
{$month}月が入力されました。<br>
<a href="index.php">戻る</a>
</form>
</body>
</html>
832nobodyさん:2007/09/05(水) 20:54:04 ID:???
まずはHTMLのフォームについて勉強したほうが
833nobodyさん:2007/09/05(水) 20:56:17 ID:Owa32j3Y
全角「ABC」という文字列をgoogleに与えるキーワードとして
「%EF%BC%A1%EF%BC%A2%EF%BC%A3」という文字列にしたいのですが
何か上手い方法ありますか?
bin2hex使えば16進になることは分かったのですが、後%入れる方法がわかりません。
834nobodyさん:2007/09/05(水) 20:58:24 ID:???
URLエンコードとかでググルと幸せになれるかも
835nobodyさん:2007/09/05(水) 21:03:41 ID:Owa32j3Y
>>834 ギャーとっても幸せになれましたサンクス
$result=urlencode($keyword);
836nobodyさん:2007/09/05(水) 21:13:33 ID:xhirHVJB
test
837nobodyさん:2007/09/05(水) 22:10:46 ID:JCAEvDAB
phpによってphpファイル生成してもエラー出て実行できないよね?あれ実行できるようにできないの
838nobodyさん:2007/09/05(水) 22:24:31 ID:9ANsBxrb
>>832
レスどうもです。
一応html+phpで動かす事は出来たのですが、ソースを見た所、htmlとphpが混在していて見にくかったので
php+tplに移植を試みていたのですが、中々難しいようで。

多分
if (submit押下後) {
$smarty->display( "end.tpl" );
} else {
$smarty->display( "index.tpl" );
}
でいけそうな気がしたのですが、このsubmit押下後をこの時点で判定するのは難しそうですね。

素直にhtml+phpで、htmlのsubmit押下でphpを呼び出す方向で検討しようと思います。
839nobodyさん:2007/09/05(水) 22:28:01 ID:???
>>838
そのコードじゃ、ViewとControllerが全く分化できていない。
テンプレート使っている意味がないと思うけど。
840nobodyさん:2007/09/05(水) 22:37:28 ID:9ANsBxrb
>>839
そうなんですか。
正直元のソース(html+php)がカオスすぎて
>>830>>831程度に分化してくれれば後から修正しやすいかなと思ったのですが、
本当はもっときっちり分化するものなんですね。

テンプレート難しいorz
841nobodyさん:2007/09/05(水) 22:41:39 ID:???
いやだから、こんなの書いてる時点でHTMLのフォームからやり直したほうがいいって。
<form method="post" action="index.php">
{$month}月が入力されました。<br>
<a href="index.php">戻る</a>
</form>
842nobodyさん:2007/09/05(水) 22:52:30 ID:9ANsBxrb
>>841
あ、そこはまだダミーの記述で未検証の所です。
まず分岐ができない事にはそこにたどり着かないので、
その部分はhtml+phpで書いた物をこんな感じかなと当てはめただけです。
843nobodyさん:2007/09/05(水) 22:55:03 ID:9ANsBxrb
>>831の<body>と</body>の間は
<p>入力されました</p>
となっていると思っていただければ大丈夫です。
844nobodyさん:2007/09/05(水) 22:59:20 ID:???
それじゃフォームとが何をするかググるんだ。
分岐する方法は全部そこに書いてあるから。
845nobodyさん:2007/09/05(水) 23:30:39 ID:9ANsBxrb
>>844
ありがとうございます。
フォームでググッてきます。
846nobodyさん:2007/09/06(木) 04:55:02 ID:5gplVXTA
>>827
ああ、、、、タグ閉じでXSS可能ですね。
無害化することにします。
ありがとうございます。
847nobodyさん:2007/09/06(木) 07:07:26 ID:???
だめだこりゃ
エスケープは基本なのに
848nobodyさん:2007/09/06(木) 09:34:23 ID:???
エスケープ・・・つまり逃げるってことか。
逃げるのは基本。
849nobodyさん:2007/09/06(木) 09:43:53 ID:5gplVXTA
逃げたらそこで試合終了ですよ
850nobodyさん:2007/09/06(木) 09:44:24 ID:???
しまった!sageわすれたw
851nobodyさん:2007/09/06(木) 10:45:07 ID:???
あいかわらず暇そうだな
852nobodyさん:2007/09/06(木) 11:37:58 ID:???
暇。その通り。エスケープにはサボるという意味がある。和製英語だけどな。
853nobodyさん:2007/09/06(木) 12:31:25 ID:acTwpTPv
サーバー監視用のスクリプトを作っています。
stream_socket_clientで接続できるかどうかで判断しているのですが、
どうもサーバが動いてるかどうかだけしかわからないようです。
正常に稼動してるか、してないかまでチェックしたいのですが、
何か他に最適な関数や方法ありませんでしょうか?
具体的な例として、 ttp://rosv.lln.jp/
こちらのサイトでは ttp://rosv.lln.jp/status.html の説明で、
Good, Closed, Dead, Downとステータス分けしていますが、
stream_socket_clientでは、GoodもClosedもDeadもおそらく同じ結果として返ってきます。
これをこのサイトのように別々のステータスとして受け取りたいのですが可能でしょうか?
854nobodyさん:2007/09/06(木) 12:33:26 ID:dac6pXjB
2chのアンカーリンクみたいに掲示板に>>1で指定URLに飛ぶような関数を作りたいのですが、
function A_Link($str,$url)
{
}
として、引数$strには投稿された文章、引数$urlには相対パスを入れようとおもっているのですが、
この場合どうすればいいでしょうか

splitで>>で区切って配列1のデータで作ってみましたが、文章全体がリンクになったりとうまくいかず・・・
855nobodyさん:2007/09/06(木) 12:43:09 ID:???
>>854
難しく考えず
<a href="#1">1</a>みたいにレス番号全てにアンカーつけといて
書き込み時に正規表現で>>intのものを繰り出して
<a href="#int">int</a>に置き換えすればいいんじゃない?
856nobodyさん:2007/09/06(木) 12:50:00 ID:???
>>854
PHPのリファレンス(関数一覧)を見ることをオススメする。
split以外の関数にどんなものがあるのか探せ
857nobodyさん:2007/09/06(木) 12:52:48 ID:???
>>853
そのサーバがきちんと動いているかどうかは、
そのサーバの喋るプロトコルに沿ってアクセスして、返答を見る必要があるだろう。
タイムアウトか、エラーが帰ってきたら死んでるのでいいじゃん。
858nobodyさん:2007/09/06(木) 13:14:34 ID:???
リファレンスはざっとでもいいから見ておくだけで、かなり勉強になるしな
なんというか知ってて当たり前のような事を知らない奴が多すぎる
こんなとこで質問する前に、まずはリファレンス嫁って感じ
859854:2007/09/06(木) 13:17:01 ID:dac6pXjB
正規表現だけでなんとかできました・・・
>>855
最初それにしようとおもったんですが、ページ切り替えを作ったときにそれだと飛ばないので
無理にでもこの方法にしてみようとおもってました
860nobodyさん:2007/09/06(木) 15:02:26 ID:???
プロファイリングのために
tickで割り込んだ時、元々いた場所の情報を知りたいんですが
どうすればいいですか?
861nobodyさん:2007/09/06(木) 15:39:37 ID:???
phpでフォームを作ってるんだがサファリ以外は全てうまくいくのに
このクソブラウザだけがうまく動かん。
フォームに入力された内容が全く引き継げていない。
<form >タグにactionとmethodしか設定してないんだけど
他に設定すべき情報ってありますか??
862nobodyさん:2007/09/06(木) 15:42:01 ID:???
>>861
actionとmethodが正しく指定されていればSafariでも問題ないはず。
まずは落ち着いて状況を再現できる最低限のコードを晒してはどうか。
863nobodyさん:2007/09/06(木) 16:11:21 ID:???
>>862
最低限のコードなのでこんな感じかな(スマーティ使用)。
かなり省いてるけど分かる人には分かると思う。
どうもphp側の問題ではないような気がして、もしかしたらスレ違いなのかもしれない。

[index.html]
<form action="./confirm.php" method="post">
 <input type="text" name="f_name" value="{$input.f_name}">
 <input type="submit">
</form>

[confirm.php]
$f_name = $_POST["f_name"];

//エラー判断
if( $f_name == "" ){
 //リダイレクト
}

以下、テンプレートconfirm.htmlを読み込んで表示。

エラー判断の時点で何も入っていないと解釈され元のページに戻されてしまう。
もちろん何回もやったので入れ忘れたとかはない。
他のブラウザなら全く問題なく動く。
SafariはSafariでもバージョンによっては不具合が出るとかあるのだろうか。
864nobodyさん:2007/09/06(木) 16:18:56 ID:???
最低限ってfieldsetとlegendもいれないとinvalidじゃないのか
俺が馬鹿だったのか
865nobodyさん:2007/09/06(木) 16:29:40 ID:dALDE1iv
アップローダー作ってます。
任意のファイルのアップロード・ダウンロードをできるようにしてます。
ダウンロード側で、以下のようにして正常に動作はしてますが、
$down_file のソース自体の影響でXSSなどが行われる心配はないでしょうか。
仮に行われる可能性がある場合、
ファイルのデータ自体のエスケープ処理なんてどのようにすればよいんでしょうか。

<?php

$down_file = $_GET['down_file'];
if( !mb_eregi("^[a-z0-9]+$", $down_file )){
exit();
}
Header("Content-type: text/plain; name=\"".$down_file."\"");
Header("Content-disposition: attachment; filename=".$down_file."");
readfile("/data/".$down_file);
exit;
?>
866nobodyさん:2007/09/06(木) 16:36:36 ID:???
>>864
それってタブで移動できるようにする為のタグではないの?
Safariはそれでグループ化しないと値が引き渡されない?
そんなはずは・・・
867nobodyさん:2007/09/06(木) 16:41:31 ID:???
昔サファリで投稿すると文字化けするって話あったよね
まだ初期のころ
868nobodyさん:2007/09/06(木) 16:49:24 ID:???
>>867
なるほど、、色々といわく付きのブラウザって事ですな。
素直に諦めるか。。。
あえてそんなクソブラウザを使うようなやつが悪い。
869nobodyさん:2007/09/06(木) 20:19:46 ID:BwUmyBl/
file関数を使ったファイルのように変数を配列化する方法を教えてください。

$file="a\nb\nc\nd\n";
(何らかの処理)
print "$file[0]";
で、「a」と表示といった感じです。
870nobodyさん:2007/09/06(木) 20:36:53 ID:???
$file = explode("\n", $file);
871nobodyさん:2007/09/06(木) 20:45:53 ID:BwUmyBl/
神様仏様>>870様、初心者の質問に答えてくださりありがとうございます
872nobodyさん:2007/09/06(木) 23:23:05 ID:???
BBSを作っています。
1レスのデータを1行にまとめてテキストファイルに記録しているのですが
新しい書き込みをテキストの上に記録していくには、
一度配列に全レスを読み込み、新しいレスを加えてファイルに書き込む方法
しかないのでしょうか?
ファイルポインタの位置から、テキストエディタのようにインサートで書き込む
ような命令はないのでしょうか?

一度配列に全レスを読み込むしか方法がない場合、例えば全書き込みが1000程で
安いレンタルサーバで利用する場合、高負荷と判断されるような処理なのでしょうか?
873872:2007/09/06(木) 23:46:45 ID:???
友達に聞いて自己解決しました。
やっぱりデータベースを利用することにします。
SQLiteって便利ですね!
874nobodyさん:2007/09/06(木) 23:56:38 ID:???
関数のオーバーライドを実現する方法を教えて下さい
875nobodyさん:2007/09/07(金) 00:15:17 ID:iXE96r/B
すみません
for文で
0001〜0010〜0100〜1000
というふうにしたいのですが、
可能でしょうか?
876nobodyさん:2007/09/07(金) 00:19:11 ID:???
日本語でおk
877nobodyさん:2007/09/07(金) 00:49:11 ID:???
なんとなくsprintfでFAっぽい
878nobodyさん:2007/09/07(金) 00:49:57 ID:fIAEM3os
phpで文字列比較を行う場合、"=="演算子を使っちゃっていいのかな?
javaのequal()メソッドみたいな物はありますか?
879nobodyさん:2007/09/07(金) 01:14:41 ID:???
自分は==使ってます。関数で比較したのはみたことないからあっても有名ではないと思う。
880nobodyさん:2007/09/07(金) 01:17:45 ID:iXE96r/B
0001〜1000でインクリメントさせたい
0を表示したまま
881nobodyさん:2007/09/07(金) 01:20:01 ID:???
882nobodyさん:2007/09/07(金) 02:11:06 ID:???
>>881
あん?それがなんなん?
883nobodyさん:2007/09/07(金) 02:15:53 ID:Y/cI9Wol
>>878
文字列の比較なら 「==」 よりも 「===」 がお勧めです。

以下のスクリプトは、 驚くべきことに 「True」 を表示します。

$x = 0;
if ('string' == $x) {
echo 'True';
} else {
echo 'False';
}

「==」 を使って比較すると、 'string' は0と同値とみなされてしまうのです。
「===」 なら型まで比較するので、 このようなことにはなりません。
884878:2007/09/07(金) 02:39:35 ID:fIAEM3os
>>879>>883
レスどうもです。

>>883さんの例で、'string'という文字列だけが0と同値とみなされるって事は
'string'以外の文字列の比較だったら気にしなくてもいいって事かな・・・

あと、「==」が型を無視するって事は、下のサンプルはtrueを出力する
事になるんですか?

$iX = 5;
$sStr = "5";
if ($sStr == $iX) {
echo 'True';
} else {
echo 'False';
}

そうだとしたら、ちょっと気になるな・・・
文字列の比較は、「===」にして、数字と比較したいときは型変換する
ってコーディングルールを今後自分の中で作ろうかな。
これってまずいかな? なんか一般的な決め事ってあるんですか?
885nobodyさん:2007/09/07(金) 02:47:19 ID:???
>>884
おまえバカって周囲によく言われない?
886nobodyさん:2007/09/07(金) 02:57:47 ID:Y/cI9Wol
>>884
'string' は例であって、 'foo' でも 'bar' でも0と同値とみなされます。
ただ、 '3' や '49ers' のように整数型に変換すると0でなくなるものは0と同値とみなされないようです。
887878:2007/09/07(金) 03:04:10 ID:???
>>'string' は例であって、 'foo' でも 'bar' でも0と同値とみなされます

そうですか。
'string'という文字列だけ例外とかおかしいですよね、失礼しました。
「===」演算子を使うようにしますわ。教えてくれてありがとう。
888nobodyさん:2007/09/07(金) 04:32:50 ID:rfOwdTtE
>>866, >>868
>それってタブで移動できるようにする為のタグではないの?
いや、HTMLはPHPのように動作を命令する言語ではない。

たしか、form要素直下にインライン要素は文法違反だったと思う。
これが直接の原因とは考えられないが。
889nobodyさん:2007/09/07(金) 04:42:50 ID:OvuyfN7a
BBSを作っていて、>>872さんと同じような事で悩んでいます

>BBSを作っています。
>1レスのデータを1行にまとめてテキストファイルに記録しているのですが
>新しい書き込みをテキストの上に記録していくには、
>一度配列に全レスを読み込み、新しいレスを加えてファイルに書き込む方法
>しかないのでしょうか?
>>872さんはデータベースを使う事で解決したらしいですが
データベースを使えないサーバでは、この方法でしか不可能でしょうか?
890nobodyさん:2007/09/07(金) 04:48:06 ID:???
SQLiteはDB使えない鯖でも使えるんですが。
891nobodyさん:2007/09/07(金) 05:10:28 ID:???
レンサバじゃ使えないとこもあるんですが。。。。?
892nobodyさん:2007/09/07(金) 05:17:45 ID:???
PHP 5.2.4のインストールと設定 - [データベース]All About
ttp://allabout.co.jp/internet/database/closeup/CU20061118A/index.htm

・このふざけた日付は何? → 掲載日:2006年11月18日
・古の設定手順載せてやる気あるんだろうか?
・マニュアルはおろかInstall.txtすら目通してないんじゃないかと思う

こういうサイトが平然と存在していて悪影響及ぼさないのかね
893nobodyさん:2007/09/07(金) 05:26:36 ID:???
>>892
場ジョン5.2.4に変えただけで中身は一緒かよ
894nobodyさん:2007/09/07(金) 05:27:07 ID:???
>>892
スポンサーに苦情だせば?
895nobodyさん:2007/09/07(金) 05:55:11 ID:???
All Aboutっててきとー記事多いよね。
896nobodyさん:2007/09/07(金) 06:30:54 ID:???
allaboutの技術記事なんて見る奴いねーだろ
897nobodyさん:2007/09/07(金) 06:54:42 ID:???
>>896
そんなallaboutも上場しているんだよな。
mixiもkakaku.comもphpで実装しても大したことがない機能ばかりなので、
あれで上場できるとは、誰でも上場できるような気がする。
898nobodyさん:2007/09/07(金) 07:13:15 ID:???
>>896
そこらのblog覗くとphpの設置だけで四苦八苦してサイト徘徊してるらしいよ。
んなわけだから、中にはallaboutに引っ掛かる人もいるかもしれんわ。
899nobodyさん:2007/09/07(金) 07:34:26 ID:5n6DmJVT
php+postgresqlでデータベースシステム
を作っているんですが、
構築中にpostgresqlモジュールのインストールをしないと
php、postgresqlはうまく動かないと書いてあるのですが、
その方法にてマニュアルや乗っているサイトはないでしょうか?
PHP5です。postgresqlは8.1.3です。

900nobodyさん:2007/09/07(金) 07:37:11 ID:???
>>899
> うまく動かないと書いてある
どこに書いてあったの。
901nobodyさん:2007/09/07(金) 08:30:28 ID:9skKCQS9
>>898
俺も何も知らないときひっかかった
今はXAMPPですぐなのにね
902nobodyさん:2007/09/07(金) 08:51:44 ID:???
XAMMPこそ糞だろ
903872:2007/09/07(金) 09:29:39 ID:???
>>872ですが
>>873で騙りで事故解決されてしまってます。
まあ873はSQlite使えと言いたいのだとは思いますが。
904nobodyさん:2007/09/07(金) 09:51:42 ID:???
Windowsユーザのインストール記録は多種多様
Installerによるセットアップはさておき、php-zipファイル解凍後の作業パターン

case1
 php.iniリネーム後、ini, *.dll全てシステムディレクトリにコピー

case2
 php.iniリネーム後、phpフォルダにpathを通す
 ini, php*ts.dllをシステムディレクトリにコピー

case3
 php.iniリネーム後、PHPIniDirを設定
 php*ts.dll他、拡張モジュールをシステムディレクトリにコピー

case4
 php.iniリネーム後、phpフォルダにpathを通し、PHPRCを設定
 ini, php*ts.dllをシステムディレクトリにコピー
 動作不具合により拡張モジュールまでシステムディレクトリにコピー

みんな、自分が何やってるのかわかってないだろ?
国内のみならず海外までこの調子だからな
905nobodyさん:2007/09/07(金) 09:52:27 ID:???
>>902
糞な理由をどうぞ
906nobodyさん:2007/09/07(金) 10:43:04 ID:???
>>903
自己主張したいならIDくらい出せ
907nobodyさん:2007/09/07(金) 13:09:45 ID:???
>>904
たしかに俺もわからんな
Apache+PHPの関連付けというくらいしか・・・
具体的にどうなっているのかはサッパリだ
908nobodyさん:2007/09/07(金) 13:13:14 ID:???
面倒だからxamppに一任してます
909nobodyさん:2007/09/07(金) 13:19:27 ID:???
テスト環境としたらxamppで十分すぎ
910nobodyさん:2007/09/07(金) 13:20:08 ID:???
今時PHP4のレンタル鯖が多くてウザい
911nobodyさん:2007/09/07(金) 13:26:12 ID:h8X9ZIw7
PHPでCGIモードをモジュールモードの違いって何でしょうか?
さくらレンタルサーバーを借りようと思っているのですが、
モジュールモードで実行できるのがプロからなんです。
今までPHP5で動作を確認してきました。
912nobodyさん:2007/09/07(金) 13:42:09 ID:???
モジュール版は拡張子がphpってファイルをあげてそこにアクセスすればそのまま動く。
cgiモードはcgi-binとか専用のディレクトリ作ってそこでCGIが動くように設定しなきゃいかん。
ファイルの拡張子もcgiにしなきゃいかんし色々と不便。
913nobodyさん:2007/09/07(金) 13:45:01 ID:h8X9ZIw7
>>912
つまり、全てのphpの先頭に「!#usr/bin/php」とかつけないといけないのかな?


さくら借りるの辞めたorz
914nobodyさん:2007/09/07(金) 13:50:38 ID:nZ/hNLzg
>>912

ビジネス・プレミアム両方とも、
!#usr/bin/php つけなくても、さくらサバ動きますよ。
いたって普通に動きますよ。

質問ですが

・phpのsleepを使う意味(処理を遅くさせて何のメリットがあるのか。処理を
遅くさせることによってサーバーへの負荷を少なくするという解釈でOKなのでしょうか)
・php5 の private とか外から読めないようにする意味

を教えていただけませんでしょうか。お願いします!

915nobodyさん:2007/09/07(金) 13:51:38 ID:nZ/hNLzg
>>914

すいません、
・php5 の private とか外から読めないようにする意味
これは class を使うときのことです。
916nobodyさん:2007/09/07(金) 13:52:48 ID:h8X9ZIw7
>>914
なるほど、でも自分はスタンダートの予定ですorz

PHPのsleepはWindows(Winアプリ?)で実行させれる形にするときに長保しますよ。
それ以外では使ったことがないですが・・・
917nobodyさん:2007/09/07(金) 14:00:28 ID:???
>>910
確かにレンサバにphp4しかないのは問題
今からphp4用作るなんて時間をどぶに捨てるようなもの
918nobodyさん:2007/09/07(金) 14:08:30 ID:???
>>902
そもそもXAMMPって何?
919nobodyさん:2007/09/07(金) 14:09:41 ID:???
920nobodyさん:2007/09/07(金) 14:14:08 ID:???
>>919
XAMPPなら知ってるけどXAMMPなんて聞いた事なかったんよ
921nobodyさん:2007/09/07(金) 14:15:40 ID:???
922nobodyさん:2007/09/07(金) 14:16:53 ID:???
皮肉で聞いてるのも分からないなんて酷いな。どうせ本人だろうけど。
923nobodyさん:2007/09/07(金) 14:20:49 ID:???
>>922
質問するならID出せってことだよ
それすらできないなら最初から質問するな
924nobodyさん:2007/09/07(金) 14:24:03 ID:???
>>923
なんでそんなにピリピリしてるの?笑
質問する意図があった訳じゃないのは>>922見て分からないの?
頭悪いの?
925nobodyさん:2007/09/07(金) 14:24:41 ID:???
926nobodyさん:2007/09/07(金) 14:26:21 ID:rbBQhYL0
ここって本当に心にゆとりがない人多いよね。
頭はゆとり全開だけどさ。じゃあID出して質問しますね^^

XAMMPって何ですかー?
そんなの聞いた事ないんですけどー?
XAMPPなら聞いた事ありますけどー?
927nobodyさん:2007/09/07(金) 14:26:37 ID:lQ1e3Ppz
>>917
php4とphp5の違いを教えてたもれ
928nobodyさん:2007/09/07(金) 14:27:31 ID:???
>>926
おそらく>>902氏のうち間違いだと思われます
929nobodyさん:2007/09/07(金) 14:28:19 ID:???
>>927
使える関数など
最近のFWもPHP5.x以上のみになってきてるんじゃないかな?
930nobodyさん:2007/09/07(金) 14:43:07 ID:???
http://www.php.net/manual/ja/install.windows.php
>警告
>インターネットでオールインワンのインストーラがいくつか見かけられます。 しかし、いずれも PHP.net により公認されたものではありません。
>システムを最適化し、また、安全を保つためには、 マニュアルインストールがもっとも良い選択ではないかと我々は考えています。

だからXAMPPはやめとけな。
それぞれの手動インストールをマスターした上で使うのならいいが、初心者が楽だからといって使うのはただの思考停止。
931nobodyさん:2007/09/07(金) 14:54:20 ID:???
クローズドなテスト環境の構築には便利だし問題ないだろ、xampp
932nobodyさん:2007/09/07(金) 15:21:29 ID:???
>>913-914あたり
だれもつっこんでないが
!#usr/bin/phpっておかしいだろ
#!/usr/bin/phpだろ
933nobodyさん:2007/09/07(金) 15:42:48 ID:???
Win版をソースコンパイルしてる香具師っている?
934nobodyさん:2007/09/07(金) 15:52:35 ID:???
PHP4滅ぶのマダー
935nobodyさん:2007/09/07(金) 17:00:15 ID:3IipQzMp
こんにちは。今日のお昼は蕎麦でした。
preg_replace で e指定子を付けるとシングルクォートがエスケープされるのですが、
これは必ずそうなるのでしょうか?
php.ini などの設定で抑制されるものなのでしょうか?

echo preg_replace('/./', '$0', "'") ; // そのまま
echo preg_replace('/./e', '"$0"', "'") ; // シングルクォートがエスケープされる
936nobodyさん:2007/09/07(金) 17:15:46 ID:???
よろしくお願いします。

$day = date("d");
if ($day = 1){
echo "こんにちは";
}

これで1日に"こんにちは"が表示されるようになったのですが、
15日にも表示させたい場合、($day = 1)の部分をどのように記述すればよいのでしょうか?
937nobodyさん:2007/09/07(金) 17:19:14 ID:???
938nobodyさん:2007/09/07(金) 17:19:40 ID:???
幼稚園並みのつりだなw
939nobodyさん:2007/09/07(金) 17:32:30 ID:???
>>931
テストならできるだけ本番と同じ環境の方がよろしいような...
ま、開発だけならパッケージのバイナリもいいかもね。
940nobodyさん:2007/09/07(金) 17:37:27 ID:???
>>936
そのif文だと1日以外でも表示されると思われる
941nobodyさん:2007/09/07(金) 17:49:59 ID:???
>>936
式は変更する必要ないよ。
if を while に変えればいいと思うよ。
942nobodyさん:2007/09/07(金) 17:51:10 ID:???
>>933
VC++6持ってなきゃ cygwin か .NET版VC++ & platfosm SDK 用意しなきゃならんでしょ?
面倒臭くてやってられない。 (C++Builder5 しか持ってないもん)

だったら
・zip解凍→ルートディレクトリ(C:\ etc.)にフォルダを移動
・システム環境変数 Path & PHPRC 設定
・テンプレートファイルから php.ini 作成&編集
・httpd.conf 編集
・システムリブート
って、バイナリ展開の方が手間入らずで済むからいい。 by ナマケモノ
943nobodyさん:2007/09/07(金) 17:54:47 ID:???
s/platfosm/platform/g
944nobodyさん:2007/09/07(金) 18:06:20 ID:ArMFnOZS
>>937-940
>>936です。
すみません確かに1日以外でも表示されていました。
ifをwhileに変えた場合、その後のelse {でエラーが起きている表示になりました。
if($day == 1)にしたら今度は上手く行ったようなので、

if ($day == 1){
echo "こんにちは";
}
if ($day == 15){
echo "こんにちは";
}

にしてみようと思います。
945nobodyさん:2007/09/07(金) 18:09:24 ID:ArMFnOZS
2番目のifをelseifにしたら出来ました!
さっき試した時に出来なかったのは==じゃなかったからなんですね・・・
ありがとうごじました
946nobodyさん:2007/09/07(金) 18:23:53 ID:q1A+s3Q8
>>945
同じような事をcaseでやってるよ
947nobodyさん:2007/09/07(金) 18:35:17 ID:???
if($day == 1 || $day == 15) echo "こんにちは";

1行で済ませないのはおじいちゃんの遺言か?
948nobodyさん:2007/09/07(金) 18:53:05 ID:ArMFnOZS
>>946-947
おおお、ありがとうございます。
1行にまとめる方法が分かりませんでした。早速直しますm(__)m
949nobodyさん:2007/09/07(金) 20:28:54 ID:5n6DmJVT
php5はpostgresqlモジュールのインストールしなくても
php+postgresqlで動くのかな?
今本見て勉強しているんだが、
書いてあるのと書いてないのがある。
php4とphp5どっちをイントールすればいのだろうか?
950nobodyさん:2007/09/07(金) 20:33:52 ID:???
>>949
php.iniで;extension=php_pgsql.dllのセミコロンを外して再起動するだけでおk。
バージョンは5
951nobodyさん:2007/09/07(金) 20:49:11 ID:???
習うならPHP5やっておけばPHP4の違いも比較しながらつうのが
時期的に多いから結果PHP4にも対応できるようになるお
952nobodyさん:2007/09/07(金) 21:15:18 ID:???
OSも書かない動作質問はするー
953nobodyさん:2007/09/07(金) 21:34:28 ID:???
>>872>>889について
unix系環境のもとならcatとかsort使うとか。

fopen("newfile", "w");
1行書き込んでファイル閉じる
system('cat newfile , currentfile > tempfile', $ret);
で、rename("tempfile", "currentfile");やってリネーム
newfile…新規1行レコードファイル currentfile…既存ファイル

または
fopen("writefile", "a"); アペンドでファイルオープン
末尾に1行追加してファイル閉じる
system('sort -r writefile > currentfile', $ret);
ソートで書き込み一気に反転やぁ〜
writefile…書き込み専用 currentfile…読み出し専用

なんか問題出そうな気がしてきた…
954949です。:2007/09/07(金) 21:40:26 ID:5n6DmJVT
fedora core4です。
自分はphp5はfedora core4でパッケージでインストールされているの
を使ってpostgresqlと連携したいのですが、可能ですか?
955nobodyさん
>>954
可能