【PHP】下らねぇ質問はID出して書き込みやがれ 84
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2009/04/27(月) 21:39:11ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 83
http://pc11.2ch.net/test/read.cgi/php/1238958898/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0002nobodyさん
2009/04/27(月) 21:40:06ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
【PHP】下らねぇ質問はID出して書き込みやがれ 79
http://pc11.2ch.net/test/read.cgi/php/1231850905/
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/
【PHP】下らねぇ質問はID出して書き込みやがれ 77
http://pc11.2ch.net/test/read.cgi/php/1228667259/
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
【PHP】下らねぇ質問はID出して書き込みやがれ 75
http://pc11.2ch.net/test/read.cgi/php/1224168721/
【PHP】下らねぇ質問はID出して書き込みやがれ 74
http://pc11.2ch.net/test/read.cgi/php/1221909788/
【PHP】下らねぇ質問はここに書き込みやがれ 73
http://pc11.2ch.net/test/read.cgi/php/1220440493/
【PHP】下らねぇ質問はここに書き込みやがれ 72
http://pc11.2ch.net/test/read.cgi/php/1218855685/
0003nobodyさん
2009/04/27(月) 21:41:27ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
■Smartyマニュアル http://www.smarty.net/manual/ja/
(以下英語)
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smarty http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2009/04/27(月) 21:43:26ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0005nobodyさん
2009/04/27(月) 21:44:07ID:???→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
0006nobodyさん
2009/04/27(月) 21:47:13ID:???【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
http://pc11.2ch.net/test/read.cgi/php/1233590976/
0007nobodyさん
2009/04/27(月) 21:58:17ID:???さんくす!
0008nobodyさん
2009/04/27(月) 22:11:17ID:ngOdqG7uif文だと思うんですがマニュアルでこのことについて書かれている箇所に誘導してもらえないでしょうか
0009978
2009/04/27(月) 22:18:38ID:skcV1wh30010nobodyさん
2009/04/27(月) 22:22:21ID:???三項演算子
ttp://php.benscom.com/manual/ja/language.operators.comparison.php
0011nobodyさん
2009/04/27(月) 22:36:38ID:ngOdqG7uありがとうございます。
マニュアルの例のように結果によって同じ変数に別な値を入れるときは
if分よりこの書き方の方がすっきりしますね。
使い分けてみることにします。
0012nobodyさん
2009/04/28(火) 00:04:52ID:hPvdrkqO<?php
session_start();
?>
<form action="" method="post">
<p>Enter text shown below:</p>
<p><img src="index.php/?<?php echo session_name()?>=<?php echo session_id()?>"></p>
<p><input type="text" name="keystring"></p>
<p><input type="submit" value="Check"></p>
</form>
<?php
if(count($_POST)>0){
if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring']){
echo "Correct";
}else{
echo "Wrong";
}
}
unset($_SESSION['captcha_keystring']);
?>
一番最後に unset($_SESSION['captcha_keystring']); とセッション変数をアンセットしてありました。
ページの先頭には session_start(); が宣言されているのでページのリロード時には必ずセッションは
初期化されるわけですが、それでもあえて最後にセッションをアンセットしなければならない理由はなんでしょうか?
0013nobodyさん
2009/04/28(火) 00:12:44ID:???>ページの先頭には session_start(); が宣言されているので
>ページのリロード時には必ずセッションは初期化されるわけですが
まずここの解釈が間違ってる。session_startのリファレンスをよく読んでごらん。
0014nobodyさん
2009/04/28(火) 10:54:03ID:???0015nobodyさん
2009/04/28(火) 14:28:24ID:PkQXIDSH入力されたマルチバイト文字列(SJIS)を、配列ではなく、予め用意した変数に、
一文字ずつ分割して格納したく思っています。例えば、
$koe = "ありがとう";
なら、
$ichi ="あ"; $ni ="り"; $san ="が";
$yon ="と"; $go ="う"; $roku =""; $nana ="";
という風に変換する関数を設定したいのです。 具体的に、どういう処理をすればよいのでしょうか?
どうかご助力、お願いいたします。
0016nobodyさん
2009/04/28(火) 14:33:27ID:???SJISはちょっとイヤンな感じだからUTFにしたら?
0017nobodyさん
2009/04/28(火) 15:22:47ID:???0018nobodyさん
2009/04/28(火) 15:25:45ID:???0019nobodyさん
2009/04/28(火) 15:28:01ID:???$array = array("ichi", "ni", "san", "shi", "go");
$string = "ありがとう";
$count = 0;
foreach ($array as $key => $value) {
$array[$key] = mb_substr($string, $i, 1, "Shift_JIS");
++$count;
}
002019
2009/04/28(火) 15:31:09ID:???$array[$key] = mb_substr($string, $i, 1, "Shift_JIS");
これは
${$key} = mb_substr($string, $i, 1, "Shift_JIS");
にしてくれ
0021nobodyさん
2009/04/28(火) 15:39:37ID:???002219
2009/04/28(火) 15:40:57ID:???0023nobodyさん
2009/04/28(火) 16:53:54ID:7p1vmHWL再度質問させていただきます。
CSSファイルの特定のスタイルを取得したいと思います。
$css = 'a:link{background-color:#ffffff;color:#003399;}';
preg_match('/a:link{.*?color:#(.*?);/is',$css,$style);
とし、「color:#003399」の「003399」だけ取得したいのですが、
background-colorの方を取得してしまいます。
どういう正規表現を書けばいいのでしょうか?コードの指摘をお願いします。
002412
2009/04/28(火) 20:19:52ID:hPvdrkqO2回目以降のsession_start()はセッション変数の取り込みに奔走するんですね。
それでしたらわざわざ最後にunsetでセッション変数を破棄しなくても、
再度session_start()が実行されれば最新の$_SESSION['captcha_keystring']が
読み込まれて特に問題なく動作するような気がするんですが・・・
0025nobodyさん
2009/04/28(火) 20:38:49ID:???条件がよくわからんがa:linkに指定されたcolor値で#000000の形式のみを取得ってこと?
/a:link[^\}]*[^\-]color\s*:\s*#(\w{6})/is
002723
2009/04/28(火) 22:10:29ID:7p1vmHWLこういう書き方するんですね。勉強になりました。ありがとうございました。
0028nobodyさん
2009/04/28(火) 22:20:22ID:???とりあえず例題で動かしてから、自分でunset外して動作を見てごらん。
ソース眺めて悩むよりそっちの方が早いよ。
002912
2009/04/28(火) 23:31:23ID:hPvdrkqO↓のようにコメントアウトして実行してみました
//unset($_SESSION['captcha_keystring']);
結果は・・・、なぜか、というか予想通り何の問題もなく正常に動作しました。
やはり最後のセッション変数のunsetは不要だったんでしょうか。
あるいは古いブラウザでの互換性を重視しておまじない的に書いたんでしょうか。
0030nobodyさん
2009/04/28(火) 23:51:01ID:???そこで「なぜか」で止まっちゃダメだ。
$_SESSION['captcha_keystring']には、どの時点でどんな値が入っていたのか追ってみよう。
003112
2009/04/29(水) 03:02:23ID:I34g5E5l$_SESSION['captcha_keystring']にはアンセットされる直前までは
現在表示されてるものよりひとつ前のCaptchaの数字が格納されていました。
ただアンセットしてもしなくても次にsession_start()されるときに次のCaptchaの数字が
上書きされるようです。
う〜む・・・、なぜわざわざアンセットしているんでしょう( ´・ω・)・・・
0032nobodyさん
2009/04/29(水) 03:41:14ID:???0033nobodyさん
2009/04/29(水) 05:05:58ID:???0034nobodyさん
2009/04/29(水) 05:39:51ID:???0035nobodyさん
2009/04/29(水) 05:46:01ID:???0036nobodyさん
2009/04/29(水) 06:00:07ID:???>次にsession_start()されるときに次のCaptchaの数字が上書きされるようです。
違う。$_SESSION['captcha_keystring']をセットしてるのは誰かよーく調べてみなさい。
0037nobodyさん
2009/04/29(水) 06:20:53ID:???unset() はキーを発行する処理に対応してるから、そっちの実装を見ないと処理の流れは分からない
新規/リロードなら再発行、ポストなら検証までスルーって実装にすれば unset() いらなくなるかな
0038nobodyさん
2009/04/29(水) 06:30:11ID:???unsetしなかったら、同じキーで何度でも使えちゃうじゃん。
アカウント取り放題とか、メール出し放題とか。
キー値はサーバ側に保存しなきゃならんのだし、unsetまたはそれと同等な処理しなくて
良いパターンってないと思うけど。
0039nobodyさん
2009/04/29(水) 06:43:06ID:???発行と検証の2フェーズあって、検証中でなければ前回の残りがあったとしてもそれを破棄して再発行すればいいわけ
検証中で無いことは empty($_POST["key..]) && !isset($_SESSION['key..]) で判別可能
unset() をクライアントスクリプト側に任せているのは、例えば3回まではトライ可能、といった
キーを無効にするタイミングを選択できるようにしたいとかそういうことじゃないかと予想
0040nobodyさん
2009/04/29(水) 06:45:38ID:???× empty($_POST["key..]) && !isset($_SESSION['key..])
○ empty($_POST["key..])
再発行条件が empty($_POST["key..]) && isset($_SESSION['key..]) かなw
0041nobodyさん
2009/04/29(水) 06:53:22ID:???0042nobodyさん
2009/04/29(水) 07:00:53ID:???いや、機械と人間の識別に使うもの。
これだけだと、人間ならアカウント取り放題、メールし放題、コメントし放題だよ。
後半はその通り。
0044nobodyさん
2009/04/29(水) 07:37:23ID:sqsMUdXVオブジェクト指向とかさっぱりだし
ぶっちゃけ mysql_real_escape_stringで十分と思ってたら
えらい目に会いますか?
0046nobodyさん
2009/04/29(水) 12:10:15ID:???DB名:sample_db
テーブル名:sample_tbl
user名:sample
pass:pass
004746
2009/04/29(水) 12:10:56ID:5Db2GJA30049nobodyさん
2009/04/29(水) 13:24:45ID:???0050nobodyさん
2009/04/29(水) 13:24:55ID:???【PHP】Lvうpしたいので宿題ください
http://pc11.2ch.net/test/read.cgi/php/1147830986/
005146
2009/04/29(水) 13:49:34ID:5Db2GJA3移動します
すいませんでした
0052nobodyさん
2009/04/29(水) 16:23:34ID:???0053nobodyさん
2009/04/29(水) 16:25:55ID:???0055nobodyさん
2009/04/29(水) 23:16:13ID:bTfRl/qJどうしたらいいですか?
たとえば、Content-Script-Type: text/javascriptをheaderで吐いてから、
ケータイなので取り消したい場合などです
0056nobodyさん
2009/04/29(水) 23:19:19ID:???0057nobodyさん
2009/04/29(水) 23:20:27ID:???0059nobodyさん
2009/04/29(水) 23:26:01ID:???取り消しはできんと思うが、 headerを実行するタイミングはずらせたはず。
http://jp.php.net/manual/ja/function.ob-start.php
0060nobodyさん
2009/04/29(水) 23:49:25ID:???0061nobodyさん
2009/04/29(水) 23:50:48ID:sqsMUdXVなるほど。ありがとうです
0063nobodyさん
2009/04/30(木) 11:53:33ID:29t/7geC$foo=array(
"A" => 60,
"B" => 20,
"C" => 10,
"D" => 7,
"E" => 3,
);
$r = rand(1, 100);
foreach($foo as $k => $v){
if($r<=$v){
$ans=$k;
break;
}
$r-=$v;
}
echo $ans;
006463
2009/04/30(木) 11:56:30ID:29t/7geC$rに1〜100まで範囲でランダムで数字を代入します
foreachで$fooのキーと値を回していき、値がランダムの数字$rより低いか同じなら$キーを表示します
>>63のコードは確率のアルゴリズムでありますでしょうか?
0065nobodyさん
2009/04/30(木) 12:00:36ID:???質問の意図がイミフなんだが。
0066nobodyさん
2009/04/30(木) 12:09:31ID:???0068nobodyさん
2009/04/30(木) 12:32:14ID:29t/7geCこれで確率が出せるのかがわかりません
0069nobodyさん
2009/04/30(木) 12:38:19ID:???0070nobodyさん
2009/04/30(木) 12:41:55ID:???65 名前:nobodyさん[sage] 投稿日:2009/04/30(木) 12:00:36 ID:???
は?
質問の意図がイミフなんだが。
0071nobodyさん
2009/04/30(木) 12:44:25ID:???0072nobodyさん
2009/04/30(木) 12:44:46ID:???$foo=array("A" => 60, "B" => 20, "C" => 10, "D" => 7,"E" => 3,);
function castFuckinDice($foo) {
$r = rand(1, 100);
foreach ($foo as $k => $v){
if($r<=$v){
$ans=$k;
break;
}
$r-=$v;
}
return $ans;
}
foreach ($foo as $k => $v) {
$encounter[$k] = 0;
}
$max_trials = pow(2, PHP_INT_SIZE * 8) / 2;
for ($i=0; $i < $max_trials; $i++) {
$spot = castFuckinDice($foo);
$encounter[$spot] ++;
foreach ($foo as $k => $v) {
$ratio = $i ? $encounter[$k] / $i : 0;
printf("[%s]: %02.1f ", $k, $ratio * 100);
}
echo "\r";
}
0073nobodyさん
2009/04/30(木) 12:45:25ID:29t/7geC$rの値が1〜60の場合ですと当たりってことですよね
Bと20のときは1〜20のときが当たりってことですよね
ってことはAの60%から判定されるってことで完全な確率のアルゴリズムではない気がするのです
0074nobodyさん
2009/04/30(木) 12:46:41ID:29t/7geCすみません、私の説明ではこれ以上無理なのでここ読んできてください
ttp://q.hatena.ne.jp/1170658225
0076nobodyさん
2009/04/30(木) 12:52:14ID:29t/7geC$fooの配列の戦闘は"A"=>60なのでforeachで回すと"A"=>60のところから回ります
0078nobodyさん
2009/04/30(木) 12:53:44ID:???0079nobodyさん
2009/04/30(木) 12:54:06ID:???"A"=>60のところから回って
1〜100からランダムに得た値と比較して小さかったらそれを答えとするんだから60%じゃん
0081nobodyさん
2009/04/30(木) 13:13:35ID:???0082nobodyさん
2009/04/30(木) 13:15:48ID:???どの目が出るかは rand(1, 100) を実行した時点で決まる
あとは検証してるだけなので、どのアルファベットから始めても確定した過去は変わらない
狐につままれたように思っているのは確率分布の上側を除いていく処理が、なぜ指定された割合と一致するのかということだと予想
これが確率論から導けるのか、それともたまたま計算結果が一致する別のアルゴリズムなのか
それが「この処理は確率のアルゴリズムであるのか?」という表現に至ったのではないかね
0083nobodyさん
2009/04/30(木) 13:22:20ID:???>>68
出せます。安心してお使いください。
0084nobodyさん
2009/04/30(木) 13:22:21ID:???他人に対する配慮が足りない.
0086nobodyさん
2009/04/30(木) 13:24:45ID:???ttp://114.182.140.15/~user/public_html/cgi-bin/bbs18/bbsdata/20.gif
0087nobodyさん
2009/04/30(木) 13:25:14ID:2iRqPJM5突っかかる部分もありますが、納得できましたので閉めます
0091nobodyさん
2009/04/30(木) 13:28:58ID:???0092nobodyさん
2009/04/30(木) 13:30:05ID:???人に教えてもらったコードなんですがこのアルゴリズムでなぜ確率が計算できるのですか?
0093nobodyさん
2009/04/30(木) 13:30:51ID:???0097nobodyさん
2009/04/30(木) 14:24:02ID:???1から100までの数からランダムに選択したら、それが60以下である確率は0.6であるというのは明白だろう
この性質を利用して、「60以下である」という条件をAに結びつけ、60以下の数ならAを返すようにする
これはAが60%で出現するということと等価だ
ある数が、60以下ならすぐ終了
60以上ならそこから60を引いて、次にそれが20以下かどうか調べる
Ex. ある数が88なら、60以下か検証、違うから60を引いて28、20以下じゃないので20を引いて8、10以下なのでCを返す
というわけでそのループは、与えられた数が基準より小さいかを効率よく調べるアルゴリズムであって、確率の計算ではない
確率が得られているのは全て rand() に依る
その確率をアルファベットに結び付けているのがこのアルゴリズムというか処理ということになる
と俺なら考えるが、アルゴリズムがなぜ動くかなんて自分の頭で納得するしかないよ
0098nobodyさん
2009/05/01(金) 15:12:10ID:???0099nobodyさん
2009/05/01(金) 20:43:21ID:???PHPの時代は終わりでしょうか
0100nobodyさん
2009/05/01(金) 20:50:02ID:???たまにくだらない話題で議論はじまって100スレぐらい一気に伸びるだけ
0101nobodyさん
2009/05/01(金) 21:28:59ID:???0102nobodyさん
2009/05/01(金) 21:46:18ID:???0103nobodyさん
2009/05/02(土) 08:08:46ID:???0104nobodyさん
2009/05/02(土) 08:27:18ID:???マインドは冷え込んでるのは間違いないし、金のかかるJavaさんはもう論外になってる
0105nobodyさん
2009/05/02(土) 08:29:37ID:???もってあと一ヶ月だな俺。
0106nobodyさん
2009/05/02(土) 11:57:49ID:???>63
$rを減算する処理が直感的じゃないな。良くないアルゴリズムの部類に入る。
実際>63は意図を読み取れなかったわけだし。
性能上も、$rへの再代入が発生するので最適化がかけづらいはず。
正しく動くプログラムはサルにでも書ける。いいプログラマは人間に理解できるプログラムを書く。
0108nobodyさん
2009/05/02(土) 12:46:46ID:???0109nobodyさん
2009/05/02(土) 13:13:06ID:???安かろう悪かろうのPHP使うぐらいならJava採用する企業のほうが多いだろ
バグバグによる経済的損失に比べたらその単価差なんてたいしたことない
0110nobodyさん
2009/05/02(土) 13:23:21ID:???0111nobodyさん
2009/05/02(土) 13:32:03ID:???小規模案件はどうだろうな。大規模がスケールダウンして降ってくる数とやめる数とで、あんまり総数は変わらない気がする。
あと、PHPは始まってすらいないが、Javaは終わりつつあると思う。
いや、COBOLだってまだ頑張ってるんだし、俺らの現役期間中に食いっぱぐれる事は無いと思うけどな。
0112nobodyさん
2009/05/02(土) 13:53:15ID:???そんなに開発しやすいのかねアレ。
0113nobodyさん
2009/05/02(土) 17:10:55ID:???Webで.Netはそんな多くはないぞ?
0114nobodyさん
2009/05/02(土) 17:20:42ID:???社内システムとWEBシステムが連動し始めたってのもあるかもしれんが。
0115nobodyさん
2009/05/02(土) 17:30:09ID:???こちらへどうぞ
さまざまな言語仕様について熱く語る闘技場
http://pc11.2ch.net/test/read.cgi/php/1228709756/
0116nobodyさん
2009/05/02(土) 17:49:37ID:???0117nobodyさん
2009/05/02(土) 18:14:13ID:???こちらは質問スレですのね
0118nobodyさん
2009/05/02(土) 18:19:37ID:???0119晒し上げ
2009/05/02(土) 18:23:27ID:???言語仕様について熱く語ってるわけじゃないだろ
118 名前:nobodyさん[sage] 投稿日:2009/05/02(土) 18:19:37 ID:???
休みになると現れる仕切り厨(笑)
0120nobodyさん
2009/05/02(土) 18:27:39ID:???0121nobodyさん
2009/05/02(土) 19:37:00ID:???言語仕様について熱く語ってるわけじゃないだろ
118 名前:nobodyさん[sage] 投稿日:2009/05/02(土) 18:19:37 ID:???
休みになると現れる仕切り厨(笑)
120 名前:nobodyさん[sage] 投稿日:2009/05/02(土) 18:27:39 ID:???
よほど悔しかったらしい(笑)
0122nobodyさん
2009/05/02(土) 20:01:23ID:???0123nobodyさん
2009/05/02(土) 20:28:58ID:???0124nobodyさん
2009/05/02(土) 20:38:22ID:???言語仕様について熱く語ってるわけじゃないだろ
118 名前:nobodyさん[sage] 投稿日:2009/05/02(土) 18:19:37 ID:???
休みになると現れる仕切り厨(笑)
120 名前:nobodyさん[sage] 投稿日:2009/05/02(土) 18:27:39 ID:???
よほど悔しかったらしい(笑)
116 名前:nobodyさん[sage] 投稿日:2009/05/02(土) 17:49:37 ID:???
言語仕様について熱く語ってるわけじゃないだろ
118 名前:nobodyさん[sage] 投稿日:2009/05/02(土) 18:19:37 ID:???
休みになると現れる仕切り厨(笑)
120 名前:nobodyさん[sage] 投稿日:2009/05/02(土) 18:27:39 ID:???
よほど悔しかったらしい(笑)
0125nobodyさん
2009/05/02(土) 23:56:48ID:???0126nobodyさん
2009/05/03(日) 00:42:12ID:???0128nobodyさん
2009/05/03(日) 11:54:09ID:???回答者が基地外
そんなスレにふさわしくないスレタイ
0129nobodyさん
2009/05/03(日) 12:18:46ID:???0130nobodyさん
2009/05/03(日) 12:23:37ID:???・マニュアル君(出現率はドラクエのスライム並)
・親切クン
・ググレカス君
・ヤフレカス君(はぐれメタル級に出現率低い)
0131nobodyさん
2009/05/03(日) 12:27:33ID:???0132nobodyさん
2009/05/03(日) 12:29:11ID:???・あげ足鳥クン
・御前モナ君
・嵐君
0133nobodyさん
2009/05/03(日) 12:46:55ID:???0135nobodyさん
2009/05/03(日) 13:16:57ID:???これ以外信用できるソースないんだから。
0136nobodyさん
2009/05/03(日) 13:18:35ID:???0137nobodyさん
2009/05/03(日) 13:30:00ID:???マニュアルへのリンクがあると確認しやすいって感じかね。
0138nobodyさん
2009/05/03(日) 14:50:46ID:???初心者の僕には優しかったです。
0139nobodyさん
2009/05/03(日) 17:51:21ID:???configureオプションについて詳しく載ってるサイトない?
0140139
2009/05/03(日) 18:08:00ID:???逝ってくる
0141nobodyさん
2009/05/03(日) 19:15:34ID:XBo5LqsHexecとかsystemだと出来ないようなので。
0142nobodyさん
2009/05/03(日) 19:15:55ID:RlajZjKv!!!
そんなバカな
0144nobodyさん
2009/05/04(月) 00:21:29ID:???http://qb5.2ch.net/test/read.cgi/saku/1031353962/349
0146nobodyさん
2009/05/04(月) 17:00:33ID:???ファイル単体で動作しないようにしたいのですが
0147146
2009/05/04(月) 17:13:32ID:???0148146
2009/05/04(月) 17:25:08ID:h7Ju90Gxまだ解決してないです。
0151nobodyさん
2009/05/04(月) 17:50:50ID:???$_SERVER['SCRIPT_NAME']が自ファイル名ならNG、セットされてなければ
ウェブ経由じゃないからNG、それ以外で実行できるようにすればいいじゃん
ほかにもいっぱい方法あるだろ
0153nobodyさん
2009/05/04(月) 18:33:46ID:???実行されたくないって話なら、ブラウザからアクセスできないディレクトリに
置いとくのが定石じゃない。
0154nobodyさん
2009/05/04(月) 18:39:10ID:???それは、首がもげるほど正論なんですが、
ブラウザからアクセスできないところにファイルを
置けないレン鯖とかもあったりするわけで……。
0155nobodyさん
2009/05/04(月) 18:51:41ID:???スレチになっちゃうんで、あんまり詳しくは聞かないけど、 PHPは使えるけど、
htaccess でaccess denyできないレンタルサバとかも多いの?
0156nobodyさん
2009/05/04(月) 19:12:05ID:???単純にincludeファイルは.incにしてそれをはじけばいいんではないの?
<Files ~ "\.inc$">
deny from all
</Files>
0158nobodyさん
2009/05/04(月) 20:45:35ID:???0162161
2009/05/04(月) 23:48:03ID:???違うスレの146なので気にしないでね
0163nobodyさん
2009/05/05(火) 00:00:12ID:???0165nobodyさん
2009/05/05(火) 03:23:06ID:GwyMTYkXrename("./filebox/A.txt", "./filebox/B.txt");
このようにあらかじめ「B.txt」と変更後のファイル名が決まっていればいいのですが
決まっていない場合に$で変数を使ってファイル名には出来ないのですか?
rename("./filebox/A.txt", "./filebox/$hen.txt");
とかやっちゃうと「$hen.txt」が出来上がってしまうので・・悩んでます。
よろしくお願いします。
OS CentOS 5.1
PHP 5.2.6
なおパーミッション関連は間違いなく合っています。
0166nobodyさん
2009/05/05(火) 03:28:27ID:???rename("./filebox/A.txt", "./filebox/".$hen.".txt");
でやってみ
0167nobodyさん
2009/05/05(火) 03:57:18ID:GwyMTYkXあっ、出来た。有難うございました。こういうやり方もあるんですね、勉強になりました。
0168nobodyさん
2009/05/05(火) 05:08:31ID:9NxYpwlu0169nobodyさん
2009/05/05(火) 05:10:05ID:???0170nobodyさん
2009/05/05(火) 05:25:42ID:???明示的な指定は${var_name} の形式だけにして欲しかった。
0171nobodyさん
2009/05/05(火) 06:15:47ID:???0172nobodyさん
2009/05/05(火) 06:54:47ID:???解決したからもう興味ないだろうけど、ざっと見とくと良いよ。
http://jp.php.net/manual/ja/language.types.string.php#language.types.string.parsing
0173nobodyさん
2009/05/05(火) 12:13:25ID:???$path = "./filebox/";
$bfile = "A.txt";
$rfile = "B.txt";
rename("$path.$bfile", "$path.$rfile");
0174nobodyさん
2009/05/05(火) 12:16:27ID:nXqml1BJ0176nobodyさん
2009/05/05(火) 12:19:10ID:???$bfile = "A.txt";
$rfile = "B.txt";
rename($path.$bfile, $path.$rfile);
0179nobodyさん
2009/05/06(水) 01:02:20ID:???スキャンしたものとかは無理だがw
0180nobodyさん
2009/05/06(水) 01:42:14ID:???0181nobodyさん
2009/05/06(水) 07:08:02ID:???こういうOCRライブラリに投げて読ませれてばいいんでないの?
ttp://code.google.com/p/ocropus/
独自ライブラリ使ってるだろうけどキャプチャもとっくに破られてるらしいからね
0182nobodyさん
2009/05/06(水) 07:27:33ID:???0183nobodyさん
2009/05/06(水) 07:34:32ID:???0185nobodyさん
2009/05/06(水) 12:33:01ID:???キャプチャ破りしか思いつかないのは自分はクラッカー気取りだからじゃないの?wwwwwwwwwwwwwwwwwwwwwwwww
0188nobodyさん
2009/05/06(水) 17:21:55ID:???peclのzip関数をレンタル鯖で使いたいのですが、初期状態では導入されていないみたいです。
linuxも詳しくないのですが、とりあえず「/usr/local/bin/pecl」は発見しまた。
あとはzip.soを発見してextentions dirに設定すれば動くかなと思ったんですが、zip.soが見つかりませんでした。
これ、何とかして導入する方法はありませんでしょうか?
ちなみにphp上で無理やり「pecl install zip」して見ましたがやっぱりだめでした。
もしくは、PHP5 MySQL peclのZIP拡張の入ってるレンタル鯖(年1万以下)ってあります?
0189188
2009/05/06(水) 17:22:50ID:hSw36pLb0190nobodyさん
2009/05/06(水) 17:44:26ID:???0191nobodyさん
2009/05/06(水) 19:07:01ID:???それが何とかできたら怖いわw
レン鯖と同じ環境のサーバー立ててコンパイルしたso持っていくって
手段は無くも無いが、怒られてアカ剥奪されても知らん。
あとレン鯖探したいなら板違い。
0192nobodyさん
2009/05/06(水) 19:13:40ID:???他の人も書いてるとおり、レンタルサーバ探しは、ここで聞いても無駄だけどさ。
0193nobodyさん
2009/05/06(水) 19:19:31ID:???0194nobodyさん
2009/05/06(水) 19:25:00ID:???そんなんあったっけ?
どれ?
http://jp.php.net/manual/ja/refs.compression.php
0195nobodyさん
2009/05/07(木) 03:15:22ID:re6YnlTy【PHPのバージョン】PHP Version 5.2.6
【連携ソフトウェア】mysql5
【質問内容】
ttp://php.dori-mu.net/search.html
ここを見て勉強してるんですが実行すると「Error: invalid method」とブラウザに
表示され、先に進めません。apacheのログを見ると
Undefined variable: REQUEST_METHOD in *** search.php on line 18
との事でぐぐってみたらphp.iniのエラーレベルを変更する事で解決できる場合も
あるようですが、私の場合はやはり同じでした。ソースを見てわかる方がいたら
修正箇所などを教えて頂けませんか?
ソースはttp://php.dori-mu.net/source/source.php?src=search/search.phps
のものを丸写ししています。
Mysql絡みですが、問題はphpだと重いましたのでここで質問しました。
0196nobodyさん
2009/05/07(木) 03:25:00ID:???あとその下のフォームの値も全部$_POSTで
0197nobodyさん
2009/05/07(木) 04:00:17ID:re6YnlTy出来ました!感謝。
まだ勉強を始めて10日ほどですがぼちぼちがんばります。
0198nobodyさん
2009/05/07(木) 15:01:14ID:???以下のようなコードを書いたのですが、Apache上で動作させるとスタック不足で落ちてしまいます。
(ApacheのStatusコード:3221225725)
もっとリソースを食わないようにするにはどうすべきでしょうか?
今使っている環境は PHP5.2.9-1 Apache2.2.11 Vista(32bit) Homeです。
$str = '"'.str_repeat("あいうえお", 10).'"';
preg_match('/(([^\"]|\"\")*)\"/A', $str, $matches, PREG_OFFSET_CAPTURE, 1);
これぐらいだったら、正規表現あきらめて、コリコリ書いた方がいいのかなぁ。
0199nobodyさん
2009/05/07(木) 15:02:34ID:PzaIUqbEよろしくお願いします。
0200198
2009/05/07(木) 15:04:46ID:???$str = '"'.str_repeat("あいうえお", 10).'"';
ぐらいなら動きます。これを
$str = '"'.str_repeat("あいうえお", 100).'"';
とかにすると落ちます。
重ね重ねすいません。
0201nobodyさん
2009/05/07(木) 16:17:39ID:PzaIUqbEお騒がせしました。
0202nobodyさん
2009/05/07(木) 22:07:21ID:t+SeaAR0竹康至ってこれ?
722 :2ちゃんねらーの家公開中:2008/08/18(月) 10:01:23 ID:kkpaqZPt
narumiyastorys:アンコレレイティド
narumiyastorys:本名 タケヤスシ
narumiyastorys:住所 東京都国立市富士見台2丁目7-6
google地図ストリートビューってすごい(家が丸見え)
http://maps.google.co.jp/maps?f=q&hl=
ja&geocode=&q=%E5%9B%BD%E7%AB%8B%E5%B8%82%E5%AF%8C%E5%A3%AB%E8%A6%8B%E5%8F%B0%EF%BC%92%E4%B8%81%E7%9B%AE%EF%BC%97%EF%BC%8D%EF%BC%96&sll=36.5626,136.362305&sspn=35.739407,54.84375&ie=UTF8&ll=35.685553,139.446394&spn=0.008889,0.01339&z=16&iwloc=addr
0203nobodyさん
2009/05/07(木) 23:00:22ID:ymUWK2Mh入っているプロバイダ経由でローカルサーバにアクセスすることは可能でしょうか?
ローカルサーバですけどアクセス解析にはプロバイダのipでログつけたいと思います
どなたかよろしくお願いします
0204nobodyさん
2009/05/08(金) 00:06:37ID:???0205nobodyさん
2009/05/08(金) 04:27:45ID:8b2MJ03K/usr/local/lib/php/
がインクルードパスに設定されているようなのですが、
php.iniを見ても、このディレクトリをインクルードパスに設定している箇所がありません。
include_pathの設定は;でコメントアウトされています。
どこで設定されているのでしょうか?
0206nobodyさん
2009/05/08(金) 10:09:23ID:???とりあえず本当にパスが通ってるのか phpinfo() で確認したら?
include_path はPHP_INI_ALLだから、アチコチで設定できちゃうんだけどさ。
0207nobodyさん
2009/05/08(金) 13:57:36ID:PQMR/gr5[300] => "ほげ"
[20] => "ほげ"
[74] => "ほげ"
)
みたいな連想配列を、連想インデックスを保持しつつキーでソートするにはどうしたらいいの?
こんな感じで。
Array(
[20] => "ほげ"
[74] => "ほげ"
[300] => "ほげ"
)
uasortのユーザー比較比較関数は配列の値しか渡されないみたいで、キーで比較は出来ないみたいだし。
0209nobodyさん
2009/05/08(金) 14:06:37ID:???0210nobodyさん
2009/05/08(金) 14:22:40ID:PQMR/gr5ありがとう。
0211nobodyさん
2009/05/08(金) 15:04:32ID:???{
////////////////////
}
上記のaddOptionメソッドにcommandOption $optionという引数を
与えていますが、どういう意味でしょうか。
0212nobodyさん
2009/05/08(金) 15:07:30ID:???前後分からないと言えないぞ
0213211
2009/05/08(金) 15:07:33ID:???スレ汚しサーセン
0214nobodyさん
2009/05/08(金) 15:08:26ID:???最近マナーひどいなほんと
0215211
2009/05/08(金) 15:10:53ID:???わからないから教えてほしいって書けばいいのに
0216211
2009/05/08(金) 15:14:54ID:???213は偽者
class aのメソッドにそんな記述があったんだけど、
これはキャストしているんですか?
0217nobodyさん
2009/05/08(金) 15:15:33ID:???0218nobodyさん
2009/05/08(金) 15:21:48ID:wSZsV7AiID出せばいいんだろ氏ねよ無知の分際で
答えられないなら黙ってロムってろよ
気分が胸糞悪いな
0219nobodyさん
2009/05/08(金) 15:23:10ID:???ではさようなら
0220nobodyさん
2009/05/08(金) 16:24:16ID:???荒らしに相当する。一体なんなの?
0221nobodyさん
2009/05/08(金) 16:25:19ID:???0222nobodyさん
2009/05/08(金) 16:49:35ID:???つhttp://www.php.net/manual/ja/language.oop5.interfaces.php
0223nobodyさん
2009/05/08(金) 17:06:09ID:???質問がイマイチ曖昧だけど、書式について聞いてるなら、PHPでも型チェックが導入されてたはず。
ただ、マニュアルにはどこに書いてあるのか見つけられんかったが。
0224nobodyさん
2009/05/08(金) 18:58:52ID:???$optionがcommandOptionのインスタンスでなきゃいけんということ。
おまいらグダ巻いてないで教えてやれよ
0226nobodyさん
2009/05/08(金) 20:03:01ID:tCM7CGYmどうすればいいでしょうか
http://qqy.blog102.fc2.com/具体的にはこのサイトなのですが、
どうぞよろしくお願いします<m(__)m>
0227nobodyさん
2009/05/08(金) 20:12:28ID:???http://www.php.net/manual/ja/language.oop5.typehinting.php
↓intやstringがない理由
0228nobodyさん
2009/05/08(金) 20:43:37ID:gndL9SHG【PHPのバージョン】php5
【連携ソフトウェア】なし
【質問内容】 文字列操作の仕方について教えて下さい。
次の三つの文字列がある場合に、
(1) 東京都港区麻布1-5-3
(2) 東京都港区西麻布1-3-5
(3) 東京都港区麻布1-2
処理結果として、三つの変数に共通の「東京都港区」だけ抽出したいのですが、
どのような考え方で実装すれば良いでしょうか?
数学でいう最小公倍数みたいな?考え方です。
宜しくお願いします。
0229nobodyさん
2009/05/08(金) 21:14:53ID:???最長共通文字列を求めたいということならアルゴリズムの問題だから、
LCS(Longest Common Subsequence)問題とかで検索してみたらいいよ。
3つ以上だとどうやるのか知らないけど。
0230nobodyさん
2009/05/08(金) 21:17:05ID:???0231nobodyさん
2009/05/08(金) 21:18:56ID:???0233nobodyさん
2009/05/08(金) 23:18:02ID:???(1)と(2)と(3)の共通文字列は、「(1)と(2)の共通文字列」と「(3)」との共通文字列に等しいはずだ。
4つ以上でも同じ。
(1)と(2)の共通文字列を求め、それと(3)の共通文字列を求め、それと(4)の共通文字列を求め…と繰り返せばいい。
0234nobodyさん
2009/05/08(金) 23:21:44ID:???http://jp.php.net/manual/ja/function.simplexml-load-file.php
0235nobodyさん
2009/05/08(金) 23:34:43ID:gndL9SHGアルゴリズムの問題ですか....LCS問題・・・
調べて見たのですが、C系で実装されているサンプルはありましたが、
phpでは見つかりませんでした。理解しながら、phpに実装するのは結構大変そうですね。
先頭からではなく、文中からの一致も必要なのですが、
思った以上に難しくて冷や汗です。
追記しますと、10000件以上対象がありまして、
先ほどの例ですと、東京都港区麻布なら2件一致、東京都港区なら3件一致、
と最小+最小から2番目、3番目・・・とできればやりたいのですが、
もっと難しいですよね。う〜ん、困りました。
0236nobodyさん
2009/05/09(土) 00:05:40ID:???いっそ部分文字列を全パターン切り出して、それをキー値にした配列で個数数えたら?
注意しないと東京都西東京市とかは「東京」がダブルカウントされてしまうが。
0237nobodyさん
2009/05/09(土) 00:13:09ID:???0238nobodyさん
2009/05/09(土) 00:41:11ID:???完全にアルゴリズムの世界なので、C、C++、Javaでしかサンプルは存在しないと考えたほうがいい。
つうか、その例だと先頭からの一致しか見てない気がするのだが。
「大阪府大阪市港区」「愛知県名古屋市港区」「東京都港区」の共通文字列は?「港区」検出したいのか?
0239nobodyさん
2009/05/09(土) 01:01:54ID:???0240nobodyさん
2009/05/09(土) 03:11:42ID:6UxgjX3A自分をincludeしたファイルのパスを知りたいのですが、
どうすれば分かるでしょうか?
0241nobodyさん
2009/05/09(土) 05:49:41ID:???includeしても実行ディレクトリは親だとおもうけど
0243nobodyさん
2009/05/09(土) 08:09:07ID:???0244nobodyさん
2009/05/09(土) 09:57:54ID:???0245nobodyさん
2009/05/09(土) 12:56:31ID:???試してないけど
inc.php
<?php
$filepath = __FILE__;
hoge.php
<?php
incude_once('./fuga/inc.php');
echo $filepath
hoge.phpへのパスが返ってきちゃうか不安だけど。
0247nobodyさん
2009/05/09(土) 12:59:05ID:???0249nobodyさん
2009/05/09(土) 21:36:48ID:xpzC4uCd【PHPのバージョン】php5.29
【質問内容】JISからUTF-8の変換について
質問です。
IRCから受け取った文字列を処理したいのですが、mb_detect_encoding()で受け取った文字列の文字コードを調べたところJISと表示されたので
mb_convert_encoding($data->message,"JIS","UTF-8")のように変換しようとしても変換後の文字列は相変わらずJISになってしまいます。
JIS->UTF-8は他の変換方法があるのでしょうか?
0250nobodyさん
2009/05/09(土) 21:41:49ID:???string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )
0251nobodyさん
2009/05/09(土) 22:20:39ID:???その通りでしたーっ!
いや、なんかC出身なせいか関数(src,dst)っていう先入観が…
言い訳ですよねリファレンスくらいよめよksgですよね
0253nobodyさん
2009/05/09(土) 23:20:03ID:xpzC4uCd仕事?よくわからないですけどただの趣味です。
PHP始めたばっかりでIRCbotでも作ってみようかなと
0254nobodyさん
2009/05/10(日) 01:06:03ID:???引数順序カオスだよなぁ、PHP。
多量の引数を取る関数が多いってのもあるが。
0255nobodyさん
2009/05/10(日) 08:31:15ID:???いまだにエディタしょぼいが
0256nobodyさん
2009/05/10(日) 14:52:43ID:???PHP6ではユニコードになるらしいから新しいマルチバイト命令でるかもね。
0257nobodyさん
2009/05/11(月) 00:53:38ID:r24gXu9ahoge.sort(function(a, b) {return (a > b) ? -1 : 1;})
こんな風に、そのソート関数だけで有効なユーザー定義ソート関数が使えるけど
phpではどうやるの?
function cmp($a, $b){return ($a < $b) ? -1 : 1;}
usort($hoge, "cmp");
だと、他の場所にcmpという関数が無いか気にする必要があるし。
025828
2009/05/11(月) 01:01:59ID:???>257
class mySort
{
public static function cmp($a, $b){return ($a < $b) ? -1 : 1;}
}
usort($hoge, array('mySort', 'cmp');
0259nobodyさん
2009/05/11(月) 01:48:59ID:???usort($arr, function($a, $b){ return $a - $b; });
0260nobodyさん
2009/05/11(月) 02:03:26ID:???php5.3まで待ちます…
0261nobodyさん
2009/05/11(月) 03:00:53ID:???0262nobodyさん
2009/05/11(月) 03:35:39ID:3RhlII/wsrc/php-5.3.0RC2/ext/mbstring/mbstring.c:4757: error: `php_mb_encoding_detector' undeclared (first use in this function)
src/php-5.3.0RC2/ext/mbstring/mbstring.c:4758: error: `php_mb_encoding_converter' undeclared (first use in this function)
どなたか解決策ご存じでしょうか?
0263nobodyさん
2009/05/11(月) 11:00:53ID:thXXZ3vj変更点を確認したいのですが、日本語で記述しているページはないでしょうか?
http://www.php.gr.jp/も日本語ではなく、変更点の記述場所へのリンク(リンク先は英語)です。
0264nobodyさん
2009/05/11(月) 11:08:58ID:???ほとんど箇条書きだし読めるべ?
0266nobodyさん
2009/05/11(月) 17:48:55ID:???PHPは今や完全に時代遅れなのに、そこそこにこのスレが伸びるのはなぜですか?
0267nobodyさん
2009/05/11(月) 17:52:15ID:???0272nobodyさん
2009/05/11(月) 18:06:42ID:???お前は何を言ってるんだ
0273nobodyさん
2009/05/11(月) 18:09:14ID:???学歴ネタは結構スレ伸びるよw
0274nobodyさん
2009/05/11(月) 18:14:58ID:???古いCMを思い出してしまった
0275nobodyさん
2009/05/11(月) 18:24:06ID:???英語で読めと言ってもしょうがない
0276nobodyさん
2009/05/11(月) 18:26:46ID:???お前がクズなのはわかったからこれからは読む努力
をすればいいんじゃない>>275
0277nobodyさん
2009/05/11(月) 18:43:48ID:???でも努力するまでもないよ、読むのは。
0281nobodyさん
2009/05/11(月) 18:49:34ID:???これPHPでどう書きますか?
0282nobodyさん
2009/05/11(月) 18:50:01ID:???あとID
0284nobodyさん
2009/05/11(月) 18:57:03ID:???0285281
2009/05/11(月) 19:25:34ID:xMuv+rlfrequire 'statistics2'
def ci_lower_bound(pos, n, power)
if n == 0
return 0
end
z = Statistics2.pnormaldist(1-power/2)
phat = 1.0*pos/n
(phat + z*z/(2*n) - z * Math.sqrt((phat*(1-phat)+z*z/(4*n))/n))/(1+z*z/n)
end
0287281
2009/05/11(月) 19:44:54ID:xMuv+rlf丁重なご回答ありがとうございます。
無事解決いたしました。
0288nobodyさん
2009/05/12(火) 01:30:22ID:???だいじょうぶ、だいじょうぶ。
あいつら、プログラマ板にいくと
すぐにおとなしくなるから。
「自分よりレベルの高いやつがいないな?」
と思うと、とたんに暴れだす。
「自分よりレベルの高いやつがいるな?」
と思うと、とたんにおとなしくなる。
それがwebプログラマ。
だからレベルの高い集団に放り込んだほうが良い。
0289nobodyさん
2009/05/12(火) 09:35:55ID:V/2qAUy/シバンを書くと、sapiで実行した時にそれが文字として表示されてしまいます
こういう場合シバンなしにするしかないですか?
0290nobodyさん
2009/05/12(火) 12:37:04ID:fpNhR8wCSession_startの前に、何かが宣言されているとのこと。
何が原因だかわかる方いらっしゃればお教え願います
0291nobodyさん
2009/05/12(火) 12:40:15ID:lKlDjO5N以下を確認しる
・session_start()の前にrequire_onceなどが入っていないか。そのrequire_onceで何か出力していないか
・headerなど出力していないか←これもアウトだったよな、今確認できね
・文字コードがUTF-8でBOMがついていないか(BOMついてると最初に2〜3バイトくらい出力してるはず)
0292軟式PHP ◆YgAn9/gytI
2009/05/12(火) 15:18:28ID:???0293nobodyさん
2009/05/12(火) 17:54:53ID:/A/mUsdc以前perlを使ってた時はLWP::Simpleで2行くらいでできたのですが
どなたかご教授願います
0294nobodyさん
2009/05/12(火) 17:55:25ID:lKlDjO5N$_POSTと$_GETのこと?
0295nobodyさん
2009/05/12(火) 18:02:21ID:???1行でできるよ
0296nobodyさん
2009/05/12(火) 18:04:56ID:???http://jp.php.net/manual/ja/wrappers.php
http://jp.php.net/manual/ja/book.curl.php
0297質問です
2009/05/12(火) 22:48:27ID:Ttdyz3C0【症状】 ファイルアップロード時、IEのみページ内リンクへ飛ばせない。
------------------------------------------------------------------
【 PHP 】
if (is_set($_FILES)){
header("Location:test.php#koko");
}
【 HTML 】
<form method="post" action="test.php" enctype="multipart/form-data">
<input type="file" name="test_file" />
<input type="submit" value="投稿" />
</form>
・
・
・
<a name="koko">ここ</a>
------------------------------------------------------------------
Fx、Opera、safariなどは「ここ」へ飛ぶのですが、
IEのみ飛ばず、URLも#以降が消えています。
解決方法があれば教えてください。
0298nobodyさん
2009/05/12(火) 23:00:41ID:???0299297
2009/05/12(火) 23:11:23ID:Ttdyz3C0ページ内リンクって仕様外のことだったんですか?
知りませんでした。ありがとございます。
つまり、飛ばないIEの挙動が正しいってことだったのか……。
0300nobodyさん
2009/05/12(火) 23:14:45ID:Og9YKcWqレスポンスヘッダとレスポンスボディの両方を取得したいんですがどうすればいいんですかね?
get_headers()だとヘッダしか取得できず、
ile_get_contents()だとボディしか取得できない
両方を一度のリクエストで取得したいのです
0301nobodyさん
2009/05/12(火) 23:20:04ID:???0302nobodyさん
2009/05/12(火) 23:29:48ID:???試した感じheaderでアンカー付きで飛ばした時、IE8でも正常に動作するっぽいけどなぁ。
>>300
使ったこと無いけどcurlとかどうなの?
0303nobodyさん
2009/05/12(火) 23:42:50ID:KBOzcqjj同じスクリプトで調べると、1分置きに24時間計測して大体0.20秒です。
(2) 他に別のプロバイダーからそのスクリプトにアクセスしてレスポンスが帰ってくるまでの時間を
1分置きに24時間計測して大体0.40秒です。
この0.2のタイムラグは、通信関係の遅延だと思いますが、
1日に20回程度(2)で測ったタイムの中で5秒を超えるものがあります。
(1)では、3回程度です。
この違いは、どこから来るのでしょうか?
改善する方法はありますか?原因が不明で困っています。
宜しくお願いします。
0304nobodyさん
2009/05/12(火) 23:53:15ID:???webサーバーで定期的に何らかのプログラムが動いていて、その際に一時的に高負荷になっているんだろう。
例えばアクセスログの集計プログラムとかな。
つうか、実行時間計測なら素直にxdebugでプロファイル取れ。
0305nobodyさん
2009/05/13(水) 04:40:45ID:???アンカーはブラウザが解釈する物なのでjavascriptのようにクライアントサイドでないと本来意味ないらしい
0306nobodyさん
2009/05/13(水) 04:48:46ID:???こういうのもあるみたい →nameは廃止されるからidで
ttp://q.hatena.ne.jp/1226298159
0307nobodyさん
2009/05/13(水) 11:18:33ID:43iecwOZ【PHPのバージョン】php5.26
【質問内容】
whois情報から、登録者名とドメイン更新期限日のみを取り出したいのですが
各問い合わせサーバーから返ってくるwhois情報から、文字列検索する
しか方法はないのでしょうか。
非常に困っています。。。教えてください。
0308nobodyさん
2009/05/13(水) 16:20:33ID:???RFC読んでないからわからんけど、たぶんWhoisサーバのリプライに決まった形式はない。
更新期限も Expires On: だったり、Expire-Date: だったりマチマチ。
日付の形式もバラバラ
だから公開されてるライブラリがあったとしても、どれだけ使えるかは
どっちみち自分で確認しないとダメだろう。
なので、レジストリごとに自分で書くのが確実だと思う。
gTLDと.jpとかだけでいいなら楽。
TLD全部引かなきゃいけない場合は...ご愁傷様です。
0309nobodyさん
2009/05/13(水) 17:15:40ID:DEsX7p4Wログインしているかどうかの確認を
if(!$_SESSION["login_id"]){
//ログインしていない場合はトップページに戻す
}
のようなチェックを入れているだけなのですが、
これで問題ないでしょうか?
0310nobodyさん
2009/05/13(水) 17:16:30ID:???セッションの中身は全てサーバーサイドでの管理なので問題ありません
0311nobodyさん
2009/05/13(水) 17:39:08ID:43iecwOZレスありがd、しかしやっぱりそうですか、、、
TLD全部なんですよ。。。チーン
0312nobodyさん
2009/05/13(水) 17:54:45ID:???0313軟式PHP
2009/05/13(水) 18:04:41ID:???何をもって問題ないかにもよるが、セッションハイジャックには弱いな。
とりあえずこのサイトでも読んどけ。
ttp://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html
0314nobodyさん
2009/05/13(水) 20:17:56ID:???(1)exit;を入れる
(2)session_regenerate(true)を入れる
(3)php.iniのuse.cookie.onlyとかを1にする
0315309
2009/05/13(水) 22:50:31ID:DEsX7p4Wありがとうございます。もう少し勉強します。
0316nobodyさん
2009/05/14(木) 12:10:48ID:YD/DCKSf「出力時にもhtmlspecialcharsをしろ」とありますが、
それはデータベース内のデータを出力する際もでしょうか?
それともデータベースにINSERTする時に行えば問題ないのでしょうか?
0317nobodyさん
2009/05/14(木) 12:21:02ID:???_______ __
// ̄~`i ゝ `l |
/ / ,______ ,_____ ________ | | ____ TM
| | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>>
\ヽ、 |l | | | | | | | | ``( (. .| | | | ~~
`、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二=''
ヽヽ___// 日本
_____ _____ ______ _______
| ウェブ | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
._________________
|XXS PHP │・検索オプション
└────────────────┘・表示設定
| Google検索 | I'm Feeling Lucky | ・言語ツール
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
○ウェブ全体から検索 ◎日本語のページを検索
0321nobodyさん
2009/05/14(木) 19:17:47ID:jJzNEQqbaaa,sss,ddd,fff
zzz,xxx,ccc,vvv
というファイルtest.txtがあって
それを読み込んで$ALという二次元配列に入れるところまではできたのですが($AL[2][2]がcccです)、この$ALを再び同じ形式でtxtファイルに書き込むにはどうすればいいでしょうか?
txtファイルに書き込むデータの形式は上記のような感じで、1つの行の要素間はカンマでくぎって、行が終わったら改行します
本来はtest.txtを読み込んで、ソートしてから別ファイルに書き込むのですが、2次元配列のソートは覚えるのに時間がかかりそうなので、まずは読み込んで、読み込んだデータを別ファイルに書き込みたい状態です
0322nobodyさん
2009/05/14(木) 19:20:32ID:???これの逆をやればいいのでは?
0323nobodyさん
2009/05/14(木) 22:15:18ID:???当然、どこかのタイミングではする必要がある。
どちらでも問題ないといえば問題ない。
ただし、普通は画面に出力するその瞬間に行なう。何故なら、その方が忘れにくいからだ。
一年前にエスケープして保存したか、そのまま保存したかを覚えている自信はあるか?
保存先が複数になった場合はどういうポリシーにする?セッション変数は?ファイルに書き出したアレはどうしたっけ?
この関数の引数ってエスケープした奴?まだの奴?
保存する場所や、プログラムのほかの場所でエスケープする場合、画面出力するコードを見ただけではXSS対策がなされているかを確認できない。
画面出力をするその場でエスケープする方針ならば、そこを見れば間違いなくXSS対策がなされている事を確認できる。
だいいち、">"という文字列を含むレコードを検索したい時にはどうしたらいいんだっけ?とかいちいち悩みたくないだろ。
保存は生データ、加工は必要な奴が必要な場所でする、が基本。
0324nobodyさん
2009/05/14(木) 22:17:07ID:jJzNEQqb繰り返し文で1行ずつ書き込むのはできそうなのですが、fputs(ファイルハンドル,$AL)みたいにまとめてやることは出来ないでしょうか?
0325nobodyさん
2009/05/15(金) 00:24:41ID:???0326nobodyさん
2009/05/15(金) 01:20:02ID:???0327nobodyさん
2009/05/15(金) 02:18:52ID:???fputs($sp, implode("\n", array_map("joincsv", $AL)));
function joincsv($arr) {
return implode(",", $arr);
}
0328nobodyさん
2009/05/15(金) 02:25:56ID:???おまけ
$text = file_get_cotents("test.txt");
$AL = array_map("splitcsv", explode("\n", $text));
function splitcsv($rec) {
return explode(",", $rec);
}
0329nobodyさん
2009/05/15(金) 15:59:24ID:aGJ1dXbD【PHPのバージョン】php5.29
Apache2.2を使用しています。
PEARはgo-pear.batを叩いてインストールしました。smartyも入っています。
【質問内容】
httpd.confでphp.iniの参照個所を任意の場所に変更してもphpinfoで確認すると
Configuration Fileがc:\Windows配下になっています。
それじゃあということでc:\Windowsにphp.iniをおいてそれを編集しているのですが
それも反映していない気がします。
(c:\Windows\php.iniのinclude_pathを任意の場所に変更してもphpinfoで確認すると
C:\php5\pearになってしまう)
Apacheは毎回再起動しています。
環境変数はちゃんとPHPインストールしたフォルダを指定しているのですが
ほかに何か設定が必要なのでしょうか。
超初心者質問ですみません・・・。
0330nobodyさん
2009/05/15(金) 16:05:16ID:???0331nobodyさん
2009/05/15(金) 16:06:41ID:???http://pc11.2ch.net/test/read.cgi/php/1167984858/の1から見てインストールしていけばいいよ
0332nobodyさん
2009/05/15(金) 16:23:16ID:???>【OS名】windowsVista
virtualstoreに反映されてない?
エディタを管理者権限で動かしてから編集してみて。
0333nobodyさん
2009/05/15(金) 16:55:20ID:wv3qSkZj【PHPのバージョン】php5
【質問内容】
AB01、PC002などの品番をAB-01、PC-002のように変換するにはどうすればいいですか?
正規表現で簡単に書けますか?
0334nobodyさん
2009/05/15(金) 17:21:02ID:???0335軟式PHP
2009/05/15(金) 17:28:22ID:???あえて正規表現で書きたいなら以下。
$string = "AB01";
$string2 = "PC002";
echo preg_replace("/^([A-Z]{2})([0-9]+)$/","$1-$2",$string)."<BR>";
echo preg_replace("/^([A-Z]{2})([0-9]+)$/","$1-$2",$string2);
0336nobodyさん
2009/05/15(金) 17:43:45ID:wv3qSkZjありがとう。
↓これでいけた。
preg_replace("/[A-Z]+/","$0-",$str);
0337nobodyさん
2009/05/15(金) 18:22:06ID:???数字の変数って使えましたっけ?
0339nobodyさん
2009/05/15(金) 18:30:44ID:???○$test
×$1test
○$test_1
×$_test1
0340nobodyさん
2009/05/15(金) 18:33:00ID:???例えば
preg_replace("/^([A-Z]+?)-([0-9]+?)$/", "$1-$2");
があったとする
この場合、([A-Z]+?)の部分が$1に、([0-9]+?)の部分が$2に代入されるんだ
全部ひっくるめたのが$0だったっけ?$0は使ったことないからわかんね
0343nobodyさん
2009/05/15(金) 20:02:45ID:???他の言語では昔から使えるけど。俺もいまだに癖で\\1書いちゃうな
0344nobodyさん
2009/05/15(金) 20:44:02ID:???最近って、化石すぎだろ。
http://jp.php.net/manual/ja/function.preg-replace.php
>replacement では、 \\n 形式または $$n 形式(PHP 4.0.4 以降)で参照を指定することができます。
0345nobodyさん
2009/05/15(金) 20:47:15ID:???英語版は
>replacement may contain references of the form \\n or (since PHP 4.0.4) $n, with the latter form being the preferred one.
だし。
0346nobodyさん
2009/05/15(金) 22:09:39ID:???function test(){
動作確認した文字を描くだけのコード
}
test();
てユーザー定義関数にしてみると壊れてますと表示されるんですが?
0347nobodyさん
2009/05/15(金) 22:19:09ID:???0348nobodyさん
2009/05/15(金) 22:27:44ID:???サンクス
0349346
2009/05/15(金) 22:37:58ID:???0350nobodyさん
2009/05/15(金) 23:21:06ID:/0bJTUf0$aが空かどうかを調べたいのですがどうすればいいでしょうか。
<?php
$a=AAAFFDJ;
if($a==0){
print "a";
}
else{
print "b";
}
?>
0351nobodyさん
2009/05/15(金) 23:27:02ID:???結論から言えば、
$aに文字が入っていない。
'シングルクオーテーションか、
"ダブルクオーテーション
でくくられていない文字列は数値として扱われる。
もし文字列として扱いたいのなら、
$a='AAAFFDJ';
か、
$a="AAAFFDJ";
とすべき。このようにクオーテーションで囲われていると、
「あ、これは文字列なんだな」
ってPHP君がわかって、文字列として扱ってくれる。
0352nobodyさん
2009/05/15(金) 23:29:56ID:???if($a===0){
とすればかんぺき。
期待どおりの結果になるはず。
0353nobodyさん
2009/05/15(金) 23:31:40ID:???クオーテーションいれないでも、PHPでは
自動的に文字列型になってました。
var_dumpしたら確認できました。ごめんなさい
なので>>351は忘れてください
0354nobodyさん
2009/05/15(金) 23:36:04ID:???よって変数がカラかどうかを調べるには
emptyをつかうのがいいと思います。
<?php
$a=AAAFFDJ;
$b=empty($a);
var_dump ($b);
?>
0355nobodyさん
2009/05/15(金) 23:37:49ID:???なんとかならんのか。
0356nobodyさん
2009/05/15(金) 23:38:06ID:???trueを返してしまうのか。
だからみんなisesetを使うんだな。
0357nobodyさん
2009/05/15(金) 23:39:12ID:???定数として評価した後にだからな
0358nobodyさん
2009/05/16(土) 00:14:43ID:???Noticeは出るだろ。
開発環境でNoticeを切ってる奴はウンコだから勝手に死ね。
0359nobodyさん
2009/05/16(土) 00:33:18ID:???0360nobodyさん
2009/05/16(土) 00:35:35ID:???0361nobodyさん
2009/05/16(土) 00:54:47ID:???とか一度はやるよな
0362nobodyさん
2009/05/16(土) 01:03:32ID:???すべきなんだろうけど、やらないねぇ。
それって noticeを抑制する以外、意味あるの?
正直どうでもいいとしか思ってない。
0363nobodyさん
2009/05/16(土) 07:39:00ID:???0364nobodyさん
2009/05/16(土) 09:30:53ID:???さておき、そもそもコード内で$_POSTに直接アクセスするのが良くない。テストできなくなる。
多くのフレームワークでスーパーグローバルがどっかに格納されるのはこういう理屈。
実行の早い時点で
$post = new Post($_POST);
$post->get('hoge');
とかにラップすべき(実際はGETとかも放り込んで$request->getPost('hoge')とかいう形が便利)。
まあ、別に配列を引数として直接渡していっても構わないけどな。
0365nobodyさん
2009/05/16(土) 09:54:18ID:???0366gugurekasu
2009/05/16(土) 10:56:24ID:SaZzzxwNブラウザー側で保存されているセッションIDを
ユーザーが適当に書き換えたとします。
サーバーがブラウザーのセッションIDを読み込み
tmpファイルの中に、新規にセッションIDに対応したファイルを作成。
これってセキュリティー問題ありなんですか?
0367nobodyさん
2009/05/16(土) 11:01:06ID:???0368nobodyさん
2009/05/16(土) 17:35:33ID:G930vyQ9いろいろやったけどなんかうまくいかないんだよね。
$img=getimagesize($infile);
$scale=($img[1]>$img[0])?'120':'x120';
exec("/usr/bin/convert $infile -resize $scale -gravity center -crop 120x120+0+0 output.jpg");
0369nobodyさん
2009/05/16(土) 17:40:55ID:raJP1QPzrequire_once "/HTML/QuickForm.php";という記述のところで
Fatal error: require_once() [function.require]: Failed opening required '/HTML/QuickForm.php' (include_path='C:\xampp\php\PEAR') in
というエラーが出ます。
どうすればいいのでしょうか?
0370nobodyさん
2009/05/16(土) 17:43:01ID:???あとincludeパスが通ってないのかもしれんし
0371nobodyさん
2009/05/16(土) 17:48:40ID:???参考にしているものってあります?
0372nobodyさん
2009/05/16(土) 17:51:27ID:raJP1QPzphp.iniには、以下のとおりに設定しています。
; Windows: "\path1;\path2"
;include_path = ".;c:\xampp\php\includes;C:\xampp\php\PEAR"
0373nobodyさん
2009/05/16(土) 17:54:59ID:???0374nobodyさん
2009/05/16(土) 18:08:29ID:raJP1QPz0375nobodyさん
2009/05/16(土) 18:12:10ID:raJP1QPz0376nobodyさん
2009/05/16(土) 18:36:07ID:???はそういう絶対パスだが。
先頭に.を加えればいいんじゃない?
0377nobodyさん
2009/05/16(土) 18:39:57ID:???require_once "HTML/QuickForm.php"; // スラッシュ削除
なら、
C:\xampp\php\PEAR\HTML\QuickForm.php
か
c:\xampp\php\includes\HTML\QuickForm.php
か
.\HTML\QuickForm.php
にあればいい。
0379nobodyさん
2009/05/17(日) 00:18:22ID:k2N5f3/Wどうすればいいですか?
0380nobodyさん
2009/05/17(日) 00:25:17ID:???0381nobodyさん
2009/05/17(日) 00:32:04ID:dGMXPYwm0382nobodyさん
2009/05/17(日) 00:36:15ID:???0383nobodyさん
2009/05/17(日) 00:43:09ID:???0384nobodyさん
2009/05/17(日) 00:46:18ID:???0385nobodyさん
2009/05/17(日) 11:35:53ID:TGtMBjDr$data = file_get_contents($url);
$count = count($data);
echo $count;
たったこれだけのソースでPHPのバージョンも同じなので、
file_get_contents以外に思い当たることがなく、
php.iniが間違ってるのかもしれないのですがご存じの方いらっしゃらないでしょうか
PHP4.42
0386nobodyさん
2009/05/17(日) 11:49:05ID:???ところで機能しないってのは具体的にどんな状態?
0387nobodyさん
2009/05/17(日) 11:59:15ID:???ページに何も表示されず、HTMLソースも空っぽな状態です
php.iniのそれっぽい箇所は
allow_url_fopen = On
にしてあります
けっこう複雑なことをやってるスクリプトはローカルで問題なく動いているので、
file_get_contentsだけが機能してないようです
0388nobodyさん
2009/05/17(日) 12:12:58ID:???0389nobodyさん
2009/05/17(日) 15:52:40ID:xCE67DMNマニュアル読んで
ttp://www.php.net/manual/ja/features.file-upload.post-method.php
1. <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
で最大サイズを指定しろよ。
2. サーバー側には upload_max_filesize で最大サイズがあるからな。
という2点は理解した。
で今仮に(1.) が1M (2.)が32Mとしよう。
俺の中では5Mのファイルをアップしようとしたら
(1.)に引っかかるので速攻で処理が終わるのかと思ったら
結局5M全部アップするまで終わらないのよ。
(2.)の最大サイズを超える50Mをアップしたとしても同じ。
『しかしそれでも MAX_FILE_SIZE を指定すべきです。
なぜなら、 巨大なファイルを転送しようとして、実はそれが大きすぎて
転送できないということを長時間待ったあとで知らされるのを 防げるからです。』
MAX_FILE_SIZE を指定する意味と↑の言葉がわからん。
0390nobodyさん
2009/05/17(日) 16:01:55ID:???うpっても長時間待たせずに知らせてくれる
という風に読めるけど違う?
0391nobodyさん
2009/05/17(日) 16:04:16ID:qM+VaA+V下記にあるサンプルは動いたのですが、
http://codezine.jp/article/detail/3492?p=2
下記のソースは動きませんでした。
http://php.s3.to/net/get1.phps
何が問題でしょうか?
0392nobodyさん
2009/05/17(日) 16:05:52ID:???0394nobodyさん
2009/05/17(日) 16:17:46ID:qM+VaA+V説明不足で申し訳ありません。下記に設置されているサンプルは
ボタンを押すと他のページを読み込んで表示しますが、ボタンを
押しても何も表示されませんでした(初期画面のまま)
http://php.s3.to/net/get1.php
サンプルと同じ動作を期待しています。
0395nobodyさん
2009/05/17(日) 16:26:28ID:???それ、呼び出し元がphp.s3.toかどうかチェックしてるじゃない。
自分の設置したサイトがphp.s3.toじゃないのなら、その部分書き換えないと
0396nobodyさん
2009/05/17(日) 16:31:27ID:qM+VaA+V動きました。早速の回答、ありがとうございました。
0397389
2009/05/17(日) 17:14:50ID:xCE67DMNファイルサイズをいろいろと用意して
サーバーにアップロードしてみたけど
実際、よくわからん orz
・わかったこと
a) MAX_FILE_SIZE を指定してそのサイズを超えてもアップロードは止まらない(?)
>>392
とりあえず(1.)を指定したからと言って
ブラウザー側で止まってくれるようなものではまずなさそう。
>>390
そんな感じかと思うんだけど、
(1.)の設定有りと無しで終わるまでの時間を計ってみても
どうも変わらないっぽいんだわ。
とりあえず俺が期待していた
「MAX_FILE_SIZE を越える場合、速攻で接続が切れる」
っていうのはなさそう。
0398nobodyさん
2009/05/17(日) 17:39:30ID:???「MAX_FILE_SIZE を越える場合、速攻で接続が切れる」
これはないんだよね。アップした後でないとわからんってこと。
IEだけはvbscriptで事前チェックできるけどセキュリティのためとはいえファイルサイズもわかんないのは面倒だよね。
0399nobodyさん
2009/05/17(日) 17:55:42ID:???マルチパートでPOST送信するわけだから<form>の直後にMAX_FILE_SIZE書いてもダメかな?
0400nobodyさん
2009/05/17(日) 18:19:45ID:???MAX_FILE_SIZEもしょせんはフォームの1データであって、ブラウザがそれをつかって何やするわけでないから。
0401nobodyさん
2009/05/17(日) 19:14:37ID:???2.はサーバー全体の設定になる。INI_PERDIRだから.htaccessで上書き、くらいはできるが。
1.はクライアントサイドでは無意味。HTMLの仕様にそんなものはない。
受け取ったスクリプトがこの値を見て勝手にサイズチェックをしてくれる、という値。
そして、この値は勿論クライアント側で改竄可能なので、結局何バイトのファイルを送るかはクライアントの自由になる。
結論:その値は無意味で、お前の思っていることは正しく、今日もPHPはウンコ
0402nobodyさん
2009/05/17(日) 19:22:35ID:???0403nobodyさん
2009/05/17(日) 21:59:09ID:k2N5f3/W0404nobodyさん
2009/05/17(日) 22:05:14ID:???0406nobodyさん
2009/05/18(月) 02:31:47ID:JzE+u3d46.1
0407nobodyさん
2009/05/18(月) 06:01:24ID:???あれは別にinputじゃなくても普通に人間が読めるようにしておけばいいって話なんだよねw
inputにしておけば送信する前に勝手に止まってくれるブラウザがあるかもしれないってだけで。
0408nobodyさん
2009/05/18(月) 14:18:01ID:Auu+frficonfigure: error: Cannot find php-config. Please use --with-php-config=PATH
↑のようなエラーが出てしまう。php.iniのパスは間違ってないし、
/usr/local/Zend/etc/php.ini: line 1: [PHP]: command not found
こんなエラーも出てるので、読み込みは成功してると思うんだけど、
何が違うんでしょう?
0409nobodyさん
2009/05/18(月) 14:20:44ID:???0410軟式PHP
2009/05/18(月) 14:26:34ID:???Cannot find php-configってなってるから
configureの引数が--with-php-config=ではなくphp-configになってしまってると思われる。
0411nobodyさん
2009/05/18(月) 14:31:00ID:???0412nobodyさん
2009/05/18(月) 14:41:49ID:Auu+frfiレスありがとう。configureオプションはこんな感じです。
./configure --enable-eaccelerator=shared --with-php-config=/usr/local/Zend/etc/php.ini
0413nobodyさん
2009/05/18(月) 14:49:53ID:???0415nobodyさん
2009/05/18(月) 14:54:05ID:Auu+frfiその発想はなかったわ...
探してみる。
0416nobodyさん
2009/05/18(月) 14:55:03ID:???/usr/local/Zend/bin/php-config
だろうね。
php-configを実行しようとしてphp.iniを実行したから
>/usr/local/Zend/etc/php.ini: line 1: [PHP]: command not found
このエラーがでたんだね。
php.iniの1行目に#!で始まるコマンド行が無い、というエラー
0417nobodyさん
2009/05/18(月) 14:55:24ID:Auu+frfi通ったっぽいw
お手数おかけしました。
そして、ありがとうございました。
0418nobodyさん
2009/05/18(月) 15:27:29ID:4boWXdtt0419nobodyさん
2009/05/18(月) 15:39:24ID:???アップロードはブラウザ側の処理だから延々と処理し続ける。
0422418
2009/05/18(月) 18:21:10ID:???英語は読めるので他にないですか?
0423nobodyさん
2009/05/18(月) 18:22:14ID:???0424nobodyさん
2009/05/18(月) 19:32:42ID:???C++.netのほうがよくないか?
0426nobodyさん
2009/05/18(月) 21:22:33ID:???0427nobodyさん
2009/05/18(月) 22:02:23ID:JzE+u3d40428nobodyさん
2009/05/18(月) 22:04:28ID:???御託はZend FrameworkとかPEARレベルのソースを読み書きできるようになってから抜かせ
と言いたいところだが、1言語しか使えない奴は総じてゴミなのでひとつくらいは別言語を覚えたほうがいいな
RubyとかActionScript辺りはどうだろ、適度に共通項があり適度に相違点があって勉強になると思うが
0429nobodyさん
2009/05/19(火) 02:46:52ID:???今は、.NetかSssP、Oframerとかが旬。
0430nobodyさん
2009/05/19(火) 04:34:55ID:???0431nobodyさん
2009/05/19(火) 04:44:00ID:???0432329
2009/05/19(火) 10:19:45ID:vtfeozSW>>331
インストール後の話なのでちょっと現況とマッチしてはいませんでした
まあ一切合財再インストールしたほうがいい、という意味と思いますし
私もそうして設定デフォルトでやり直したほうがいいかなーと思ったり
でもまあ暫くがんばってみたいと思います
>>332
virtualstoreフォルダは無かったんですが管理者権限でエディター動かして編集したらば
とりあえず反映しました!うーんなんなんだ
ありがとうございました!
とりあえずVistaはもう・・・ぐったり
0433418
2009/05/19(火) 11:42:30ID:xoc5pFTkSQLでポスグレとMySQLは使えます
jsも使えます(ajaxも)
データフォーマットはxml,json,csv,tsvも絡められます
web言語にとらわれず仕事になるものでしたら何でも覚えたいです
0434nobodyさん
2009/05/19(火) 11:43:33ID:xoc5pFTkflashは仕事で使ってるので覚えてます
ASは3.0まで使ってます
0435nobodyさん
2009/05/19(火) 13:28:50ID:???マ板でもいっときな。まぁPHPは言語してみなされないがw
0436nobodyさん
2009/05/19(火) 14:33:32ID:oPaIAAk+[Mon May 18 21:25:02 2009] [error] [client 192.168.0.7] PHP Fatal error: callData::require_once() [<a href='function.require'>function.require</a>]:
Failed opening required 'config.inc.php' (include_path='.:/php/includes: /usr/lib/php/pear: /var/www/php_libs: /var/www/php_libs/Smarty/libs:
/var/www/php_libs/config') in /var/www/html/system/admin/callData.class.php on line 44, referer: http://192.168.0.2/system/a_new.php
apacheを動かしてて、プログラムがエラーを起こしてしまいます。実行するファイル 'config.inc.php' が無いと言われているようです。
でもinclude_pathで指定されたフォルダの中に該当のファイルが存在しています
なぜ認識してくれないのでしょうか? 環境はCentOS5で、apache2、php5です
リナックスを操作するのに慣れていないんですが、実行権限などの関係でしょうか?
.phpは755で指定しています
0438436
2009/05/19(火) 15:39:19ID:oPaIAAk+ありがとうございます
vi /var/www/php_libs/config/config.inc.php で中身が確認できる状況です
気になるのが
ls -la /var/www/php_libs/config とすると、
config.inc.php の他に config.inc.php~ というファイルがあります
Xで見るとそんなファイルないんですが隠しファイルってことでしょうか
削除した方が良いんでしょうか
-rwxr-xr-x 1 root root 4008 May 18 19:16 config.inc.php
-rw-rw-rw- 1 root root 4021 May 20 2008 config.inc.php~
こんな感じです
0439nobodyさん
2009/05/19(火) 15:39:38ID:???0440nobodyさん
2009/05/19(火) 15:44:07ID:???パーミッションの実行もphpの場合(cgiモードで動作させる場合を除いて)関係ない
その
ディレクトリのオーナーとパーミッション(/var、/var/www、/var/www/php_libs)は
どうなってる?
0441nobodyさん
2009/05/19(火) 15:52:11ID:???440の言うようにDSOでPHPが動いているだろうから
Apacheから読めるかどうかが原因のような気がするなぁ。
>>439
雑魚は引っ込んでろw
0442436
2009/05/19(火) 15:55:22ID:oPaIAAk+drwxr-xr-x 12 root root 4096 May 16 11:18 www
drwxr-xr-x 21 root root 4096 Apr 8 04:17 var
パーミッションはこんな感じです
度々すみません
0443nobodyさん
2009/05/19(火) 16:01:02ID:???逆にそれが災いしてSELinuxが効いてんじゃないの?
オーナーをhttpd実行ユーザーと同じにして644の755にしとけ
0444436
2009/05/19(火) 16:08:44ID:oPaIAAk+ほんとに理解不足ですみません
ディレクトリは644 .phpを755ってことでしょうか
0445nobodyさん
2009/05/19(火) 16:20:44ID:???ディレクトリは755だよ。それよりrootが持ち主だけどApacheはroot以外のユーザーで動いてるでしょ?
0446436
2009/05/19(火) 16:45:26ID:oPaIAAk+Apacheのユーザ設定は考えていなかったのでrootで動いてるんじゃないかと思います
このサイトにあるようにpublic_htmlを設定するってことでしょうか?
http://httpd.apache.org/docs/2.0/ja/howto/public_html.html
とりあえず、755にしたら先ほど書いたエラーは出なくなりました
権限など勉強し直します。ありがとうございました
0447nobodyさん
2009/05/19(火) 17:38:02ID:???ipが取得されてしまいました
どのようにして携帯端末情報を取得するのでしょうか?
0448447
2009/05/19(火) 17:38:47ID:CIWntjhX失礼いたしました
0449nobodyさん
2009/05/19(火) 17:40:51ID:???$_SERVER['REMOTE_ADDR']自体IPを取得するものじゃねーか
何この釣り
0450nobodyさん
2009/05/19(火) 17:41:43ID:???たとえばApacheなら、httpd.confでHostnameLookups Onになっていないと
名前でなくアドレスが入る。ちなみにHostnameLookups Offがデフォルトだったかと。
0451nobodyさん
2009/05/19(火) 17:42:58ID:???多分間違ったんだろうけど
'REMOTE_HOST'だなw
0452nobodyさん
2009/05/19(火) 23:14:08ID:???PHP
MySQL
ポストグレス
javascript
ajax
xml
json
csv
tsv
これだけできるんだ。なんだ、
なんでもできるんじゃん。
0453nobodyさん
2009/05/19(火) 23:47:23ID:oPaIAAk+ファイルの読み込みについて質問です。
include_pathをdocumentRootの外に設定したくて、php.iniに
open_basedir =/var/www としましたが /var/www/hoge/include.phpを
/var/www/html/index.phpが読み込んでくれません。
調べたら、httpd.confでも open_basedirを設定できるということで、
そっちで禁止されてるのかと確認したんですが open_basedir という文言じたいhttpd.confに
ありません。
何が原因かわかるでしょうか?
設定するファイルは以下で間違いないですよね?
php.ini は、 /etc/php.ini
httpd.conf は、 /etc/httpd/conf/httpd.conf
あと、/var/www/html/include.phpを読み込むのは成功しています
0455nobodyさん
2009/05/20(水) 00:20:28ID:???include_pathの設定の変更は、php.iniのその名の通り「include_path」を設定するんじゃないか?
0456nobodyさん
2009/05/20(水) 00:46:36ID:jL/vKg9aどうもです
>「include_path」を設定するんじゃないか?
その通りなんですが、このinclude_pathで設定したパスが open_basedirで設定したパスより
上にあると、それは除外されちゃうらしいんです。
なので、open_basedirをinclude_pathで指定したパスを含むように変更したんですがダメダメで…
参ったなぁ
0458453,456
2009/05/20(水) 00:58:36ID:jL/vKg9ainclude_pathがopen_basedirの中に含まれてるのに読み込まないのを
読み込むようにしたいんです。
どこに原因があるのかと。php.ini以外に設定するファイルがあるのかなとか。
>php.ini は、 /etc/php.ini
>httpd.conf は、 /etc/httpd/conf/httpd.conf
これは間違ってないんでしょうか? linuxは不慣れで、
操作してるファイル自体勘違いしてないか知りたいです
0460nobodyさん
2009/05/20(水) 01:03:24ID:???apacheの再起動は当然してるよね。
設定ファイルの場所とかはインストールした環境によるからどこってのは無いと思うけど、
php.iniとhttpd.confは、とりあえず適当にエラー出しそうな値に書き換えてみたら
とりあえずいじってるファイルがあってるかどうかわかるんじゃない?
それこそ、php.iniでinclude_pathをいくつか追加してみて、ini_getで呼んでみて
値が変更されてたらOKなわけですし。
0461453,456
2009/05/20(水) 01:10:36ID:jL/vKg9axamppってwindows用ですよね? linuxでもあったかな
>>460
apacheの再起動は
/etc/rc.d/init.d/httpd restart ですよね? やってます
>php.iniとhttpd.confは、とりあえず適当にエラー出しそうな値に書き換えてみたら
>とりあえずいじってるファイルがあってるかどうかわかるんじゃない?
たしかに! 試してみますね。ありがとう
0462nobodyさん
2009/05/20(水) 08:32:38ID:???ホスト名がほしいんか?端末そのものの情報か?
前者なら$_SERVER["REMOTE_HOST"]でいいけど。
ブラウザやOS情報なんかほしいんなら$_SERVER["HTTP_USER_AGENT"]も必要だな。
0464nobodyさん
2009/05/20(水) 11:04:48ID:???0466nobodyさん
2009/05/20(水) 11:07:37ID:???REMOTE_ADDRでそれを取得しようとする間抜けなんて存在するとは思わないもんな
0467nobodyさん
2009/05/20(水) 11:08:26ID:???0468nobodyさん
2009/05/20(水) 11:09:38ID:???0469nobodyさん
2009/05/20(水) 11:16:30ID:???0471nobodyさん
2009/05/20(水) 11:49:28ID:???今日来たメールだと
>【iモード技術情報】 マイニュース/マイリンク関連情報掲載のお知らせ
とかが来るようなとこね。
0472nobodyさん
2009/05/20(水) 11:50:25ID:???0474nobodyさん
2009/05/20(水) 12:09:08ID:???答えが分かった途端に調子にのるww
ちなみに回答側のやつらは殆ど某ライブラリ経由で端末情報取得してるよ。
シコシコ$_SERVERとか書いてろwww
0475nobodyさん
2009/05/20(水) 12:10:55ID:???0478nobodyさん
2009/05/20(水) 12:53:50ID:???0479nobodyさん
2009/05/20(水) 13:17:30ID:???0480nobodyさん
2009/05/20(水) 14:54:14ID:FO/+N7r75.1.6の時と比べて、負荷に弱くなったというか反応が重たくなりました。
設定は何も変更していないのですが、5.2.9は重たいのでしょうか?
反応を軽くするようなセッティングはなにかありませんか?
0481nobodyさん
2009/05/20(水) 15:33:13ID:???それかドコモ先生の登場をしばらくお待ちください
0482453,456
2009/05/20(水) 16:07:58ID:jL/vKg9a以下のようになっています。
設定1)open_basedir no value no value
設定2)open_basedir / /
これはそれぞれlinux上のどのディレクトリにもinclude_pathのパスを指定できると
いう意味だと考えて良いのでしょうか?
実際にはどちらを設定していても、/var/www/html以下へのinclude_pathの指定しか
受け付けられず参っています
phpinfo()で表示される情報よりも優先される設定がプログラム中の直接指定以外あるんでしょうか?
0485nobodyさん
2009/05/20(水) 16:54:07ID:???apache/logs/error.log だよ
0486nobodyさん
2009/05/20(水) 17:28:27ID:???0487nobodyさん
2009/05/20(水) 17:30:25ID:FO/+N7r7はい、PHPを入れ直した後、eAcceleratorも再インストールしました。
PHPのバージョンアップ後、PHPのページだけ、アクセスが増加する時間帯になると重たくなると言われたので
もしかしたら5.2.9は評判がよくないのか、なんて思ったりしたのですが・・・
0488nobodyさん
2009/05/20(水) 17:52:11ID:mk8mjF0luser@docomo.ne.jpとしてMySQLにインサートし、その後ブラウザに表示
させるような事はPHPで可能でしょうか?
user、docomo.ne.jpをそれぞれテキストボックスでsubmitしてインサートした
後に表示させる事はできたんですけど・・。
0489nobodyさん
2009/05/20(水) 18:01:08ID:???何だろうなぁ。5.2.9が重いとは聞いたことないが・・。
>>488
出来る。
<input type="text" name="host" value="">@
<select name="domain">
<option value="docomo.ne.jp">docomo.ne.jp</option>
</select>
あとは分かるな?
0490nobodyさん
2009/05/20(水) 18:15:43ID:mk8mjF0lあ、出来た。有難う御座います。
、というかなぜこんな事で2時間唸ってたんだと思うと恥ずかしくなりました。
0491nobodyさん
2009/05/20(水) 23:11:32ID:???PHPやeAccの性能問題のほかに、PHP側の仕様変更/バグ修正によってコードに何らかの不具合が生まれた可能性もある。
俺なら実行時間のプロファイルを、いったんeAccを外した状態で取る。
人間が体感できるほどの差なら、5.2.6で検証するまでもなく、5.2.9の実行結果で明らかに時間のかかってる処理が見つかると思う。
0492nobodyさん
2009/05/20(水) 23:25:46ID:???とりあえず、考え方を変えて、
httpd.confのDirectoryをさ
例えば、
/var/www/htdocs
としてやって、htmlやPHPのルートを設定するじゃない。
んで、/var/www/libとか適当なディレクトリを作ってやって、
そこにincludeしたいライブラリとかを設置してやって
ついでに、phpのinclude_pathに、/var/www/libを設定してやるっていうのだと
ダメなの?
0493nobodyさん
2009/05/21(木) 00:18:09ID:M2R0F+Clこの写真に写っている果物は何ですか?
芸能人のブログの一部のものなのですが、
何の果物を撮ったか書いていないので分かりません。
ご教示お願いします。
http://stat.ameba.jp/user_images/20090520/15/hoshino-mari/7f/22/j/o0640048010183731596.jpg
0494nobodyさん
2009/05/21(木) 00:19:32ID:M2R0F+Cl申し訳ありませんが、URLをコピーしてからアクセスして頂けませんでしょうか?
たびたびすみません。
ちなみに、本ページは、ここです。
http://ameblo.jp/hoshino-mari/
0495453,456
2009/05/21(木) 00:26:29ID:dWSTP/J8レス遅れてすみません
エラーログは以下です
[Wed May 20 07:40:28 2009] [error] [client 192.168.0.7] PHP Warning: include(config.inc.php)
[<a href='function.include'>function.include</a>]: failed to open stream:
No such file or directory in /var/www/html/hoge.php on line 2
[Wed May 20 07:40:28 2009] [error] [client 192.168.0.7] PHP Warning: include() [<a href='function.include'>function.include</a>]
: Failed opening 'config.inc.php' for inclusion (include_path='.:/php/includes:/usr/lib/php/pear:/var/www/php_libs:
/var/www/php_libs/Smarty/libs:/var/www/php_libs/config:/var/www/html:/var/www/html/test12345')
in /var/www/html/hoge.php on line 2
動かしてるhoge.phpは以下です
<?php
include(config.inc.php);
echo _HOGE_VAR;//inc.phpで定義されてる定数
?>
config.inc.phpを/var/www/html/test12345に置いたら動いて
/var/www/php_libs/configに置いたら動きません(上のエラーが出ます
/www関連のファイルは
/var/www/php_libs/config/config.inc.php と
/var/www/html/hoge.php しか存在していない状況でテストしてるんですがエラーが出てしまいます
0496nobodyさん
2009/05/21(木) 00:30:25ID:???0498nobodyさん
2009/05/21(木) 01:06:13ID:???0499453,456
2009/05/21(木) 01:17:40ID:dWSTP/J8ありがとうございます。それを今試してみましたが、ダメでした
hoge.phpと同一ディレクトリにあるconfig.inc.phpを読み込むという意味でいいでしょうか?
実際にconfig.inc.phpがあるのは別のディレクトリです (/var/www/php_libs/config/config.inc.php)
>>497
読み込みに失敗したってことですよね?
Failed opening 'config.inc.php' for inclusion… はインクルードの設定のパスの中では
config.inc.phpは読み込めなかったって意味で、つまり指定したパスのなかに含まれてないということですよね?
実際にはあるんです…(/var/www/php_libs/config/config.inc.php)
./htmlよりも上位のパスでのphpの配置を許さない、プログラムを動かさないという指定がlinuxにはあるんでしょうか?
0500453,456
2009/05/21(木) 01:50:13ID:???対象のパスに含まれるディレクトリの権限設定が間違ってました
しょうもない理由でしたが勉強になりました 本当にありがとう
0501nobodyさん
2009/05/21(木) 01:51:10ID:???config.inc.phpを/var/www/html/test12345に置いたら動いて
/var/www/php_libs/configに置いたら動きません(上のエラーが出ます
この二つのディレクトリ、もしくはその配下に作られたファイルの
アクセス権限に違いはない?
0502501
2009/05/21(木) 01:53:51ID:???0503453,456
2009/05/21(木) 02:10:17ID:???ほんとすみませんw でも助かりました
ファイルそのもののアクセス権限しか見てなかったです
ありがとうございます!
0504nobodyさん
2009/05/21(木) 19:00:49ID:M2R0F+Clスレ違いで申し訳ないのですが、何とかご回答頂けないでしょうか?
前の席のものが気になってしょうがないと言っていて、私の方もちょっと困っています。
0505nobodyさん
2009/05/21(木) 20:24:56ID:???0506nobodyさん
2009/05/21(木) 20:49:40ID:M2R0F+Clレスがつかないので心配していました。
すみません。その園芸板ってどこでしょうか?
そこの方が適切であれば、そちらでお聞きしたいと思います。
0507nobodyさん
2009/05/21(木) 20:55:56ID:M2R0F+Clページの写真が変わってしまいました。大変失礼しました。
こちらのページに貼ってある写真にある果物の名前です。
甘酸っぱくて美味しいって書いてあるけど、名前が書いていない・・・。
http://ameblo.jp/hoshino-mari/page-2.html#main
0508nobodyさん
2009/05/21(木) 21:19:39ID:3E8Yd+C8ログイン機能
記事編集
画像アップロード
必要なPEARはなんでしょうか?
0509nobodyさん
2009/05/21(木) 21:37:18ID:???その単位でpearを探すのは大変。(いっぱいある)
それぞれについてどんな機能が欲しいかを決めてからのほうがいいよ。
0511nobodyさん
2009/05/21(木) 21:50:04ID:???勉強目的なら自作でやってみ 仕事ならZF
0513nobodyさん
2009/05/21(木) 22:24:42ID:A/e/PAptAuth ,HTMLQuickform, peager, pearDB2, かなぁ・・・
これにSmartyをつかってぐぐっと大人っぽくなるかも(~'.'~)
0514nobodyさん
2009/05/21(木) 23:09:31ID:3E8Yd+C8皆さんありがとうございます。
勉強目的なので自分で作ってみます!
またよろしくお願いします
0515nobodyさん
2009/05/22(金) 03:02:07ID:???http://ex14.vip2ch.com/test/read.cgi/part4vip/1240398459/
0516nobodyさん
2009/05/22(金) 03:20:16ID:f6PVhhZ1指定する事はPHP単体で可能ですか?イメージとしては買い物サイトなどの決済処理で
少し砂時計が回る間を待つような感じで。
0517nobodyさん
2009/05/22(金) 03:26:03ID:???0518nobodyさん
2009/05/22(金) 03:31:10ID:f6PVhhZ1超即レス有り難うございます。。こんな関数もあったんですね。
ぐぐったんだけどワードが悪かったのかなかなか見当たらなかった。
早速試したところうまくいきました。
0519488
2009/05/22(金) 10:46:02ID:9hIwxjrZ<?php
extract($_POST);
echo "
<form action =\"0.php\" method=\"post\">
<input type = \"text\" name = \"host\" size = \"20\">@
<select name =\"dimain\">
<option value=\"docomo.ne.jp\">docomo.ne.jp</option></select>
<input type = \"submit\" value = \"送信\">
</form>";
$meruado = "$host@$domain";//★変数$meruadoは user@docomo.ne.jp のような形式にする★
if($host == null){//★テキストボックスがnullならメッセ出して処理中断★
echo "入力してください";
exit();}
if($host <>''){//空じゃなければ実行
mysql_connect('xxx','xxx','xxx');
mysql_select_db('xxx');
$sql = "select * from xxx where xxx = '$meruado'";//登録済かどうかチェック
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
if($rows == 0){//登録済でなければ処理開始
session_start();
$_SESSION['test01']=$meruado;
echo "$meruadoは登録可能です<br>";
echo "$meruadoを登録しますか?<a href=\"./1.php\">登録する</a>";//クリックで1.php(DB登録)へ
}else{//登録済ならメッセ出して処理中断
echo "$meruadoは登録済みです";
}}?>
0520488
2009/05/22(金) 10:47:28ID:9hIwxjrZ<?php
session_start();
$meruado = $_SESSION['test01'];
〜SQLコネクト中略〜//INSERT文
header("Location: ./0.php");
session_unset();?>
------------------------------------------------------------------------------------------
488ですが、追加でお尋ねしたい事があります。
一応の動作はちゃんとしているようですがUndefined variableが以下のようにソースに★を
つけた箇所で発生します。
Undefined variable: host in 0.php on line 18
Undefined variable: domain in 0.php on line 18
Undefined variable: host in 0.php on line 19
php.iniに手を加えて隠す事は都合が悪いので、できればソースを見直したいのですが
このような場合はどのように書けば発生しないのでしょうか?
環境は Fedora 8 Apache2.2 php5.16 Mysql5 です。
色んなHPを参考に拙い知識で書きましたので、ソースはおかしいですがよろしくお願いします。
0521軟式PHP
2009/05/22(金) 10:56:24ID:???癖になる前にこれはやめれ。
register_global onと同じくセキュリティがザルになるぞ。
あとUndefinedは変数が定義されていないのに使ってるからだ。
$host = "";またはvar $host = "";とかで宣言してから使え。
0522nobodyさん
2009/05/22(金) 10:58:06ID:???0524488
2009/05/22(金) 11:07:58ID:9hIwxjrZ$host = "";で解決しました。
>癖になる前にこれはやめれ
ご指摘ありがとうございます。確かにセキュリティ上良くない事は色んなHPで
よく書いてましたから、ある程度理解してはいましたが、今の知識じゃサンプル
からソースを弄って書くのが精一杯でしたがこれを機会に癖になる前に治します。
0525nobodyさん
2009/05/22(金) 18:38:53ID:JSavhF6R内容は、mb_strlen()でフォームの文字数をカウントするものです。
あいうえお なら 10文字で数えられていたんですが、今回LINUXの環境で動かしてみたら15文字とカウントされました。
どうして? UTF8でカウントされたってことでしょうか?
この場合、どこの文字コードを変更したら良いんでしょうか。最終的には、ブラウザにはUTF8で出力したいと思っています。
0526525
2009/05/22(金) 18:40:41ID:JSavhF6Rhttpd.conf も php.iniも Windowsの設定を引き継いだので、どうしてこうなったのかわかりません
0527525
2009/05/22(金) 19:08:17ID:???質問自体かなり変なこと書いていました、失礼しました
0528nobodyさん
2009/05/22(金) 19:28:51ID:???0529nobodyさん
2009/05/22(金) 20:10:49ID:z1xOHJCG全く何も返してもらえません。
SQLiteのバージョンは3、PHPは5.2.6でWindows環境のphp.exeを使用しています。
接続もクエリ送信もできるのになぜか帰ってきません。
どなたか分かる方回答or誘導をよろしくお願いします。
try {
$dbh = new PDO('sqlite:../wn.db','', '');
} catch (PDOException $exception){
echo "MAKEING PDO:";
echo $exception->getMessage();
echo "\n";
exit();
}
$query = "select * from sqlite_master;";
$stmt = $dbh->prepare($query);
$stmt->execute();
$cols = array();
while ($cols = $stmt->fetch(PDO_FETCH_ASSOC)) {
var_dump($cols);
}
echo "Completed \n";
実行結果:
R:\>php sqlite.php
Completed
0530nobodyさん
2009/05/22(金) 20:27:01ID:???0531nobodyさん
2009/05/22(金) 20:27:37ID:???$dbh = new PDO('sqlite:../wn.db','', '');
$query = "select * from sqlite_master;";
$stmt = $dbh->prepare($query);
$stmt->execute();
$cols = array();
while ($cols = $stmt->fetch(PDO_FETCH_ASSOC)) {
var_dump($cols);
}
} catch (PDOException $exception){
echo "MAKEING PDO:";
echo $exception->getMessage();
echo "\n";
exit();
}
にすればいいんじゃね?
0532nobodyさん
2009/05/22(金) 20:30:49ID:???セミコロンの有無は関係ないみたいです・・・
>>531
catchでエラーは出ませんでした・・・。
.dbファイルもちゃんと存在しますし、おかしくならないはずなんですけど。。
どうでもいいですがMAKEINGって酷いですねorz
0534nobodyさん
2009/05/22(金) 20:45:19ID:???何も出力されませんでした。
多分tryの中にエラーが無かったからだと思います。
ttp://selfkleptomaniac.org/archives/1083
ここにphpでwordnetを使用するソースがあったので試したところ、
ブログにある例のような出力結果が得られなかったので、原因はPHPではsqliteかdbにありそうです。
のでそちらを当たってみます。。
0535nobodyさん
2009/05/22(金) 20:48:20ID:???0536nobodyさん
2009/05/22(金) 20:57:16ID:???0537nobodyさん
2009/05/22(金) 21:07:52ID:???PDOはデフォルトだとエラー吐かないのでエラーモードの設定を。
$dbh = new PDO('sqlite:../wn.db',null,null,array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
ついでにPDOStatementオブジェクトはforeachで回せるよ。
0538nobodyさん
2009/05/22(金) 22:03:57ID:???だから空ってことはないと思うのですが。。。
>>537
の通りエラーモードを設定した後、わざとdbのパスを間違えて指定しても、エラーが何も出ませんでした。
こんなことってあるんですかね?
0539529
2009/05/22(金) 22:17:48ID:???勘違い申し訳ないです。
0540nobodyさん
2009/05/22(金) 22:26:34ID:???0541nobodyさん
2009/05/22(金) 22:43:22ID:???0542529
2009/05/22(金) 22:46:58ID:???どうしてか分かりませんが、Webのコードを鵜呑みにコピペすると酷い目に遭いますね・・・orz
以上解決です。ありがとうございました。
0543nobodyさん
2009/05/22(金) 23:00:03ID:???もうみてないとおもうけど
PDO_FETCH_ASSOC
ではなくて
PDO::FETCH_ASSOC
だな。
PDOのconst。
0545nobodyさん
2009/05/22(金) 23:08:21ID:JSavhF6R以下の場合、読み込み失敗します
require_once('../hoge.php'); //相対パス。実際にはファイルはある
require_once('/hoge.php');
以下の場合は、読み込み成功します
require_once('hoge.php'); //読み込むスクリプトと同じディレクトリの場合
require_once('hoge.php'); //php.iniのinclude_pathで指定されたパスにある場合
何が原因でしょうか? 相対パスでの読み込みを許さない設定などがあるんでしょうか?
hoge.phpやそれを含むディレクトリのパーミッションは、成功時も不成功時も同じです。
0546nobodyさん
2009/05/22(金) 23:29:03ID:???index.phpを叩いたら、index.phpの置いてある場所からの相対を引くよ。
つまりindex.phpから、別の「nantoka.php」をrequireして、そのnantoka.phpのなかで
requireしたファイルは、nantoka.phpからの相対ではなくてindex.phpからの相対だよ。
0547545
2009/05/22(金) 23:59:17ID:???ありがとうございました。
原因がわかりました、パスの問題ではなかったです。
読み込み対象のファイルが、hoge.phpとHoge.phpのように名前の大文字小文字が違ってました
Windowsでは大文字小文字の判別してなかったのに、Linuxではエラーになっていました
ほんとにお騒がせしました
0548nobodyさん
2009/05/23(土) 02:46:08ID:JnoRZVY9<?php
$namae = $_POST['namae'];
$kana = $_POST['kana'];
$mail = $_POST['mail'];
if($namae == ""){
echo "警告:名前空っぽ";
}
if($kana == ""){
echo "警告:カナ空っぽ";
}
if($mail == ""){
echo "警告:メール空っぽ";
}
echo "テスト"
?>
1つ前のhtmlの送信ボタンから各POST値を受けています。
この晒したphpファイルを確認画面として使いたいのですが前画面の
3項目(名前 ふりがな メアド)のうち、一つでも不備があったら次の
ステップに進ませないようにしたいのですがどうすればよいですか?
3項目が全部空っぽでもecho "テスト"の文字が出てるって事は警告が
出た後でも処理はスルーされて最後まで進むようだし、
echo "警告:名前空っぽ";
exit();}
とかににすれば全て空でもスルーはされないけど1つしか警告は出せません。
空っぽの項目を的確に警告が出せて、かつecho "テスト"まで進ませない
ような書き方を教えてくれませんか?
if文でなくても良いです。
0549nobodyさん
2009/05/23(土) 03:23:22ID:???echo "警告:カナ空っぽ";
}
if(!$mail || !$kana || !$namae ){//ここから挿入
exit;
}//ここまで挿入
echo "テスト"
これで進ませないことはできる。
0551nobodyさん
2009/05/23(土) 08:10:08ID:xzc/N9L3function go(){
senddata="from=index";
url="b.php";
httpoj = new XMLHttpRequest();
httpoj.open("POST",url,true);
httpoj.onreadystatechange = function(){
if(httpoj.readyState==4){clipboardData.setData("Text",httpoj.responseText);alert(httpoj.responseText);process(data,mode);}
}
httpoj.send(senddata);
}
// http://example.com/b.php
<?php phpinfo();exit;?>
各ファイルの中身はこうで、a.phpからgo();を実行し、postでデータを転送しているつもりなのですが
b.phpのphpinfoを見ると
PHP Variables
_SERVER["REQUEST_METHOD"] POST
_SERVER["QUERY_STRING"] no value
_SERVER["argv"] Array()
_SERVER["argc"] 0
と、データが全く受け取れていないようです。
// http://example.com/c.php でjsを使わず
<form method="post" action="./b.php">
<input type="hidden" name="from" value="index" />
<input type="submit" value="hoge">
</form>
と、すると正常に処理出来ているのですが。
0552nobodyさん
2009/05/23(土) 08:10:56ID:xzc/N9L3POST http://example.com/b.php HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument,
application/xaml+xml, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, application/x-silverlight, */*
Referer: http://example.com/c.php
Accept-Language: ja
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; Sleipnir/2.8.5)
Host: hushi.x0.com
Content-Length: 93
Proxy-Connection: Keep-Alive
Pragma: no-cache
from=index
POST http://example.com/b.php HTTP/1.1
Accept: */*
Accept-Language: ja
Referer:http://example.com/a.php
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.21022; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30618; Sleipnir/2.8.5)
Host: hushi.x0.com
Content-Length: 10
Proxy-Connection: Keep-Alive
Pragma: no-cache
from=index
と、ちゃんと両方b.phpにpost出来ているようにしか見えないのですが。
原因と解決策を教えて下さい。よろしくお願いします
0553nobodyさん
2009/05/23(土) 13:26:42ID:???Ajaxを勉強しているっぽいのはわかるけど。
0554nobodyさん
2009/05/23(土) 13:58:49ID:xzc/N9L3http://example.com/a.php は
http://example.com/a.html と置き換えていただいて結構です。
そしてjsはスクリプトタグで囲って
<script language="javascript">
function go(){
senddata="from=index";
url="b.php";
httpoj = new XMLHttpRequest();
httpoj.open("POST",url,true);
httpoj.onreadystatechange = function(){
if(httpoj.readyState==4){clipboardData.setData("Text",httpoj.responseText);alert(httpoj.responseText);process(data,mode);}
}
httpoj.send(senddata);
}
</script>
こんな感じです。
そう、ajaxに挑戦しています。
しかしpostでデータが全く送られない
厳密には、送ってはいるらしいが、受け取れてない様子なのです。
jsは正常に送信しているらしく、phpの受け取りに異常があると思ったので、phpスレに質問させて頂きました。
0555nobodyさん
2009/05/23(土) 14:27:01ID:???<?php
function validate(){
$err = array();
if(!isset($_POST['namae']) || '' === $_POST['namae']){
$err[]= "警告:名前空っぽ";
}
if(!isset($_POST['kana']) || '' === $_POST['kana']){
$err[]= "警告:カナ空っぽ";
}
if(!isset($_POST['mail']) || '' === $_POST['mail']){
$err[]= "警告:メール空っぽ";
}
return $err;
}
$errors = validate();
if(count($errors) > 0){
foreach($errors as $eachError){
echo $eachError . '<br />';
}
} else{
echo '問題なし';
}
0556nobodyさん
2009/05/23(土) 18:23:01ID:???httpoj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
httpoj.send(senddata);
0557nobodyさん
2009/05/23(土) 19:16:48ID:6DL8AN4q自分が作ってるアプリで、GDを使ってサイズ変更+複製したら
error.logに Allowed memory size of 1234567890 bytes exhausted と出たので
php.iniのmemory_limitで上限値を上げました。
たかがGDでメモリが足りないなんてことになるのは普通なんでしょうか?
作り方が悪いんでしょうか?
最大、一度に7ファイル画像UPしてそれぞれGDするんですが…
0558nobodyさん
2009/05/23(土) 19:37:43ID:???BMPとして丸ごとデータを持ってるようなものなので、それなりにメモリは食う。
0559nobodyさん
2009/05/23(土) 19:38:33ID:???無限ループとかしてんじゃね?
0560nobodyさん
2009/05/23(土) 20:35:33ID:???イベントログにはxdebug.dllが原因でapacheがクラッシュしたと残ってる。
ステップ実行でも、通常のリクエストでも起こって、再現性はない。
zend_extension_ts でロードしてるけど extension=xdebug.dll でロードすれば
ステップ実行はできないけど安定するみたい。
xdebug.dllは、オフィシャルとactivestate(KomodoIDE用)のバイナリで試したけど、大差なかった。
誰かお助けを
vista sp1 x86, apache 2.2, php 5.2.6-5.2.9-2, xdebug 2.03-2.04
0561nobodyさん
2009/05/23(土) 20:53:51ID:???0562nobodyさん
2009/05/23(土) 22:44:07ID:???どんな感じになってるんですか?
0563nobodyさん
2009/05/23(土) 22:44:58ID:HvWc9rw90564nobodyさん
2009/05/23(土) 23:46:03ID:6DL8AN4qありがとうございました
0565nobodyさん
2009/05/24(日) 02:59:12ID:???ログインっていうのは基本的にセッションを使って行っています。
セッションというのはそのユーザがWebサイトに入ったときにWebサーバから発行されるもので、
色々な情報を保持することができます。
このセッションは、ユーザがブラウザを閉じたりすると無効になります。
ログインするときに入力したIDとパスワードで認証を完了すると、そのユーザに発行されるセッションには、
「IDパス認証済み」という情報が付与されます。
一方、ユーザしか見れないページには『「IDパス認証済み」というセッション情報があるかどうか』を検査するコードが存在し、
存在する場合にはユーザにページを見せるような構造になっています。
ユーザがログインに使ったIDとパスワードをそのまま使わせているダメなサーバもありますが、
主にこんな形でメンバー制サイトは運用されていると思います。
0566nobodyさん
2009/05/24(日) 03:30:47ID:???ならねーよ、馬鹿。
0567nobodyさん
2009/05/24(日) 03:52:50ID:???0568nobodyさん
2009/05/24(日) 04:49:35ID:???0569nobodyさん
2009/05/24(日) 05:02:48ID:???0570nobodyさん
2009/05/24(日) 05:19:52ID:1c4u+X3P0571nobodyさん
2009/05/24(日) 05:50:47ID:???0572nobodyさん
2009/05/24(日) 10:52:54ID:???クッキーの有効期限を指定しない場合はブラウザを落とすと消える。
つうか、実際にブラウザ閉じてもセッションが継続するサイトなんぞ山のようにあるだろ馬鹿。
0573nobodyさん
2009/05/24(日) 13:52:15ID:???0574nobodyさん
2009/05/24(日) 14:13:45ID:???何も変化ありませんでした。
phpinfoで見ると、ちゃんと
_SERVER["CONTENT_TYPE"] application/x-www-form-urlencoded
と送信されています。
0575nobodyさん
2009/05/24(日) 15:38:23ID:???0576575
2009/05/24(日) 15:39:39ID:???0577nobodyさん
2009/05/24(日) 19:13:01ID:???どのようなスクリプトが使えるのでしょうか?
0578nobodyさん
2009/05/24(日) 19:32:22ID:???0579nobodyさん
2009/05/24(日) 20:20:37ID:luv0xO7F切り出す開始位置の値によって最後の一文字が欠落してしまいますが、これは開始位置が
文字の途中(バイトシーケンス中)と重なってしまうことにより起こる仕様なのでしょうか。
// SJIS-WINでのmb_strcut
mb_internal_encoding('sjis-win');
$str = "12345678901234567890ー";
echo mb_strcut($str, 15). "\n";
// 出力: 8901234567890
echo mb_strcut($str, 10). "\n";
// 出力: 678901234567890ー
// UTF-8でも同様でした。
mb_internal_encoding('UTF-8');
echo mb_strcut(mb_convert_encoding($str, "UTF-8", "sjis-win"), 15). "\n";
// 出力: 678901234567890ー
echo mb_strcut(mb_convert_encoding($str, "UTF-8", "sjis-win"), 10). "\n";
// 出力: 45678901234567890
PHP 5.2.9-2、Windows Vista SP2
0581nobodyさん
2009/05/25(月) 22:50:10ID:1PMYVgsN今、PHP5とmysql、phpMyAdmin、 CentOS5(不慣れ) でサイト作っています、そこでブラウザから以下の
クエリを実行したら mysql_affected_rowが-1を返します。
実行したクエリ> delete from `hoge` where `uId`=100 and `category`='foo'
が、phpMyAdminのクエリ画面で直接上記のクエリを実行すると、正しく削除実行されます。
どんな原因が考えられるでしょうか?
あと、このクエリのページでは、上のクエリの前にもう一つクエリ($sql_1)を実行してて、トランザクションさせようとしてます。
$DB -> Execute("BEGIN");//Pearのadodbを利用してクエリ
$sqlResult_1 = $DB -> Execute($sql_1);//これはちゃんと実行されます
if(!$sqlResult_1){
$DB -> Execute("ROLLBACK");
}
$DB -> Execute($deleteSql);//これが失敗します、$deleteSqlの中身が上記のものです
$deletedNum = mysql_affected_rows();
if($deletedNum != -1){
//成功した場合の処理。実行されません…
}
$DB -> Execute("COMMIT");//トランザクション本実行
変でしょうか? $DBで定義されてるユーザ情報、サーバ情報は共通で使っています。
よろしくお願いします
0582nobodyさん
2009/05/25(月) 23:24:26ID:KRPzGQP0お手本になる、シンプルでエレガントなスクリプトあったら教えてください。
0583nobodyさん
2009/05/25(月) 23:32:16ID:???0585nobodyさん
2009/05/26(火) 10:37:03ID:e9nrbvXePHP内にJavaScriptベタ書きってなんだよwwww
しかも、一部動作しない部分があってデバッグしてみたんだが
コメントで
「○○をする関数」って書いてあった
いやこれコメントアウトしてねーじゃんwww
こういうソース回されたときってどう対処してるよ
明らかにひどいやつ、しかもまだリリース前なんだぜ?
0586nobodyさん
2009/05/26(火) 10:43:19ID:???0587nobodyさん
2009/05/26(火) 10:45:06ID:???リリースまで時間がない→見なかった振りをして未実装部分に取り掛かる
0589nobodyさん
2009/05/26(火) 10:50:54ID:e9nrbvXeオフショアで外人が組んでたスクリプト
XHTMLすら同じIDを2つ以上使ってるんだぜ?まじひどい
0590nobodyさん
2009/05/26(火) 11:00:46ID:???上司 「どのくらいダメなんだ?」
お前 「動かないとは言いませんけど、構文とか滅茶苦茶です」
上司 「動くなら問題ないだろ。お前のセンスに合う合わないなんてどーでもいい」
お前 「・・・・・・」
上司 「ほら、さっさと作業にもどれ! リリースは来月頭なんだからな!」
0591nobodyさん
2009/05/26(火) 11:02:58ID:e9nrbvXe0592軟式PHP
2009/05/26(火) 13:09:39ID:???プログラム関連板全体に言えるが。
>>591
マテ。あわてるな。
トリガーでdeleteされたら別テーブルにコピーしてるに違いない。
0593nobodyさん
2009/05/26(火) 16:41:29ID:UQeZnrko無料レンタルサーバーでPHPを動かした場合、メモリはおよそ幾らくらい使用可能でしょうか?
多すぎると、エラーで停止しますか? もしくはHDDに移されて動作が遅くなりますか?
0594nobodyさん
2009/05/26(火) 16:43:25ID:e9nrbvXe0595nobodyさん
2009/05/26(火) 16:51:53ID:UQeZnrko0596nobodyさん
2009/05/26(火) 16:56:15ID:UQeZnrko実行開始までにかかる部分で負荷が大きいようでした。
0597軟式PHP
2009/05/26(火) 17:09:04ID:???使用可能なメモリはphpinfoしてmemory_limitを見るべし。
オーバーするとエラーで停止する。
>>595
fastCGIだったらオーバーヘッドも少なく、C/C++の方が速いと思う。
思うだけでやったことはない。
0598nobodyさん
2009/05/26(火) 17:10:36ID:UQeZnrko0599sage
2009/05/26(火) 18:12:49ID:???【PHPのバージョン】php5.2
【連携ソフトウェア】qmail(sendmailコマンドは使用可能)
【質問内容】受信したメールに添付されている画像等を
特定のフォルダへ投げるようにするにはどうすればいいでしょうか。
.qmailに転送用のものを置けばいいとは思うのですが、どのようなものを置けばいいのか
サンプルなどあれば教えてください。
0600nobodyさん
2009/05/26(火) 18:31:35ID:UQeZnrkoatpageとtok2で調べたのですが、atpageはアクセス拒否でtok2は8Mでした。
0602nobodyさん
2009/05/26(火) 20:56:23ID:UQeZnrkoPHPを高速化させる部品があるみたいですがこれは導入出来ないと思いました。
0603nobodyさん
2009/05/26(火) 21:03:05ID:???ただでさえ他ユーザーとリソースの食い合いするんだから。
0604nobodyさん
2009/05/26(火) 21:28:08ID:???|/usr/bin/php -q /example/example.php >& /dev/null
./Maildir/
とかやって example.php でなんとかする
0605nobodyさん
2009/05/27(水) 00:14:56ID:???そういう時は、「完成品」を見るのは微妙。
自分のコードを、どうやれば「完成品」に近づけられるのかが分からないからな。
「完成品」のどこがどういいのかも、実際に書き換えたりメンテしたりしないと分からない事が多い。
指導するにしても、おまいの現時点でのレベルが分からんから他人にはどうしようもないしな。
上手い人に自分のコードを渡して、考えている事を聞かせてもらいながら目の前で「美しく」書き換えてもらうのが一番分かりやすい。
…んだが、まあ難しい事が多いしなぁ。
0606nobodyさん
2009/05/27(水) 00:31:02ID:Cc/G0jS50607nobodyさん
2009/05/27(水) 00:35:06ID:???0608605
2009/05/27(水) 00:55:02ID:???できりゃ構わないけどな
MVC構造のフレームワーク使ってるのに何故かテンプレートにロジックが書いてある、とか、そういう事になるのがオチだと思う
使いまわす価値のあるコード作法ってだいたいデザインパターンという形で既に体系化されてるから、ある程度のレベル以上の奴はそっちを座学した方が早いしな
0609nobodyさん
2009/05/27(水) 01:07:23ID:???きれいなコードを書くために心がけること
・関数名は分かりやすい名前を付ける。イミフな省略はしない。多少長くなってもキニシナイ。
・同様に変数名も分かりやすい名前を付ける。
・空行を多く入れてみる。
藤原博文さんの本だったかな?
フォントを小さく(5ptとか)して見て、コードが黒々してたら、たいてい読みづらい、って書かれてた気がする。
・一つの関数内のコードをダラダラと書かない。意味の単位で小分けする。
理想は、コメントや空行を含めても、スクロールせずに一つの関数のコードがみえること。最悪100行以内に押さえる。
・同じ処理の塊をいろんな箇所に書かない。極力、関数としてまとめる。
まとめすぎて、かえって分かりづらくなるかもしれないが、最初は気にせずガンガンまとめてしまう。そのうち常識の範囲内がどの程度かわかるようになる...はず
・フラグの多様は控える。気がつきゃ万国博覧会になっちゃうよ。
・トリッキーなことはしない。
有名どころでは、ループ抜けるのに例外使うとか
いずれは、そんなトッリキーな手段に頼らざるを得ないといけないかもしれないが、始めは完全禁止の気持ちで。
関数分けしていくと、呼び出しが深くなって遅くなるとか言われるかもしれないけど、そんなところがボトルネックになるのはまずないから、キニシナイ。
0610nobodyさん
2009/05/27(水) 01:25:42ID:vJelIhGL単に見かけを綺麗にしたいならcode beautifierの類を使えば早い。
ttp://codeassembly.com/examples/beautifier.php
0612nobodyさん
2009/05/27(水) 02:08:35ID:Cc/G0jS5丁寧な回答ありがとうございました
0613nobodyさん
2009/05/27(水) 02:12:26ID:???英語も勉強するべきなんでしょうか
0614nobodyさん
2009/05/27(水) 02:41:03ID:???・変数への再代入の禁止
原則、ある変数には一度しか値を代入しない。次に代入する時はケチケチ使い回さず新しい変数を用意する
配列の合計を求める時など、何かをまとめる時だけは例外だけど
・多重ネストの回避
ifのネストが深くなったら、if内の処理をごっそりそのまま関数に切り出す事をまず考える
foreach、switchなども含め、どんな複雑な処理であっても、関数内のネストを一重だけにする事も可能
特にswitchは、その部分を単独の関数として切り出すことを真っ先に考えるべき
・グローバル変数の禁止
まずは、使う変数は全て関数の引数にする
すると、同じ引数を取る関数群がいくつか見えてくる。これが、どこをクラス化するかを判断する一番安全な方法
・手続き的にではなく、宣言的に書く
「Aに処理Xを加えて変数Bに、それに処理Yをして変数Cに」という思考を捨てる
「CはBにYをしたもの」「BはAにXをしたもの」という順序で、つまり定義を記述する感じでプログラムを書く
一時変数を同名の関数に置き換えていく感じで、一時変数を削っていくのが分かりやすい手順
>613
ローマ字より英単語のほうが読みやすいだろjk
まあ、そういうレベルじゃなく、$variableでも命名としては最低の部類に入るけどな
0615nobodyさん
2009/05/27(水) 02:41:42ID:???0616nobodyさん
2009/05/27(水) 03:39:43ID:vJelIhGL・ハンガリアン記法っぽいの
$intUserId, $strBody
・アンダーバーで繋ぐ
$user_id, $regex_str
・どうでもいいカウンタ変数
$i, $j, $k
・その他
foreachをネストして多次元配列を展開する場合に使う最初の一時変数は
何かこうもっと良い命名がある気がするけど思いつかないからv_を接頭辞にした。
foreach ($array as $v_array) {
foreach ($v_array as $key => $value) {
}
}
0617nobodyさん
2009/05/27(水) 04:08:53ID:???絶対悪態付きたくなるから、何が問題か分かる。
0618nobodyさん
2009/05/27(水) 05:43:01ID:???・手続き的にではなく、宣言的に書く
「Aに処理Xを加えて変数Bに、それに処理Yをして変数Cに」という思考を捨てる
「CはBにYをしたもの」「BはAにXをしたもの」という順序で、つまり定義を記述する感じでプログラムを書く
一時変数を同名の関数に置き換えていく感じで、一時変数を削っていくのが分かりやすい手順
$B=X($A);
$C=Y($B);
は分かるが、「CはBにYをしたもの」「BはAにXをしたもの」ってどういう事?
0619nobodyさん
2009/05/27(水) 08:55:18ID:???型にハマったんじゃ新しいもの生み出せない ゾと
0620nobodyさん
2009/05/27(水) 09:45:02ID:???foreach($years as $eachYear){
foreach($month as $eachMonth)
}
0621nobodyさん
2009/05/27(水) 09:47:36ID:???0622nobodyさん
2009/05/27(水) 21:58:18ID:tZbxcqT7A.csv
ID 名前
00001 あああああ
00002 いいいいい
00003 うううううう
B.csv
00004 えええええ
00005 おおおおお
00006 かかかかか
csvファイルAからBへ特定の行だけを移動したいと思ってます。
チェックボックスで選ばれたIDの行をAから削除しBへ書き込むプログラムはどうすりゃいいんでしょうか?
IDは重複する事はありません。
0623nobodyさん
2009/05/27(水) 22:15:30ID:???phase2.postされたチェックボックスのID値を見てA.csvを読み込み該当の行を特定、B.csvを追記モードでopenして追記。A.csvから該当行を削除。
こんなもんか
0625nobodyさん
2009/05/28(木) 02:36:09ID:PcD3hYBe【サーバー】Apache (Unix) PHP/5.2.8 mod_ssl/2.8.28 OpenSSL/0.9.7j
【PHPのバージョン】php5.2.8
【連携ソフトウェア】mysql
【質問内容】
通常のサイトから、SSLのサイトへ向けてPOST送信でデータを渡す際、
hidden だと値が渡らないという現象に見舞われてるのですが、
どうすれば解決するでしょうか。
サンプルソースです
(改行が多すぎるってエラーが出たので、次に続きます)
0626625
2009/05/28(木) 02:37:02ID:PcD3hYBeサンプルソースです
「送信元」(test.html)
<html>
<body>
<form action='https://xxxxxxxx.net/test.php' method='post'>
<input type='text' name='test' value='12345'>
<input type='hidden' name='kakushi' value'abcd'>
<input type='submit' name='submit' value='送信'>
</form>
</body>
</html>
「送信先」(test.php)
<?php
print_r ( $_REQUEST ) . "<br />";
print_r ( $_POST );
?>
「結果」
Array ( [test] => 12345 [kakushi] => )
Array ( [test] => 12345 [kakushi] => )
「期待すること」
Array ( [test] => 12345 [kakushi] => abcd )
Array ( [test] => 12345 [kakushi] => abcd )
よろしくお願いします m(__)m
0627625
2009/05/28(木) 02:53:41ID:PcD3hYBe先ほど、「通常のサイトから、SSLのサイトへ向けて」って書きましたけど、
同じSSLのサイト内でも同様にhiddenの値が渡りませんでした。
これはひょっとしたらスレ違いなのでしょうか。
0628nobodyさん
2009/05/28(木) 03:03:25ID:???↓
value='abcd'>
0629nobodyさん
2009/05/28(木) 03:13:26ID:???0630625
2009/05/28(木) 04:34:02ID:PcD3hYBe世の中、解決できない問題はないんだな
>>628 dクス
0631nobodyさん
2009/05/28(木) 08:39:32ID:???0632nobodyさん
2009/05/28(木) 14:50:53ID:rnletbDkお勧めがあったら情報共有しましょう。
ちなみに私は日経ソフトウェアとDB Magazineくらいです。
0633nobodyさん
2009/05/28(木) 14:53:59ID:???0634nobodyさん
2009/05/28(木) 14:58:50ID:???0635nobodyさん
2009/05/28(木) 18:37:52ID:a/iG0y0pどうしたらいいですか?
zendFWでアプリケーション領域に蓄積されてる画像を、zendFWとは別に単独で
動いてるphpの中で動かしたいんですが…
0636nobodyさん
2009/05/28(木) 19:22:36ID:???0639nobodyさん
2009/05/28(木) 20:06:58ID:cUediPPlcase "";
print("BOX1が未入力<br>");
break;
case(strlen($textbox1) < $minlen);
print("規定の文字数以下<br>");
break;
case(ereg("^/", $textbox1)==true);
print("先頭に/を含んではいけません<br>");
break;
}
switch ($textbox2){
print("BOX1が未入力<br>");
break;
〜以下同じような事がずらずら
}
//ここまでにbreakがあったらここで処理を停止したい
XXX
//ここ以降に別の処理とかSQLに書き込み等
YYY
XXXの所までにbreakに掛からなければexit等を使い、進ませないように書くにはどんな
書き方がありますか?
if (breakがあったら){
exit;
}
のような事はできないんでしょうか?
0640nobodyさん
2009/05/28(木) 20:18:24ID:???0641nobodyさん
2009/05/28(木) 20:20:17ID:???0642nobodyさん
2009/05/28(木) 20:30:56ID:a/iG0y0pおおー
それが正解っぽいですね! どうもありがとう
他の方もありがとう
0643nobodyさん
2009/05/28(木) 20:41:12ID:pePXJ68I本とwebで十分。
0644nobodyさん
2009/05/28(木) 21:25:31ID:cUediPPlありがとうございました。「フラグを立てる」の意味が解らなかったのでぐぐったけど
意外と少なかった気がしますが試行錯誤の末、解決できました。まず
$flag = 0;を宣言、caseのケツに$flag = 1;を書いておいてXXXの部分に
if($break){
exit();}
を書いたらうまく行きました。この場合の「フラグを立てる」というのは
こうした事をさすのでしょうか?
重ね重ねくだ質ですがお願いします。
0645nobodyさん
2009/05/28(木) 21:26:46ID:cUediPPl訂正・・if($break){ではなくてif($flag){ でした。
0646nobodyさん
2009/05/28(木) 21:27:07ID:???0647nobodyさん
2009/05/28(木) 21:27:54ID:???0648nobodyさん
2009/05/28(木) 21:31:52ID:???>555
0649馬鹿ですみません><!
2009/05/28(木) 22:35:16ID:ib08ur5Fif ( in_array('_GET', $request_keys) ||
in_array('_POST', $request_keys) ||
in_array('_COOKIE', $request_keys) ||
in_array('_FILES', $request_keys) ||
in_array('_SERVER', $request_keys) ||
よく見るソースコードで書いてあるんだけど
これって誰得なんですかぁ?
0650nobodyさん
2009/05/28(木) 22:37:20ID:???0651馬鹿ですみません><!
2009/05/28(木) 22:39:15ID:ib08ur5Fです。
0654nobodyさん
2009/05/28(木) 22:43:33ID:???0655馬鹿ですみません><!
2009/05/28(木) 22:43:52ID:ib08ur5F0656馬鹿ですみません><!
2009/05/28(木) 22:49:01ID:ib08ur5F俺分からないぁ〜馬鹿だから・・・
PHPer
0657nobodyさん
2009/05/28(木) 22:49:07ID:???ttp://php.benscom.com/manual/ja/language.variables.superglobals.php
0658nobodyさん
2009/05/28(木) 22:53:56ID:???何がしたいのかわけわからんw
0660馬鹿ですみません><!
2009/05/28(木) 22:55:42ID:ib08ur5F// Disallow requests that contain some _XYZ global variables
//
$request_keys = array_keys($_REQUEST);
if ( in_array('_GET', $request_keys) ||
in_array('_POST', $request_keys) || in_array('_COOKIE', $request_keys) ||
in_array('_FILES', $request_keys) || in_array('_SERVER', $request_keys) ||
in_array('_ENV', $request_keys) || in_array('_REQUEST', $request_keys) )
die('Disallowed request variable found. Exited.');
//
// Unset global variables
//
if ( ini_get('register_globals') ) {
foreach ( $_REQUEST as $var_name => $null )
unset($$var_name);
unset($null);
}
0661馬鹿ですみません><!
2009/05/28(木) 22:58:19ID:ib08ur5F誰得なの? まじで。。。
0662nobodyさん
2009/05/28(木) 22:58:31ID:???けどそれって、んな大層に書くようなことかなあ。
窓硝子は防犯上危険だといって、でかい南京錠をかけてるようだ。
まず先に窓硝子を止めればいいのに。
0663nobodyさん
2009/05/28(木) 23:00:20ID:???0664nobodyさん
2009/05/28(木) 23:19:07ID:???$_REQUEST 経由で入ってきた変数を
サニタイズする、ってところかな。
0665馬鹿ですみません><!
2009/05/28(木) 23:29:14ID:ib08ur5Fforeach ( $_REQUEST as $var_name => $null )
unset($$var_name);
unset($null);
}
ここは馬鹿でもわかったwwwwwwwwwww
0666nobodyさん
2009/05/28(木) 23:38:45ID:???流れ的にはそのような処理かと思います
色々やってみたのですがなかなかうまくいきません
どなたか例文でもいただけないでしょうか?
0667nobodyさん
2009/05/28(木) 23:39:41ID:???0668nobodyさん
2009/05/28(木) 23:41:59ID:???話はそれからだ
0670nobodyさん
2009/05/28(木) 23:54:08ID:???phase1.A.csvを読み込んで
(普通に表示)
行単位にIDに紐付けたチェックボックスをつけつつ表示
phase2.postされたチェックボックスのID値を見て
A.csvを読み込み
該当の行を特定
B.csvを追記モードでopenして
追記。
A.csvから該当行を削除。
どこが分からないんだ?
0671nobodyさん
2009/05/29(金) 00:27:40ID:???0672nobodyさん
2009/05/29(金) 14:30:15ID:???<?php $f=fopen("A.csv","r+") or die("x.");$fb = fopen("B.csv","a") or (fclose($f) and die("x."));echo '<form action="?" method="post">';
$al = array(join(",",fgetcsv($f)));while (($d = fgetcsv($f))){if( $_POST["sb"] == "ex" && in_array($d[0],$_POST["c"])){fputcsv($fb,$d);}else{echo '<input type="checkbox" name="c[]" value="'.$d[0].'">'.$d[1].'<br>';$al[] = join(',',$d);}
}echo '<input type="submit" name="sb" value="ex"></form>';rewind($f);fputs($f,join("\n",$al));ftruncate($f,strlen(join("\n",$al)));fclose($f);fclose($fb); ?>
これで我慢しとけ。
0673nobodyさん
2009/05/29(金) 22:49:20ID:sUbabdXeUMLとかを使うことが多いんでしょうか?
0674nobodyさん
2009/05/29(金) 22:56:15ID:???0675nobodyさん
2009/05/29(金) 22:56:29ID:???とかかな…
0676nobodyさん
2009/05/29(金) 22:59:20ID:???簡単でしょ?」
とかもあるな。
0677nobodyさん
2009/05/30(土) 08:08:45ID:???渡されるのは要件の箇条書きとかイメージシートで、なぜか仕様書は作ったやつが書くことが多い世にも不思議な物語。
0678nobodyさん
2009/05/30(土) 08:28:54ID:???0679nobodyさん
2009/05/30(土) 09:16:41ID:???どちらかというと仕様を忘れないための仕様書になる。
家建てた後に設計書を作るイメージだなwwww
0680nobodyさん
2009/06/01(月) 09:21:13ID:Q4RGmDnB転送されてきたメールはどこに格納されるんでしょうか?
サーバーがqmailだったので.qmailでphpに飛ばす事は出来るようになったんですが
飛ばされた時にどこに格納されているのかわからないので、どうやって取り出して分割すればよいのかがわかりません。
そういったことをやってるサンプルとかあれば教えてもらえないでしょうか。
0681nobodyさん
2009/06/01(月) 09:53:45ID:???どこに格納とかじゃなくて、qmailからphpに飛ばせてると言うことは、
標準入力(stdin)から受け取れば良い。
file_get_contents("php://stdin");で受け取り
Mail_mimeDecodeとかで本文・添付を分ければ良いと思う。
0682681
2009/06/01(月) 09:58:26ID:Q4RGmDnBサンクス。
php://stdin ってのを知らなかった。
ちょっとやってみます。
0683nobodyさん
2009/06/01(月) 10:45:30ID:J3ZG9zzj$_COOKIE['cookie'] = true;
if($_COOKIE['cookie'] !== true) {
die("Cookieは無効です。");
}
これでCookieが無効かどうか判別しようとしたのですが、CookieをOFFにしてもtrueになります
0684nobodyさん
2009/06/01(月) 10:58:47ID:4hjBfWfCPHP5、Windows XP Proにて、コマンドラインアプリを作ってます。
動的にフォルダ名を指定して、エクスプローラー(またはその他のファイラー)で開こうとしています。
コンソール画面上・プログラム上ではなく、エクスプローラーに、特定フォルダを開かせるにはどうすればよいでしょうか?
0685nobodyさん
2009/06/01(月) 11:02:33ID:???if(isset($_COOKIE['hoge']))
みたいに確認する
0686nobodyさん
2009/06/01(月) 11:17:45ID:???phpからエクスプローラをどう呼んでるのか知らんが
explorer.exe <フォルダのpath>
じゃダメなん?
0687nobodyさん
2009/06/01(月) 12:14:45ID:???system('explorer C:\');
これでいけました!
systemとかコマンドラインオプション渡せばいいことはわかっていたのですが、
どうも自分の使っていたファイラーだとコマンドラインオプションが違うようで、
つまらないところではまってしまってました・・・。
ありがとうございました。
0688nobodyさん
2009/06/01(月) 12:39:59ID:Sqhg3GlCみたいな文字列があったとき、>>数字のペアだけを抜き出して配列に格納できるような関数はありますでしょうか?
explodeみたいなやつで、かつ正規表現でマッチできるような感じです。
preg_matchである程度対応できたのですが、
$mojiは可変で、>>数字があったりなかったり、これよりも増えたりして、
さらに>>数字を抜き出す数もこちらで指定したときにpreg_matchでは難しかったので、
とりあえず>>数字ペアだけでも全て抜きだせればいいなぁと思いました。
抜き出す方法、または便利な関数があれば教えてくださいよろしくお願いします。
0689nobodyさん
2009/06/01(月) 12:40:54ID:J3ZG9zzjpreg_matchで余裕
お前の書き方が悪いだけ
0690nobodyさん
2009/06/01(月) 13:01:18ID:Sqhg3GlCpreg_match_allで思い通りの挙動になりました。
0691nobodyさん
2009/06/01(月) 13:43:18ID:FEmWlQvb$moji = "あいうえお>>21かきくけこ>>12さしすせそ>>112たちつ>>1てと";
$pattern = "/[^0-9>]/";
$result = preg_replace($pattern, "", $moji);
$result = explode('>>', $result);
print_r($result);
初心者だけどこれぐらいしか思いつかねえwww
0692nobodyさん
2009/06/01(月) 13:48:56ID:???0693nobodyさん
2009/06/01(月) 19:49:55ID:???ある配列変数が、メモリ上で使用しているバイト数を調べるにはどうすればいいでしょうか?
0694nobodyさん
2009/06/01(月) 19:54:46ID:???0695nobodyさん
2009/06/02(火) 07:12:19ID:???これって複数の人が同時にスレを作成した場合どういう処理をしてるのでしょうか?
早勝ちでずらしてるのかな?
その場合、極端な話1000人の人が同時にスレを立てたら1000回待ちが入ることになりますよね。
0696nobodyさん
2009/06/02(火) 07:23:52ID:???0697nobodyさん
2009/06/02(火) 07:24:01ID:???0698nobodyさん
2009/06/02(火) 09:21:15ID:w20GGpoy【PHPのバージョン】php5.26
【質問内容】 OS上でpingやdigを叩いて結果を表示できますが、PHPからコマンドを叩いて
結果を受け取るにはどの関数を使用すればいいですか?
0699nobodyさん
2009/06/02(火) 09:35:45ID:???0700nobodyさん
2009/06/02(火) 13:42:11ID:???0701nobodyさん
2009/06/02(火) 14:10:47ID:???0702nobodyさん
2009/06/02(火) 19:00:26ID:gh4uNvVXmysql5を対象に、SELECT文をテストしてます。
これで、帰って来た行数を取得する処理は以下のようなやり方で良いんでしょうか?
//クエリ(pear のadodb利用)
$sql = "SELECT * FROM `".$table."` WHERE `uId`=".$uId." and `uType`= ".$uType." and `ken`='Tokyo'";
$sqlResult = $DB -> Execute($sql);
//戻って来た数を数える
$selectNum = 0;
while(!$sqlResult->EOF){
$selectNum ++;
$sqlResult -> MoveNext();
}
echo "対応するデータが".$selectNum."件ありました";
DELETEやUPDATEなら mysql_affected_rows()がありますが、SELECTは
こんな感じです。もっとスマートなやり方あったら教えてください。
0704nobodyさん
2009/06/02(火) 21:00:45ID:csgf+sFwsession_start();
$mad = $_SESSION['meado'];
$message = '';
require('ransu.php');
echo $message;//乱数確認の為にとりあえず表示、ここでは正常に表示される
echo "$mad<br>";
$to = "$mad";
mail ("$mad", "test", "$message","From:***@***.***");
session_unset();
?>
ransu.phpで乱数を発生させた結果を$messageに代入してメール(非日本語)を送信するには
どうすれば良いでしょうか?乱数発生させるスクリプト(ransu.php)はこちらの
サイト様よりお借りしたものをそのまま使ってます。
ttp://phpress.enjoy-life-style.com/archives/72
このソースで実行するとメール送信は出来るものの、本文が空っぽになってしまいます。
バージョンはphpinfoではphp5.2.9でしたがOSは表示されなかったので不明ですが
Linuxのようです。よろしくお願いします。
0705nobodyさん
2009/06/02(火) 21:13:15ID:???0707nobodyさん
2009/06/03(水) 04:45:48ID:LqzRRvqmスクラッチのアプリケーションを併用して動かしてます。(centOS)
そこで、
自前のアプリケーションにアップローダを作って、ファイルの最終的な保存場所を
zendのアプリ領域にしたい場合どういう処理したら良いんですか?
パスの設定の仕方がわかりません。
/www/html/uploader.php のアップローダから
/www/Zend/hozonImg/ フォルダに入れたいということです。
よくある /www/html/dummyImg/ に保存する場合は以下で良いはずですが、
copy($tmpFile, '/dummyImg/fixName.jpg');
documentRootの上のディレクトリに保存するのがわかりません。どうしたら??
すみませんがアドバイスお願いします。
0708nobodyさん
2009/06/03(水) 05:55:25ID:???相対パス「..」でもいいけど
0709nobodyさん
2009/06/03(水) 10:12:45ID:???ありがとうございました
普通に、/www/html/uploader.phpから../で /www/htmlにアクセスできました。
ですが、絶対パスで指定とはどうするんでしょうか?
試しに
/../を指定してみましたが上手く行かないです。
0710nobodyさん
2009/06/03(水) 10:33:01ID:???0711nobodyさん
2009/06/03(水) 11:08:48ID:LqzRRvqmありがとうございます
説明がヘタな部分があったのかもしれませんが、ドキュメントルートは
/www/html/ のhtmlの部分です。
/www/html/index.html が http://www.hoge.com/index.htmlに当たります
これだと/www/Zend/hozonImg/の指定は無理ですよね?
Zendのディレクトリは /www/Zend/の位置にあります。
現状では、 www.hoge.com/uploader.phpから copy($file,"../Zend");で
/www/Zend/に保存することが出来たんですが(相対パス指定)
絶対パス指定を copy($file, "/../Zend");という形で試してみても上手く行かないんです。
エラーは以下です
[Tue Jun 02 18:01:16 2009] [error] [client 192.168.0.3] PHP Warning: copy(/../Zend/image.jpg)
[<a href='function.copy'>function. copy</a>]: failed to open stream: No such file or directory in---
0712nobodyさん
2009/06/03(水) 11:11:55ID:I103Ja+X0713nobodyさん
2009/06/03(水) 11:13:28ID:???なんで /../Zend/ なんて愉快な指定になるんだ?
0715nobodyさん
2009/06/03(水) 11:38:39ID:enMSGl6dもうSJISは無理なの?
完全に終わったの?
EUCやUnicodeは文字数のわりにバイト数が多いのでSJISでなんとかしてほしい。
0716nobodyさん
2009/06/03(水) 11:39:39ID:I103Ja+X0717nobodyさん
2009/06/03(水) 11:43:59ID:???0718nobodyさん
2009/06/03(水) 11:54:34ID:???0719711
2009/06/03(水) 13:48:47ID:LqzRRvqm本当に度々すみません、copy($file, "/www/Zend/hozonImg/");でやってみましたが
失敗します。
以下、www.hoge.jp/upload.phpのソース
//ユーザごとのイメージフォルダを作る
$dirName = "/www/hoge/"; //これが "../hoge/"ならエラー起きない
if(!file_exists($dirName)){
mkdir($dirName, 0700); //この行に対して、エラーが出ます
}
//一時保存用ディレクトリに置かれているファイルをリネームしてコピー&移動
if(file_exists($_POST['file_keep'])){
$newFile = mysql_insert_id().".jpg";
copy($_POST['file_keep'], $dirName.$newFile);
chmod($dirName.$newFile,755);
unlink($_POST['file_keep']);
}
出るエラーです。
PHP Warning: mkdir() [<a href='function.mkdir'>function.mkdir</a>]: No such file or directory
おかしいでしょうか?
あと、「絶対パス」って、documentRootのディレクトリを/とした場合のパスで
/index.html は www.hoge.jp/index.html と同義ですよね??
いままで酷い勘違いを延々して来たんだろか?
0720nobodyさん
2009/06/03(水) 13:53:01ID:enMSGl6d"表\";とか
めんどくさくてやってらんないよ。
0721nobodyさん
2009/06/03(水) 13:55:34ID:???>あと、「絶対パス」って、documentRootのディレクトリを/とした場合のパスで
違う。それはあくまでブラウザから見た絶対パス。
phpで扱うのは「サーバー上」の絶対(Full)パス。 wwwディレクトリのFullパスが違うんじゃない?
0723nobodyさん
2009/06/03(水) 14:04:57ID:???documentRoot + /www/Zend が本来の絶対パスでしょ。
phpinfoとかでSCRIPT_FILENAME見てみ。
0724nobodyさん
2009/06/03(水) 14:12:50ID:???生PHPで勉強しろ。
0725711
2009/06/03(水) 14:31:15ID:???ほんとにありがとうございます。
>phpで扱うのは「サーバー上」の絶対(Full)パス。
>documentRoot + /www/Zend が本来の絶対パスでしょ。
知らなかったw よく知らずにいままでやってこれたなぁ、変な感心してます
ほんと助かりました。すっきりした! ありがとう、みなさん
0726nobodyさん
2009/06/03(水) 14:34:20ID:???0727nobodyさん
2009/06/03(水) 14:49:50ID:???0728nobodyさん
2009/06/03(水) 14:52:55ID:???0729nobodyさん
2009/06/03(水) 14:56:04ID:???例えるなら、実際には /var/www/html がDocumentRootで、今まで /var/www/Zend を相対で指定してたのを
絶対パスにしようとして何を思ったか /www/Zend を指定してたってことでしょ。
0730nobodyさん
2009/06/03(水) 14:58:29ID:???てかZendディレクトリってZF自体のコンポーネントが入っているディレクトリ?
そこに画像保存フォルダを作成?
ワケワカメ
0732nobodyさん
2009/06/03(水) 15:01:32ID:???俺は>>719見て>>729書いただけだ。
0733nobodyさん
2009/06/03(水) 15:10:32ID:???0734nobodyさん
2009/06/03(水) 15:12:47ID:???なんてわかんねーだろつってんの。アンカーも貼れない素人は半年ROMってろヴォケ
0735nobodyさん
2009/06/03(水) 15:18:25ID:uN/QnhGZその際、レスポンスを待たずに、先のスクリプトを実行したいと思います。
レスポンスは必要なくなるべく早く先の処理を続けたいのです。
そんな関数はありますか?
javascriptで自鯖にあるPHPをAjaxで呼んで、そのPHPで
file_get_contents('~~);
すれば、ページをすぐ返せそうなきはしますが、PHPだけで出来たら楽かなとおもいまして
また、その方法だとページを閉じるタイミングによって、起動しない確立も少しはあるかなと。
お願いします。
0736nobodyさん
2009/06/03(水) 15:27:53ID:???0737nobodyさん
2009/06/03(水) 15:40:17ID:???接続するために最初のレスポンスは受け取らないといけんと思うけど、
fsockopenとかでソケット通信するのが速度的に速いんじゃない?
0738nobodyくん
2009/06/03(水) 15:44:21ID:YYq96a9Oどこで関数が定義されているか調べながらお菓子を食べているんです。
お菓子を集中して食べるためにはどうしても'どこで'関数が定義されているか
探さない方法ってあると思うんですけど
みなさん何か方法があれば教えてほしいものです。
0739nobodyさん
2009/06/03(水) 15:59:16ID:???あっ ここおかしいな
なるほど おかしい理由が分かったなどのメリットがある
0740nobodyさん
2009/06/03(水) 16:01:19ID:???0741nobodyくん
2009/06/03(水) 16:05:27ID:YYq96a9O0742nobodyさん
2009/06/03(水) 16:09:17ID:???それも面倒ならEclipseやNetBeansにプラグインでも入れて使えばいいと思うよ。
0743nobodyさん
2009/06/03(水) 16:18:40ID:???おめー自閉症の疑いがあるぞ
普通は引用して解決したとか知らなかったとか書いている場合はそれが解決要因だったというニュアンスになるんだよ
日本人なら行間を読もうぜ。
0746nobodyさん
2009/06/03(水) 16:36:05ID:isB4yDuLごめんね
preg_replaceでとある文字列を抜き出して、抜き出した文字列をそのまま関数に投げたいんだけどうまくいかない
具体的に例えると
$val = "_BBS_hoge_\.xxx.ne.jp";
でhogeの部分をaaaaaって関数に投げて、返ってきた結果をhogeのあった場所に代入したいんだけど、
$val = preg_replace("/_BBS_(.+?)_/", aaaaa($1), $val);
ってな感じで書くと「変数名の一文字目に数字は使えないよ」って怒られてしまう
$1を${1}や{$1}、'$1'にしてみたけどやっぱりうまくいかなくてどうしていいものやら……誰かわかる人いたらお願いします
0747734
2009/06/03(水) 16:37:02ID:???もう俺が自閉症って事で良いからつまんねー話題いつまでも引っ張るなヴォケ
あと今後は気軽に自閉症の疑いとか口走るんじゃねーよヴォケ
0748nobodyさん
2009/06/03(水) 16:37:18ID:???0750nobodyさん
2009/06/03(水) 16:57:33ID:isB4yDuLありがとう
でもそれでもうまくいかない……
$$1って書くとやっぱり
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$'
で、
\${1}だと今度は
Warning: Unexpected character in input: '\' (ASCII=92) state=1
Warning: Cannot modify header information - headers already sent by 〜
って怒られる
関係あるかどうかわからないけど文字コードはUTF-8
0751nobodyさん
2009/06/03(水) 17:01:08ID:???0752nobodyさん
2009/06/03(水) 17:06:49ID:isB4yDuLそれもやってみたけどaaaaaが実行されずに
$val = "_BBS_aaaaa(hoge)_\.xxx.ne.jp";
となってしまうんだ
0753nobodyさん
2009/06/03(水) 17:08:41ID:???perlとは違うのだよperlとは
0755nobodyさん
2009/06/03(水) 17:16:08ID:isB4yDuLとりあえずやってみるわ
みんなありがとう
0758nobodyさん
2009/06/03(水) 18:47:27ID:???0759nobodyさん
2009/06/03(水) 18:57:53ID:2UFTgxS5やはり空だったので別の方法を模索中です。
今回の質問の趣旨はrequireで得た内容はセッションに引継ぎは出来ないのでしょうか?
ソースは以下になります、requireするべきtext.txtの内容は1文字のみ数字です。
AA.php実行して、BB.phpにジャンプすると真っ白な画面で何も出ません。
<?php // AA.php
$message = '';
require('text.txt');
$message = $xxx;
session_start();
$_SESSION['s01']=$xxx;
echo $_SESSION['test01'];//ここでは表示される
echo "<br><a href=\"bb.php\" >BB.phpへ</a>";
?>
<?php //BB.php
session_start();
echo $_SESSION['s01'];//ここでは表示されない
session_unset();
?>
0760nobodyさん
2009/06/03(水) 19:04:06ID:???echo $_SESSION['s01'];//ここでは表示されない
なんでキーが違うのさ
0761nobodyさん
2009/06/03(水) 19:07:08ID:2UFTgxS5あ、すいません、タイプミスです。
実際はキーは同じものを使っています。
0762nobodyさん
2009/06/03(水) 20:12:34ID:???0763nobodyさん
2009/06/03(水) 23:25:02ID:YYq96a9O$message = '';
require('text.txt');
$message = $xxx;
session_start();
$_SESSION['s01']=$xxx;
echo $_SESSION['test01'];//ここでは表示される
echo "<br><a href=\"bb.php\" >BB.phpへ</a>";
?>
requireってなんなの?
ここで出力されているからSESSION使えないんじゃない?
0764nobodyさん
2009/06/03(水) 23:37:33ID:YYq96a9O<?php
session_start();
$message = '';
$fp = fopen("text.txt", 'r');
$message = fgets($fp);
$_SESSION['test01']=$message;
echo $_SESSION['test01'];//ここでは表示される
echo "<br><a href=\"bb.php\" >BB.phpへ</a>";
?>
bb.php
<?php //BB.php
session_start();
echo $_SESSION['test01'];//ここでは表示されない
session_unset();
?>
オレならこうするけど・・・
0765759
2009/06/04(木) 03:06:56ID:DxUnkjaQ勉強になりました。
>>764
そのように書けば>>704も解決できました。fopenを使う手があったんですね。
レスくれた方、ありがとうございました。
0766nobodyさん
2009/06/04(木) 08:09:44ID:f7spCjC/がんばってね〜
0767nobodyさん
2009/06/04(木) 11:51:01ID:???Windows上のPHP5で、以下のコマンドを、execコマンドで実行しても何も起こりません。
なぜでしょうか。
"C:\Program Files\X-Finder\XF.exe" "C:\Documents and Settings\myself\My Documents\Work\20090604"
XF.exeはX-Finderというファイラーで、引数の20090604というフォルダを開こうとしています。
前提として
・引数を消して、単純にXF.exeを起動するだけならできる。
・上のコマンドは、execに渡したものと同じ変数をechoして、コンソール上でコピペしたものなので、エスケープのミスとかではない。
execではコマンドライン引数は渡せないのでしょうか?
systemを使っても特に変わりません。
0768nobodyさん
2009/06/04(木) 11:52:21ID:???0769nobodyさん
2009/06/04(木) 12:01:07ID:???exec呼んだあとタスクマネージャのプロセスのとこには無いか?
もしhttpd経由で実行していて実行ユーザーが自分以外だったら
Httpdのサービスのプロパティのログオンのところで
「デスクトップとの対話をサービスに許可」にチェック入れたらどうなる?
↑これは確認のためにやるので、恒久的にはやらんほうがいいけど
0771nobodyさん
2009/06/04(木) 15:20:05ID:???httpd経由でなく、コンソール上からの起動です。
PHPスクリプトと同じディレクトリに.batファイルを置いて、
php WorkDir.php
としています。
もちろん、パスは通しているので、スクリプト自体はちゃんと起動しています。
>>770
cmd.exeとはMS-DOSのことですよね?
php.exeのディレクトリにコピーしましたが、動作変わりませんでした。
0772nobodyさん
2009/06/04(木) 15:29:35ID:???0773nobodyさん
2009/06/04(木) 17:17:32ID:F3Dggw/Wpack('H*', $code);
で変換できるのですが、
この方法だと、
JIS X 0213の一部の漢字が変更できません。
たとえば、
2A6B2 (「月」へんに「亀」という字です)
を変換しようとすると、うまくいきません
どうにかして変換する方法はないでしょうか?
よろしくお願いします。
0774nobodyさん
2009/06/04(木) 18:00:27ID:U8QiT/yT$this->arrJob = $masterData->getMasterData("mtb_job");
とかのソースの
->の意味がよくわかりません。
どなたかお教えいただけたら幸いです。
0775nobodyさん
2009/06/04(木) 18:09:31ID:???http://en.wikipedia.org/wiki/UTF-16/UCS-2#Example_UTF-16_encoding_procedure
>>774
http://www.google.co.jp/search?hl=ja&safe=off&q=php+"->"+意味
0776nobodyさん
2009/06/04(木) 20:39:13ID:???もちろん信頼できるので。
実際に接続するわけではないので、MDB2で捨て接続作るのもアホらしいし・・・。
0777nobodyさん
2009/06/04(木) 20:54:19ID:???文字列と数値にしか対応していないのはとりあえず置いておくとして、
インジェクションとか起こるかな?
function _ociQuote($str = '', $mode = 'text')
{
if ( ( $mode === (string) 'integer' or $mode === (string) 'int' ) && is_int($str) )
{
return $str;
} else {
$str = mysql_real_escape_string($str);
$str = "'".$str."'";
return $str;
}
}
0778nobodyさん
2009/06/04(木) 20:55:13ID:???function _ociQuote($str = '', $mode = 'text')
{
if ( ( $mode === (string) 'integer' or $mode === (string) 'int' ) && is_int($str) )
{
return $str;
} else {
$str = mysql_real_escape_string($str);
$str = "'".$str."'";
return $str;
}
}
0779nobodyさん
2009/06/04(木) 21:35:00ID:???$code = '2A6B2';
$vd = hexdec($code) - 0x10000;
$w1 = ($vd >> 10) | 0xD800;
$w2 = ($vd & 0x3FF) | 0xDC00;
echo pack('n*', $w1, $w2);
0780nobodyさん
2009/06/04(木) 21:36:05ID:ygVccNwTレイアウトの都合で
ポストされた文字を半角で入れた場合は20文字で、全角で入れた場合は10文字に制限したい。
もし全角と半角が混合されていた場合、それに合わせて文字数を制限したいんです。
全角が1文字入った場合は半角は18文字、というようにしたいのです。
今はループで一文字づつ調べて半角全角文字数を数えているのですが
もっと楽な方法ありませんか?
0781nobodyさん
2009/06/04(木) 21:47:26ID:???http://jp.php.net/manual/ja/function.mb-strimwidth.php
こういうことかな?
0783nobodyさん
2009/06/04(木) 22:07:17ID:EBVfDvxX(製作するプログラムはクライアント側ということになります)
ある(やや大きめの)htmlファイルをダウンロードし、そのファイルの
中盤くらいに書いてあるデータを必要としているのですが、
通信相手のサーバに負担をかけないようにいくつかの条件を設定しました。
・gzipエンコーディングに対応
・htmlファイルのダウンロードとその解析を並列して行い、
必要となるデータが書かれている部分をダウンロードし終わったら転送を打ち切る
後者だけならfsockopenで簡単にできるのですが、
前者にも対応するとなるとちょっと簡単なやり方が思いつきませんでした。
cURL拡張を利用して製作した実験用コードを次のレスに書き込みます。
0784783
2009/06/04(木) 22:15:48ID:EBVfDvxX$conn=curl_init('http://www.example.com/foo.html');
curl_setopt($conn,CURLOPT_RETURNTRANSFER,1);
curl_setopt($conn,CURLOPT_ENCODING, 'gzip');
curl_multi_add_handle($mh,$conn);
$active = null;
$mrc = curl_multi_exec($mh,$active);
//php.benscom.comのコピペ
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
$tmp = curl_multi_getcontent($conn[0]);
if (strlen($tmp)>=1)echo mb_substr(curl_multi_getcontent($conn[0]),-10)."<br>\r\n";
ob_flush();flush();
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
0785783
2009/06/04(木) 22:22:44ID:EBVfDvxX(全部出力したら画面が訳の分からないことになるので…)
このコードでとりあえず目的は達成することができました。
長くなりましたがここから質問とさせて頂きます。
もっとスマートなやり方は無いものでしょうか?
言い訳のつもりではないのですが私はなにぶん初心者でして
皆さんにとって常識であることが分かっていないのです
そんなめんどくさい事やらんでもこれで一発じゃん
というコードがもしあるのでしたらお教えいただけると幸いです
0786nobodyさん
2009/06/04(木) 22:22:58ID:???0787783
2009/06/04(木) 22:25:15ID:EBVfDvxX$tmp = curl_multi_getcontent($conn);
if (strlen($tmp)>=1)echo mb_substr(curl_multi_getcontent($conn),-10)."<br>\r\n";
0788783
2009/06/04(木) 22:48:51ID:EBVfDvxXgzopenって通信にも使えるんでしょうか?
まずそこが分かっていません
第一引数がファイル名だし、できなそうに見えるんですがどうなんでしょうか
0789nobodyさん
2009/06/04(木) 22:56:40ID:???むしろダラダラセッションを張りっぱなしにされると面倒だ。解析とか後にしてとっとと切ってくれ。
サーバのためを思うなら
・適当にsleep()して間隔をあけてダウンロードする。curl_multi()で大量にコネクション張って並列DLとか最悪
・複数落とすならKeep-Aliveでセッションを張る。技術的詳細はぐぐれ。これだけでサーバへの負荷はかなり落ちる
0791nobodyさん
2009/06/04(木) 23:46:25ID:f7spCjC/オレなら
<html>
<form method="post" action="">
<textarea name="body"></textarea>
<input type="submit">
</form>
</html>
<?php
$value = trim( $_POST['body'] );
echo '[' . $value . ']';
$mb_length = mb_strlen($value);
$length = strlen($value);
echo "全角";
echo ($length - $mb_length) / 2;
echo "半角";
echo $mb_length - ($length - $mb_length) / 2;
0793nobodyさん
2009/06/05(金) 00:10:20ID:NOP8aSiI適当に書いたけど、どの変がまずかった?w
UTFで試して特に問題なかったんだけど
0794nobodyさん
2009/06/05(金) 00:20:51ID:???0796nobodyさん
2009/06/05(金) 00:26:47ID:???こんなもんは常識だと思うのだが。UTF-8には2バイトより大きい文字が多数存在する。
漢字の大半は3バイトだし、特殊な一部文字は4バイト。
0797nobodyさん
2009/06/05(金) 00:31:57ID:???0798783
2009/06/05(金) 00:37:17ID:fALDRgQl>むしろダラダラセッションを張りっぱなしにされると面倒だ。解析とか後にしてとっとと切ってくれ。
これはもう完全に実装後のチューニングの後考えるべき問題で
手法自体を否定する根拠にはならないと思います
>複数落とすならKeep-Aliveでセッションを張る。
今回は一つしかファイルを必要としないのでkeep-aliveは必要としないのですが
それはそれとして個人的な意見を言うとIE8もFF3もRFCなんか無視して
サーバ当たりの接続数を増やしている昨今 一度に3桁のファイルを落とす
なんて事がない限りもうkeep-aliveやHTTPパイプライニングにこだわる必要は無いと思います
>>790
ヒントください
0800nobodyさん
2009/06/05(金) 00:59:34ID:NOP8aSiI0801nobodyさん
2009/06/05(金) 01:50:06ID:???http://jp2.php.net/manual/ja/function.gzopen.php
user note になんか書いてあるけど、これとは違うかな
0802783
2009/06/05(金) 02:22:20ID:fALDRgQlありがとうございます
勉強になりました
ただこの手法、今一つやりたい事と噛み合わない気がするので
ちょっと調べてみます
0803nobodyさん
2009/06/05(金) 06:11:10ID:iw3Rl46Qfgetsする際に、150から200行だけの情報をゲットしたいときに
forで200回くりかえしif で$i >150 のときだけゲットするようにしたのですが、
この何もしない150回分を省きたいのです。
例えば、fopen( $dat , "r" , 150 , 200 )というように
指定できたら、と思います。
そういった方法はありますでしょうか、またそれに取って代わる関数など
方法があればよろしくお願いします。
0804nobodyさん
2009/06/05(金) 06:57:52ID:???0805nobodyさん
2009/06/05(金) 07:05:34ID:iw3Rl46Qなるほど、少しぐぐってみました
こんな便利なものがあったとは
ありがとうございました。
0806nobodyさん
2009/06/05(金) 08:00:41ID:???クライアント側でも単一ソースを取得するだけなら意味が無いというか、空回りしてるwhileが無駄
zlibは圧縮ストリームの終了フラグを見ているはずなので、そのコードではコンテンツが全て取得されてから処理されているか圧縮転送されていないだろう
パケットを拾ったりベンチマークして確認してみたほうがいいと思う
基本的にストリーム圧縮はチャンクごとに展開できないので平行解析は両立しない。適切なほうを選ぶのがいいのでは
関係ないが接続数が多い「から」Keepaliveが重要になる
こだわれよ
0807nobodyさん
2009/06/05(金) 10:42:13ID:???帯域をケチりたいなら2ch伝統のRange + Deflateでしょw
0808803
2009/06/05(金) 12:24:44ID:iw3Rl46Q$inputs = new NoRewindIterator(new SplFileObject("http://pc11.2ch.net/php/dat/1240835951.dat" , "r"));
$min = 150;
$inputs->seek( $min );
foreach($inputs as $line)
{
echo $line;
}
?>
とやってみたのですが、apache.exe終了ダイアログがでてきて
終了してしまいます。(seek以降のforeach文の部分がなくてもエラーがでます)
イメージ的には、$minまでシークさせておいて、
そこからforeachで、
という感じでできるのかなと思ったのですが・・
アドバイスよろしくおねがいいたします。
php 5.2.6 apache2.0.63
0809nobodyさん
2009/06/05(金) 12:35:03ID:???というか固定長でも無い限り普通に150回分の空回しするほうが早いと思うんだけど。
0810nobodyさん
2009/06/05(金) 12:43:56ID:iw3Rl46Q一応最高で500回くらいの空回しを考えているのですが、
そのまま空回ししておくほうがよいですかね、
今のところは空回しでやる方向でいこうと思います。
ありがとうございました。
0811783
2009/06/05(金) 13:48:15ID:fALDRgQlheader("Content-Type: text/html");
header("Content-Encoding: gzip");
$fp=fopen('target.gz','r');
if($fp!==false){
while(!feof($fp)){
$tmp = fread($fp,1024);
echo $tmp;
ob_flush();flush();
sleep(1);
}
fclose($fp);
}
サーバー側においてある15kバイトのgzipファイルを1024バイトずつ読み込み、
一秒おきに標準出力に吐き出します
0812783
2009/06/05(金) 13:52:02ID:fALDRgQl>>784を若干書き換えて、ループ内で現在利用できる
デコード後の文字の数を返すようにしています
$mh = curl_multi_init();
$conn=curl_init('http://www.example.com/foo.html');
curl_setopt($conn,CURLOPT_RETURNTRANSFER,1);
curl_setopt($conn,CURLOPT_ENCODING, 'gzip');
curl_multi_add_handle($mh,$conn);
$active = null;
$mrc = curl_multi_exec($mh,$active);
//php.benscom.comのコピペ
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
$tmp = curl_multi_getcontent($conn);
if (strlen($tmp)>=1) echo "今の文字数は".strlen($tmp)."だよ<br>";
ob_flush();flush();
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
0813783
2009/06/05(金) 14:12:21ID:fALDRgQl今の文字数は8150だよ
今の文字数は12001だよ
今の文字数は16370だよ
今の文字数は20521だよ
今の文字数は25237だよ
今の文字数は29685だよ
今の文字数は34473だよ
今の文字数は39667だよ
今の文字数は44072だよ
今の文字数は47822だよ
今の文字数は51734だよ
今の文字数は53975だよ
今の文字数は53975だよ
今の文字数は53975だよ
となり、きっちり段階的に取得できています。
(最後の文字数が同じものがいくつか並ぶのは
$mrcがCURLM_CALL_MULTI_PERFORMでなくなるタイミングが遅れるからのようです
本来ならfeofでループ判定するべきなのでしょう)
>>806
というわけでできます
サーバー側が平文の出力を全部バッファしてから圧縮するような実装だと
無意味ですけどね
0814783
2009/06/05(金) 14:13:44ID:fALDRgQlcurl multiだと終了前にcurl_multi_getcontentで部分取得できます
2ちゃんに関していうとrangeで部分取得すると
圧縮せずに送ってくるのであんまり意味無いんですよね
これが一般的なサーバの実装なのかは分かりかねるんですが
range+無圧縮が全体+圧縮より効率的に働くのは
rangeの範囲を相当限定できるようなケースだけだと思います
余談ですがそもそも2ちゃんのdatファイルは最大保持期間5秒とされているので
(あぼーん対策?)
一般的な2ちゃんブラウザで行われてるrangeで新着分を継ぎ足していく
手法は不適切だと思うんですよねー
0815nobodyさん
2009/06/05(金) 15:28:12ID:???私はこんな感じです。
$sql = "SELECT ".
" article_id, ".
" subject, ".
" name, ".
" mail, ".
" url, ".
" comment ".
"FROM ".
" articles ".
"WHERE ".
" article_id = 1 ".
"AND ".
" del_flg < 0 ";
(等角フォントのエディタにはればうまくいくはず)
0816nobodyさん
2009/06/05(金) 15:29:25ID:???0817nobodyさん
2009/06/05(金) 15:47:27ID:???0818nobodyさん
2009/06/05(金) 15:51:40ID:???$sql = "SELECT a, b, c, d, e
FROM hoge
LEFT JOIN hage USING (h_id)
WHERE foo = :foo
AND bar = :bar"
みたいな感じでやってるよ
もしくはオブジェクトのメソッドチェーンとかでもいいんでない?
0819nobodyさん
2009/06/05(金) 15:52:36ID:???$sql = "SELECT a, b, c, d, e
FROM hoge
LEFT JOIN hage USING (h_id)
WHERE foo = :foo
AND bar = :bar";
0820nobodyさん
2009/06/05(金) 16:56:40ID:qGPfEtmY0821nobodyさん
2009/06/05(金) 18:27:00ID:???いや、目的に対して何の検証になってないんだが・・・
バイト数からすると転送コーディングのchunked dataサイズだな
まあ予想通りだ
0823nobodyさん
2009/06/05(金) 18:35:04ID:???テーブルのID(Serial型)へのInsertがうまくいきません。
autoExecuteメソッドに、
$values = array(
//'id'(Serial型なので書かない)
'clm1' => 'text1',
'clm2' => 'text2'
);
こんな感じでデータをセットしていますが、何故かclm1の値が0で
挿入されてしまいidフィールドのシーケンスもインクリメントされません。
何か対処方法があるのでしょうか?
0824nobodyさん
2009/06/05(金) 18:47:47ID:???$sql = "SELECT "
. "* ...
0828783
2009/06/05(金) 19:37:51ID:fALDRgQl>>811のサーバ側プログラムは15kBのgzipファイルを1kずつ吐いているので
当然終了には15秒かかります。
これを>>812で読み込むとgzipファイルを全部DLしてから解凍しているのであれば
最初の「今の文字数は8150だよ」が表示されるまで15秒以上かかるはずです。
しかし実際には>>812を表示してすぐに「今の文字数は8150だよ」と表示されます。
これはcURLがDLした部分のgzipを段階的に解凍している証拠です。
あとは実際に$tmpの中身が解凍された文字列なのか?という問題ですが
これはechoで簡単に確認できます。
検証できてないというのなら反証するコード出してください。
それがプログラマーっつうもんじゃねえのかクソが
0829nobodyさん
2009/06/05(金) 20:17:21ID:???変な検証とかは自分のblogとかでやって欲しいんだが
0830783
2009/06/05(金) 20:43:27ID:fALDRgQl聞きたいのは>>785の、
gzipでエンコードされたファイルをダウンロードしながら並行して解析するための
スマートなコードです
(自分のコードでも目的自体は達成しているのですが糞コードなので)
gzipでエンコードされたファイルをダウンロードしながら並行して解析すること自体が
不可能という意見を頂いたので、それを否定するための検証がダラダラと長くなりました
ご迷惑をおかけしました
0832nobodyさん
2009/06/05(金) 20:55:28ID:???全方位天然くん歓迎だよ
0833nobodyさん
2009/06/05(金) 22:16:31ID:???0834nobodyさん
2009/06/05(金) 22:26:10ID:???CURLOPT_BUFFERSIZEがあるよ
http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTBUFFERSIZE
PHPレベルでのキャッシュもあるようだし、fdset()がどのタイミングでリターンするかは知らね
0836nobodyさん
2009/06/05(金) 22:56:04ID:???0837nobodyさん
2009/06/05(金) 23:24:35ID:u1D4YO7O解約して新規で携帯を買うしかないですか??
0839nobodyさん
2009/06/05(金) 23:41:13ID:???http://jp.php.net/manual/ja/wrappers.php.php
のphp://memoryをSplFileObjectで使う、とか?
0841nobodyさん
2009/06/06(土) 00:10:14ID:???0842840
2009/06/06(土) 00:10:59ID:???0843783
2009/06/06(土) 01:07:42ID:nrE5UTqJ>811のサーバ用で使っているgzipファイルを
ある程度長くて著作権フリーなもの、ということで太宰治の人間失格を
圧縮した物を用います(本当は日本国憲法あたりにしたかったけど短すぎた)
サイズは非圧縮時で151,900バイト、圧縮時で67,671バイトとなっています
この圧縮ファイルを1秒に8192バイトずつ送信します。(9秒後に終わる計算になります)
クライアント側のコードは下記の通り書き換えて、
経過時間、解凍された文字列の文字数、解凍された文字列の最後の文字列
を表示するようにしています
0845783
2009/06/06(土) 01:13:14ID:nrE5UTqJ$mh = curl_multi_init();
$conn=curl_init('http://www.example.com/foo.php');
curl_setopt($conn,CURLOPT_RETURNTRANSFER,1);
curl_setopt($conn, CURLOPT_ENCODING, 'gzip');
curl_multi_add_handle($mh,$conn);
$active = null;
$mrc = curl_multi_exec($mh,$active);
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
$tmp = curl_multi_getcontent($conn);
if (strlen($tmp)>=1){
echo '現在の経過時間は'.(time() - $time).'秒です<br>';
echo '解凍された文字数は'.strlen($tmp).'文字です<br>';
echo '解凍された文字列の最後「'.mb_substr($tmp,-64).'」<br>';
ob_flush();flush();
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
0846783
2009/06/06(土) 01:17:54ID:nrE5UTqJ現在の経過時間は0秒です
解凍された文字数は4738文字です
解凍された文字列の最後「たぎ越えるための頗る実利的な階段に過ぎないのを発見して、にわかに」
現在の経過時間は0秒です
解凍された文字数は16750文字です
解凍された文字列の最後「ました。ほとんど完全に近く人をだまして、そうして、或るひとりの全」
現在の経過時間は1秒です
解凍された文字数は16750文字です
解凍された文字列の最後「ました。ほとんど完全に近く人をだまして、そうして、或るひとりの全」
現在の経過時間は1秒です
解凍された文字数は35377文字です
解凍された文字列の最後「ナした。自分なども、ゴッホの原色版をかなりたくさん見て、タッチの磨v
現在の経過時間は2秒です
解凍された文字数は35377文字です
解凍された文字列の最後「ナした。自分なども、ゴッホの原色版をかなりたくさん見て、タッチの磨v
現在の経過時間は2秒です
解凍された文字数は53886文字です
解凍された文字列の最後「、邸宅と召使いを提供して置くのも、むだな事だとでも考えたのか、(」
現在の経過時間は3秒です
解凍された文字数は53886文字です
解凍された文字列の最後「、邸宅と召使いを提供して置くのも、むだな事だとでも考えたのか、(」
現在の経過時間は3秒です
解凍された文字数は72654文字です
解凍された文字列の最後「好都合な事になり、やがて自分が自殺幇助(ほうじょ)罪という罪名で」
現在の経過時間は4秒です
解凍された文字数は91351文字です
解凍された文字列の最後「オなけれゃいけないんですから。いいえ、でも、せっかくの御自慢のおav
(略)
0847783
2009/06/06(土) 01:21:00ID:nrE5UTqJというわけで、gzipの最後がサーバから送られてくるのは
>>843の通り9秒後なのですが
9秒後以前に途中まで解凍できています
0849836,848
2009/06/06(土) 02:07:31ID:JWHRbWFkいやはや申し訳ない
また何かあればよろしくお願いしますー
0850nobodyさん
2009/06/06(土) 02:12:45ID:???0851nobodyさん
2009/06/06(土) 02:46:03ID:???Rubyの専売じゃないと思うけどな。
PHPでは文字列型は可変だし、IOというinterfaceがあるわけじゃないから
個人的にはあまり必要ないと思ってしまう。。
みんな意外にOOPしてるのだろうか。
0854nobodyさん
2009/06/06(土) 04:26:42ID:???データ型によってコードをわけないということだよね。
しかし組み込みのinterfaceはないのだし、
オレ仕様のやつを自前で用意するものなのか。
例外についても同じく。。
0855nobodyさん
2009/06/06(土) 04:40:53ID:???わからんけどインターフェースが必要ない動的言語だからこそアドホックにファサードつくればいいって話じゃね?
javaじゃあるまいし
0856nobodyさん
2009/06/06(土) 04:42:19ID:???0857nobodyさん
2009/06/06(土) 05:27:45ID:???おまえら守ってる?
俺は時間なくて手抜き実装してるううううううううう!!!!!!1
ハァースッキリした
0858nobodyさん
2009/06/06(土) 08:26:27ID:C5LE110H0859nobodyさん
2009/06/06(土) 09:51:10ID:???0861nobodyさん
2009/06/06(土) 11:43:17ID:???ケータイSoftbankに替えてありきたりなメールアドレス登録したんだよ
そしたら前にそのアドレスを使ってた人へのメールが知人やらメルマガやらどんどん入ってきて個人情報だだもれなわけ
今じゃすっかりその人に詳しくなって、おばあちゃんとのメールも無難にやりとりできるまでになったぜ
オマエラもSBのメールアドレスを手放すときは気をつけなさいってこった
0862nobodyさん
2009/06/06(土) 18:12:17ID:aSUnZuuUどのようにすれば可能でしょうか?
0863nobodyさん
2009/06/06(土) 18:21:59ID:???0865nobodyさん
2009/06/07(日) 01:33:43ID:???0866783
2009/06/07(日) 01:49:50ID:QFeNdjN7gzopen('http:www.example.com…
とやろうとしたのですが、この方法だと
Accept-Encodingヘッダを出力してくれないため
サーバーからは圧縮されないままレスポンスが返ってきます。
fopenで使えるようなコンテキストがgzopenでも使えれば
ヘッダの設定ができたんですけどね
>>801
教えていただいた
>$fp = fopen("compress.zlib://http://some.website.org/example.gz", "r");
これならいけそうかな、と思ったのですがコンテキストが設定できるのは
一番左のcompress.zlib://だけでhttpには設定できないようです。
という訳でこれも圧縮されないままレスポンスが帰ってきてしまいました。
gzopenにしろこれにしろ、もともとgzipに圧縮されているファイルにしか
使えないのではないかと思います
0867783
2009/06/07(日) 04:18:14ID:QFeNdjN7chunked転送コーディングに対して誤解をされているように感じます。
chunked転送コーディングは
・http1.1でkeep-aliveを行った際に
・Content-Lengthがヘッダ発行時に未知であるため
どこがレスポンスの区切りとなるのか分からない
場合に用いるものです。
今回の例では1秒ずつsleepさせているのでいかにもそこでchunkedされそうな気がしますが、
そもそもkeep-aliveを行っていないので、サーバ側にとってchunkedする必要は全くありません
とは言っても納得できないでしょうから、
cURLをchunked転送コーディングの使えないHTTP1.0に設定しても
curl_setopt ( $conn , CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_0 );
同じ結果が得られました まんこ
0868nobodyさん
2009/06/07(日) 06:11:53ID:TrHKanMz入力>確認>登録 の流れのフォーム作ってます、そこで
事情より、確認画面では <input type="hidden" value="serialize($_POST);" />して、情報を登録画面にもちこんでます
(実際のvalueはシリアライズ値を入れた変数です)
このとき、入力画面で
<input type="text"> に「Don't let me down」を入力し、
<textarea> に 以下(Youtubeの動画の埋め込みタグ)を入れるとhiddenタグが壊れてシリアライズした中身が
画面に出てしまいます。
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/-O7PnvVgQvA&hl=ja&fs=1&">
</param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always">
</param><embed src="http://www.youtube.com/v/-O7PnvVgQvA&hl=ja&fs=1&" type="application/x-shockwave-flash"
allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
「$_POSTをserializeして引き渡し」の仕様を変更することなく、このトラブルを解決する方法あるでしょうか?
すみませんが、アドバイスお願いします
0869nobodyさん
2009/06/07(日) 07:49:10ID:e7V9OxY3//1
$fp = fopen("log.dat",r);
fwrite(join("\n",$data));
fclose($fp);
//2
$fp = fopen("log.dat",r);
while (list($tmp, $data2) = each($data))
fwrite($fp,$data2."\n");
fclose($fp);
どちらが鯖に優しいですか?
0870nobodyさん
2009/06/07(日) 07:50:19ID:???あとhiddenにname属性がないけど
0871nobodyさん
2009/06/07(日) 10:14:30ID:???> fopen("log.dat",r);
'r'と文字列で指定しろ。
ついでにrは読み込み専用だから書き込めない。詳細はfopenのマニュアル嫁。
ttp://jp2.php.net/manual/ja/function.fopen.php
どっちが優しいかといえば、そんな下らない部分を最適化する時間を他の処理を見直す時間に回すのが一番鯖に優しい。
ファイルでデータを保持するって時点でかなり高コストなんで、とりあえず2chで下らん質問してる時間でDBの勉強でもするのがベスト。
どうしてもどちらかというならば、fwriteの呼び出し回数が少ないほうが鯖に優しい。つまり前者。
(調べてないが、もしかしたら書き込みを一時的にメモリに保持(バッファ)して、ファイル書き込みは閉じる瞬間に行なう仕様かもしれん、だとしたらどっちでも同じ)
0872nobodyさん
2009/06/07(日) 11:48:46ID:???「疑わしいWebページを遮断しました」とノートンが反応するようになりました。
ソースが長いので記載はできないのですが、内容はmailtoで送信するための
名前やメアドを入力した後の「以下の内容で間違いないですか?」みたいな
画面です。値はメアド入力画面から$_POSTで受けとってます。
遮断される可能性としてはどのようなものがありますでしょうか?
すいませんがアドバイスを御願いします。
0873nobodyさん
2009/06/07(日) 11:51:07ID:???お騒がせしました。
0874nobodyさん
2009/06/07(日) 23:51:57ID:B+22q93BPHPのカウンターのサンプルを公開してるサイトはいくつもありますが
作る人によってロックするタイミングが違うみたいです。
fopenした後、ロックしてからカウント増やすのか、カウント増やしてからロックするのか、
どちらが正しいのでしょうか?
自分が使ってたのは
$f=file("log.log");
$f=$f[O]+1;
$fp=fopen("log.log","w");
ロック
fwrite($fp,$f);
クローズ
これって消える可能性ありますか?
wで飛ばした時には既に$fに数字が入っているからちゃんと書き込めると思うのですが。
0875nobodyさん
2009/06/08(月) 00:06:15ID:???0876nobodyさん
2009/06/08(月) 00:24:53ID:???それだと、読み〜ロックの間に他の人が読んだら値がおかしくなるよ。
でも消えるかなぁ。。
ロック失敗したときどうしてる??
0877nobodyさん
2009/06/08(月) 01:02:13ID:???file()はロックされてても読めるんじゃなかったっけ。
そのせいで書き込み途中のファイルを読み込んでしまい
結果飛んでしまうと。
0878874
2009/06/08(月) 01:22:30ID:f7LhTlLYありがとうございます。
>>877さんので納得しました。
ロック用のファイルってどういう事ですか?
一時的にバックアップ取るという事?
>>876
ロック失敗とか全然気にしてないです。
失敗したら書き込めないようにif構文とか作った方がいいのですか?
0879nobodyさん
2009/06/08(月) 02:33:33ID:???といったらそうでもなくて、バッファ0にして fread fwriteでも飛ぶときは飛ぶ
http://www.google.co.jp/search?q=php+flock+%E3%83%AD%E3%83%83%E3%82%AF%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA&num=50&ie=utf-8&oe=utf-8&lr=lang_ja
0880軟式PHP
2009/06/08(月) 11:08:46ID:???flockはflockとの競合を防ぐだけだから、他のプロセスがflockしてても
fopenのwで開けば0バイトで作成されるからそりゃ壊れる。
予めファイルを作成しておいて、r+で開いてflockかけるとか877の言うように
別ファイルでロックするのが定石だろう。
0881nobodyさん
2009/06/08(月) 12:22:26ID:SxkJ/CwYhoge-hoge.com<info@example.com>
エラーの内容は、この文字列のバリデーションに失敗、というものです。
サーバーがSMTP認証を行うようになったのに合わせて、
mb_send_mailからPEAR::Mailに変えたところ、このエラーが出るようになりました。
hoge-hoge=>ドットを含まない英字や、ドットを含むがMIMEエンコードした日本語=>ほげ-ほげ.コムでは大丈夫なので
ドットに対して何らかのエスケープをすればよいと思うのですがわかりません。
mb_send_mailが中で対処してくれていたのか・・・
処理方法があればおしえてください。
0882nobodyさん
2009/06/08(月) 16:46:37ID:???file関数でエラー検出するとき、よくあるのは
@file("http://hoge.com") or die("Error!");
というように、or dieがありがちだと思うんですけど、
orのあとって、return falseとかできないんですかね?
どうもエラー出るみたいなんですけど。
関数内でエラー検出し、エラーならfalseを返すというようにするには、そうすればよいでしょうか?
0883nobodyさん
2009/06/08(月) 16:52:54ID:???こんな感じでいけました。
function get2ch()
{
$err = 0;
$lines = @file("htp://2ch.net") or $err = 1;
if ( $err ) { return false; }
return true;
}
でもreturn使えないのはめんどいですね。
0884868
2009/06/08(月) 16:53:33ID:5Fnyhx60どうもありがとうございました
思ったんですが、確認ページから登録ページへの値の渡し方って
$_SESSION['postAry'] = $_POST; ってやって、
登録ページでは
INSERT INTO $table (`var`) VALUE($_SESSION['postAry']['var']);
とかした方がいいんでしょうか?
みんなこんな感じでやってるんですか?
0885nobodyさん
2009/06/08(月) 17:05:27ID:???fileやfopenは失敗するとFALSEを返すから
$lines = @file(filename);
if (!$lines) return FALSE;//失敗すると$lines===FALSEとなる
見たいな感じでも大丈夫だよ
0886nobodyさん
2009/06/08(月) 18:19:14ID:???0887nobodyさん
2009/06/08(月) 18:24:57ID:???真偽を返すもの以外を使うなら普通にif文でいいわな。
0888nobodyさん
2009/06/08(月) 18:33:42ID:9VTPEhgM0889nobodyさん
2009/06/08(月) 19:09:05ID:???通常の動きはAのページで
フォームに入力したデータをPOST送信⇒Bのページへジャンプ
BのページでPOSTされてきたデータをsessionに保存⇒Cのページへリダイレクト
Cのページでsessionに保存されたデータを元にページを表示
この動きをフォームを使わずにCのページを期待通りのページで取得したいんですが
まず、fsockopenでBのページへ直接、POSTデータをfputsして
file_get_contentsとかfileとかreadfileでCのページを読みに行くと
sessionが違くなってしまうためか期待通りのページが取得できないんです
file_get_contentsとかでsessionを引き継いだままページを取得する方法ってありますか?
教えてください偉い人
0890nobodyさん
2009/06/08(月) 19:40:52ID:???0891889
2009/06/08(月) 20:06:04ID:RF6d0qBMvar_dump(apache_request_headers());
コレと
<?php
// ストリームを作成します
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// 上で設定した HTTP ヘッダを使用してファイルをオープンします
$file = file_get_contents('http://www.example.com/', false, $context);
?>
コレですか?
0892nobodyさん
2009/06/08(月) 20:16:41ID:???0893nobodyさん
2009/06/08(月) 20:20:25ID:???0894889
2009/06/08(月) 20:27:36ID:RF6d0qBMちげーよウェェエン
0896889
2009/06/08(月) 20:38:58ID:RF6d0qBM沢山あるから一括してやりたいんですよ
すぱむじゃねーよ
0897nobodyさん
2009/06/08(月) 21:26:32ID:???0898nobodyさん
2009/06/08(月) 21:59:17ID:???0899889
2009/06/08(月) 22:43:46ID:RF6d0qBM$context_options = array (
'http' => array (
'method' => 'POST',
'header'=> "Content-type: application/x-www-form-urlencoded\r\n"
. "Content-Length: " . strlen($data) . "\r\n",
'content' => $data
)
);
$context = stream_context_create($context_options);
file_get_contents("http://example.com/",false,$context);
var_dump($http_response_header);
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Cookie: foo=var\r\n"
)
);
$context2 = stream_context_create($opts);
$file = file_get_contents("http://example.com/owner.php?mode=update",false,$context2);
var_dump($file);
0900nobodyさん
2009/06/09(火) 00:19:48ID:???GDの処理速度自体は当然変わらない。
PHPスクリプトが動き始めるまでの時間は普通どおり短くなる。どの程度速くなるかは検索でもしてみれ。
ざっと考えたけど、リクエスト数が大きめならスループットは改善すると思う。
リクエストが多いわけじゃないなら、それほど高速化は期待できない。
0901nobodyさん
2009/06/09(火) 04:19:06ID:k9to3OUtリトライがうまく行きません。
-t 1000 と -w 300 を書いたのですが、一度実行されて
終了してしまいます。
wget --save-headers --timeout=600 -t 1000 -w 300 -O $loginhtml --no-cache --no-check-certificate http://localhost/hogehoge/hoge.php?hoge=hoge 2>&1
というような感じで、一回だけなのですが
http://localhost/hogehoge/hoge.php?hoge=hoge
のプログラムはちゃんと実行されていました。
(http://localhost/hogehoge/hoge.php?hoge=hogeが一回終了するまでは60秒かかります。)
スレ違いぽいですが何かアドバイスよろしくおねがいします
0902nobodyさん
2009/06/09(火) 04:29:07ID:7d8qt2bF692 :名前は開発中のものです。:2009/06/09(火) 00:57:34 ID:2fI/sHFo
何言ってんだ。プログラマにまともな精神持った奴がいた試しなんてねえよ。
第一プログラマと精神科なんてほとんどセットなのに今更それを語るとか情弱以下だろ。
0903nobodyさん
2009/06/09(火) 04:44:10ID:???wgetのことは全然詳しく無いので月並みに言えば
オプション減らしたり普通のWebページが取れるか試してみたりして原因の切り分けしてみては?
0904nobodyさん
2009/06/09(火) 06:18:41ID:k9to3OUt書くのを忘れていましたがosはwindowsでしたすいません。
そして、あれからいろいろと試していると
どうやらwindowsだとwgetだけでは無理みたいでして、
タスクスケジューラーを使うとうまくいきました。
ありがとうございました!
0905nobodyさん
2009/06/09(火) 11:27:56ID:???PHP内部エラーではなく、自分で指定した条件
(例えば、DBから取得したデータにバリデートをかけたらfalseだった、とか)
に応じてログファイルに時間やエラー内容等を記録し、
最後にメールに通知してくれるようなのを探しています。
自分で作れないこともないとは思いますが、多くの人に利用されていて、
実用に耐えているものであれば、そちらを使ってみたいと思っています。
0906nobodyさん
2009/06/09(火) 11:53:30ID:???メール送信くらいは既存ライブラリ使ってもいいけど
0907nobodyさん
2009/06/09(火) 12:03:59ID:???PHPでエラーが起きたときにメールでアラートをあげるって事だよね?
PHPでログ出力するんだから同時にメールも送れれば良いと考えるのはわかる。
でもそういう時に俺なら、ログ監視(というかサーバ監視)する別アプリをたてるけどな。
商用ならJP1とかopenviewとか千手とか、フリーならzabbixとか。
0908nobodyさん
2009/06/09(火) 12:28:17ID:???その処理に一回数分かかるとして、処理するのもphpだけだとすると
その処理中にブラウザ閉じられても処理は最後までやってくれるのかお
echoとかはなしとして
0909nobodyさん
2009/06/09(火) 12:42:17ID:1S65lMji開いてリクエスト全部送信したら処理始める
だったような気がする
閉じても処理は続く
0910nobodyさん
2009/06/09(火) 13:30:37ID:OwEGJi1tカスタマイズする必要性が出てきたのですが、
自分は今UTF-8で作ってて、ライブラリもすべてUTF-8です。
そこで質問ですが、古いプログラムに手を加える時
文字コードはどうした方が良いですか?新しくするべきですか?
それともそのままの文字コードで作っていった方が良いですか?
0911nobodyさん
2009/06/09(火) 13:33:06ID:1S65lMji新しくってUTF-8がECU-JPより新しいという概念で文字コード決めてるのか?
0912nobodyさん
2009/06/09(火) 13:42:24ID:OwEGJi1tいえ。フリーライブラリなど、UTF-8の文字コードが多いので
それらを使う時使い勝手が良いと思ったからです。
しかし、手間がかかるし、通常はどうするべきなのか悩んでいます。
0913nobodyさん
2009/06/09(火) 13:45:31ID:???今後会社としてUTF-8で統一するから、カスタイマイズついでにUTF-8にしておこうというのも有りだとは思うけどね。
0914nobodyさん
2009/06/09(火) 14:08:30ID:OwEGJi1tバグやエラーの原因になりますよね。
今のまま拡張していきます。アドバイスありがとうございました。
0915nobodyさん
2009/06/09(火) 14:51:07ID:???毎日1時にcronでプログラムを実行すればいいらしいまでは分かったのですが・・・
下記サイトと同じようなものを作りたいのです。
さくらのレン鯖プレミアム契約してます
ttp://booksales.seesaa.net/
0916nobodyさん
2009/06/09(火) 15:06:37ID:???どういう方法で新刊情報が入手可能かしらないけど、
・アマゾンがRSSを提供してたら簡単。「php rss」とかで検索
・アマゾンAPIを使用するとちょい厄介。「php amazon web service」等で検索
・アマゾンサイトのHTMLから抽出だと知識によっては困難。これは正規表現の知識が必要。
3番目以外は検索すればサンプルが結構出てくる。
0917nobodyさん
2009/06/09(火) 15:26:09ID:???RSS配信されてました
Parser.phpとRSS.phpとかいうスクリプトがあるのでそれ使ってやってみます
ありでした
0918908
2009/06/11(木) 09:56:02ID:KxCPVwHi$id = 1;
if($id === 1)
{
echo "成功";
//ここに数分かかる処理 ・・[1]
}else{
echo "失敗";
//ここに数秒で終わる処理・・[2]
}
?>
というものがあって、今は[1]の処理が終わるまで、
ブラウザにはechoした結果が表示されないと思うのですが、
何よりも先にとまでは行かなくとも、
長い[1]の処理が始まる前に、ブラウザの読み込みの間を無視して
成功の文字を表示させることはできますでしょうか?
考えたのが、コマンドを使って[1]の処理を別に実行させて、
成功の文字を表示させて、というものなんですが、
もっとお手軽な方法があれば教えてください。
>>909さんの言われる通り、ある程度ブラウザを開いてから
読み込み中であっても途中で閉じても、実行されていました。
ここまで処理ができたら、ここから下はこちらでやっておくのでブラウザ閉じようが何しようがおk
みたいな処理ができれば、と
php 5.2.6ですよろしくお願いします。
0919nobodyさん
2009/06/11(木) 10:44:21ID:uw+H+MOKという複雑な計算を行いたいのですが、
^(20*12)の部分で数字が膨れ上がりすぎてINFという文字を返してきてしまいます。
どういう記述を行えば計算することが可能でしょうか。
ご存じのかたいらっしゃいましたらご教授いただけると幸いです。
0920nobodyさん
2009/06/11(木) 10:47:00ID:???0921nobodyさん
2009/06/11(木) 11:48:34ID:JdN0MC7Yセッション(クッキー)、クエリなどありますよね。
セッションはなんか不安定そうで避けてるんですが。
0922nobodyさん
2009/06/11(木) 12:01:57ID:???flush()で文字だけ先に表示させることは可能だけど、ブラウザは閉じたら処理もとまるから、コマンド投げる方法しかないと思うよ。
0923nobodyさん
2009/06/11(木) 12:07:09ID:???渡すデータが4,5個くらいまでだったらGETクエリで良いと思うよ
あと合計件数はそのページをブックマークされると困るし変動する可能性もあるから、
一般的にはリクエスト時に毎回DBとかから合計件数を取得してから必要なデータを抜き出す。
0924nobodyさん
2009/06/11(木) 12:15:06ID:JdN0MC7Y毎回カウントするのが普通なのでしょうか?
あまりGETクエリで渡してるサイト見かけないのでセッションが多いのかと思ったんで...
0925nobodyさん
2009/06/11(木) 12:27:21ID:???別セッションから書換えられるようなモノなら毎回取得しないとまずいんじゃないの?
その「総数」をDBから取得する処理は、速度が気になる位、重い処理なの?
0926nobodyさん
2009/06/11(木) 12:51:22ID:JdN0MC7Yたしかに掲示板とかは書き換わる可能性があるので毎回取得したほうがいいですね。
件数はせいぜい数千件までぐらいです。
問題はトラフィックが非常に多いサイトもあるので少しでもサーバーの負担を減らしたいなと思っての処理です。
0927nobodyさん
2009/06/11(木) 13:24:42ID:???phpファイルをcgiみたいに扱って
コマンドラインでバックグラウンド実行させればいい。
実行したいPHPが、test.phpなら本体のphpから
exec('php test.php &');
みたいにすると、test.phpがバックグラウンドで動く。
0928nobodyさん
2009/06/11(木) 13:28:00ID:???負担が気になるならDBのキャッシュを有効にしたりとかしてもいいし。
ネックにならないような箇所をクオリティを下げてまで最適化するのは推薦はしない。
総件数をどうしてもセッションで保持するならついでにページもセッションの方がいいかもね。
0929nobodyさん
2009/06/11(木) 13:37:12ID:JdN0MC7Yありがとう、参考にさせてもらいます。
みんなそんなには件数もちまわしてないってことですね。
0930nobodyさん
2009/06/11(木) 14:47:08ID:N6MijVRo0931nobodyさん
2009/06/11(木) 14:56:32ID:???0932nobodyさん
2009/06/11(木) 21:29:54ID:M7ie+miUどのようにしたらいいですか?
0から起動するプログラムしか扱ったことがありません。
0933nobodyさん
2009/06/11(木) 21:32:25ID:???0934nobodyさん
2009/06/11(木) 21:33:48ID:M7ie+miU0935nobodyさん
2009/06/11(木) 21:36:37ID:???0936nobodyさん
2009/06/11(木) 21:38:08ID:M7ie+miU0937nobodyさん
2009/06/11(木) 21:42:27ID:M7ie+miUアクセスが同時にきたらメモリは別に生成されるんですか?
共有できるメモリもありますか。 共有できるメモリを初期化せず使い続けることは出来ますか。
0938nobodyさん
2009/06/11(木) 21:44:54ID:???0940nobodyさん
2009/06/11(木) 21:53:04ID:M7ie+miU0941nobodyさん
2009/06/11(木) 21:57:42ID:M7ie+miU無料か追加インストール出来ないサーバーで可能な方法はないですか?
namazuは無料サーバーにも対応していますが、毎回データをロードしてるんですか。
0942nobodyさん
2009/06/11(木) 22:17:27ID:???namazuはインデックスをファイルキャッシュしてるだけ。
0943nobodyさん
2009/06/11(木) 22:24:27ID:???0944nobodyさん
2009/06/11(木) 22:31:53ID:M7ie+miU5MのデータのPHPでロードする時間が0.3秒でした。
小細工なしで直にディスクアクセスしようと思います。
ありがとうございます。
0945nobodyさん
2009/06/12(金) 07:30:39ID:???0946nobodyさん
2009/06/12(金) 10:49:59ID:???0947nobodyさん
2009/06/12(金) 10:58:32ID:???0948nobodyさん
2009/06/13(土) 01:24:21ID:???(是非知ってもらいたい有意義な情報を共有する目的です)
$url="書き込みたい掲示板のフォームのあるページ";
$txt=file_get_contents($url);
そこから先が分かりません。
想像ですが
echo $txt.<script>
var form=document.formname.texterea.value;
form="書き込みたい内容";
form.onsubmit();
</script>
みたいなのでいいんでしょうか?
0949nobodyさん
2009/06/13(土) 01:31:48ID:???0950nobodyさん
2009/06/13(土) 01:32:37ID:???0951nobodyさん
2009/06/13(土) 01:50:22ID:???がある
0952nobodyさん
2009/06/13(土) 03:43:41ID:???つうかスレタイくらい読めよウンコ
0954nobodyさん
2009/06/13(土) 09:06:29ID:nmHEpXwFサイトの上部にランキングへのリンクを貼っているのですが
http://www.rank.co.jp/ (http://maysite.com/?from=jpでランク登録)
http://www.rank.com/ (http://maysite.com/?from=comでランク登録)
http://www.rank.net/ (http://maysite.com/?from=netでランク登録)
http://www.rank.org/ (http://maysite.com/?from=orgでランク登録)
もしランキングからhttp://maysite.com/?from=netでアクセスしてきた場合
http://www.rank.co.jp/
http://www.rank.com/
http://www.rank.org/
http://www.rank.net/
と一番下に自動で置き換わるにはどう書いたら良いでしょうか?
できたらコピペで使えるような答えがほしいです・・
宜しくお願いします。
0955nobodyさん
2009/06/13(土) 09:29:18ID:???0956nobodyさん
2009/06/13(土) 10:56:16ID:???ピューーーーン
あれ?。
0957nobodyさん
2009/06/13(土) 11:22:33ID:???$patterns = array( '/pattarn1/' , '/pattarn2/' );
$replace = array( 'replace1' , 'replace2' );
echo preg_replace( $patterns , $replace , $str );
で、arrayの中のシングルクオーテーションを""にしたら
文字化けして表示されたんだが、これは普通?というか
バグでもなんでもなくて ' じゃないとダメな決まり?
だとしたらどうしてなんだろうか。php5とfirefoxで表示させてみました。
0958nobodyさん
2009/06/13(土) 11:46:07ID:???実際のものが書かれていないとにんともかんとも
0959nobodyさん
2009/06/13(土) 13:56:00ID:???id。スレタイ。
replaceとpatternの詳細。
0960nobodyさん
2009/06/14(日) 00:01:40ID:RcvJrKuJすまそ
マニュアルに書いてあったやつっす
マニュアルのシングルクオーテーションをダブルクオーテーションにしたやつ
↓
<?php
$patterns = array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/",
"/^\s*{(\w+)}\s*=/");
$replace = array ("\3/\4/\1\2", "$\1 =");
echo preg_replace($patterns, $replace, "{startDate} = 1999-5-27");
?>
イメージ的にはこんな感じで表示される
↓
[::]/[::]/[:][:]
0961nobodyさん
2009/06/14(日) 01:14:32ID:???str_replace(array_keys($hash), array_values($hash), $source)
をやりたいんだが
0962961
2009/06/14(日) 01:19:52ID:OOFPIqTL0963nobodyさん
2009/06/14(日) 01:52:06ID:???0964nobodyさん
2009/06/14(日) 02:28:57ID:???ダブルクォートではエスケープシーケンスと変数が解釈されるゆえ、
\1〜\4がエスケープシーケンスとして解釈されてしまっている。
後方参照では\の代わりに$が推奨されている。
>>961
元の配列と同じ。要素ごとに再走査しなくていいのならstrtr($source,$hash)でいい。
0966nobodyさん
2009/06/14(日) 08:55:12ID:???違いで調べてみたら、"は特殊文字も解析される
みたいなことが描いてあった・・
なんか前に見た内容だったけど完全にわすれてた、
'と"は大体同じみたいな印象だけが先走ってしまった情けない・・
0967961
2009/06/14(日) 10:45:59ID:OOFPIqTLおおおまさにそれだ
ありがとう!!
0968nobodyさん
2009/06/15(月) 03:03:27ID:3Vzgmpynimagecreatefromstring関数で壊れたファイルを開いてしまうとプログラムが途中で終了してしまうようなのですが、
何か対策することはできませんでしょうか?
0969nobodyさん
2009/06/15(月) 09:08:11ID:???0971nobodyさん
2009/06/15(月) 10:29:06ID:???0973nobodyさん
2009/06/15(月) 13:52:21ID:???0974nobodyさん
2009/06/15(月) 14:05:02ID:???0975nobodyさん
2009/06/15(月) 14:41:08ID:yF6IPEz8HTMLのフォームに記入させて送信ボタンを押したらメーラが開いて
bodyの中にその内容が入っているという状態にしたいのですが、
auのケータイだとURLが正しくありません、docomoだと無効なデータを受信しました(302)と表示されます。
formのactionに下のようなphpファイルを指定して、POSTデータを受けて順番を組み立てて、headerでメーラを開こうと思っています。
各変数
header("Location:mailto:" . $mailaddress . "?subject=" . $subject . "&body=" . base64_encode($body));
exit;
PC(メーラはbecky)では問題ないようです。
ケータイではlocationでmailtoは使えないんでしょうか、それとも使えるけど使い方が違うんでしょうか。
フォームだけでデータを送る方法ではなく、メーラに入力済みにしておく方法で他に実現することができるのであれば教えてください。
ちなみにフォームのあるページもphpファイルもShiftJISで作っています。
0976nobodyさん
2009/06/15(月) 14:43:47ID:???ってか、今のブラウザってこれで動くんだなすげぇ・・・
mailtoは普通リンクじゃね?
<a href="mailto:アドレス?パラメータ">ここをクリック!</a>
のように使うもんでしょ
0977975
2009/06/15(月) 15:02:36ID:???他のまともな方法で同様のことが実現できれば一番いいんですが思いつきません。
最悪、actionの飛び先で<a href="mailto:***@***.com">メール</a>するぐらいしか。
0978nobodyさん
2009/06/15(月) 15:09:13ID:???何がしたいの?
何でheaderでmailtoが使いたいわけ?
0979975
2009/06/15(月) 16:16:28ID:???976さんの最初の2行を読む限りこの方法は普通ではないとのことでしたので。
>何でheaderでmailtoが使いたいわけ?
使いたいわけではありません、この方法でできないので他の方法はないのでしょうか?ということです
submit等のボタンを押したらメーラが開いてフォーム内の内容が本文の中に入ればそれでいいんです
phpを使う理由はbase64でエンコードしたいからです、ケータイ相手なのでJavascriptは使えません。
0980nobodyさん
2009/06/15(月) 16:17:50ID:???<a href="mailto:***@***.com">メール</a>
の使い方が普通なんだって言ってるの
0981975
2009/06/15(月) 16:35:15ID:???パラメータの部分にフォームの内容を動的に書けないので困っているということです。
980さんがいう普通の方法でメール本文にフォーム内の内容を入れられるなら教えてください。
『フォーム内容』の意味が不明瞭でしたね、フォーム内容というのは<form>...</form>の中の<input type="text" name='nick'>等で取得できる内容のことです。
formのactionにmailtoを指定すれば近いことは実現できますが、base64でエンコードできないので困ります。
0982nobodyさん
2009/06/15(月) 16:58:18ID:nxZJRVKz---
phpinfo();でpdo_sqlite の項目を確認すると
SQLite Library 3.3.17undefined
になっているのですが、このバージョンの「undefined」って何者なんでしょうか
0983nobodyさん
2009/06/15(月) 17:03:24ID:???つまりSQLiteのライブラリが入ってないって事
0984nobodyさん
2009/06/15(月) 17:10:13ID:nxZJRVKz返信ありがとうございます。
ライブラリは導入済みです。
PDO Driver for SQLite 3.x enabled になっており、PDOでSQLiteへの接続・操作もできます。
接続・操作ができるのだから、undefinedが付いていようと、特に支障はないといえばないのですが、調べても情報が出てこないため気になったので。
0985nobodyさん
2009/06/15(月) 17:11:44ID:nxZJRVKzPHP 5.2.5 ext/php_pdo_sqlite.dllの差し替えなどは行っていません。
0986nobodyさん
2009/06/15(月) 17:19:37ID:???もしかしてwindows?
↓これ試してみたらどう?
ttp://curiousabt.blog27.fc2.com/blog-entry-45.html
0987nobodyさん
2009/06/15(月) 17:32:56ID:nxZJRVKzWinXP SP3 , PHP5.2.5 です
>>986
ありがとうございます。
>でもpdo_sqliteの欄のLibraryがundefinedとなっていて気持ちわるかったので、もう一度php.iniファイルを開いて、php_pdo_sqlite.dllの前だけに;をつけたしてみました。
php_pdo_sqlite.dll をコメントアウトしたところ「ドライバがない」と接続の時点でPDOがエラーを吐きました
PHP 5.2.9をダウンロードしてきて、php_pdo_sqlite.dll だけを差し替えてみましたが
やはりバージョンは 3.3.7undefined でした
気にしたら負けなのかな、これは
0988nobodyさん
2009/06/15(月) 17:50:20ID:nxZJRVKzPHP5.2.5 の WindowsBinary に初期で含まれる php_pdo_sqlite.dll を有効化 → SQLite Library 3.3.17 undefined
PHP5.2.9 の WindowsBinary に初期で含まれる php_pdo_sqlite.dll を有効化 → SQLite Library 3.3.7 undefined
微妙にバージョンはあがってるようですが、やっぱりundefinedが付いてきてます。
# Windowsなんかでやってるからかな
とりあえず気持ち悪いですが無視しておきます。
失礼しました。
0989nobodyさん
2009/06/15(月) 18:39:59ID:???同一環境のマシンとOSがなくても出来ますか?
XP用のPHPバイナリのディレクトリをのぞいたところ、SOではなくDLLでした。
0990nobodyさん
2009/06/15(月) 18:55:21ID:AYiL75q4上記コードで?があるので、うまくマッチングできません。
どうしたら良いですか?
0991nobodyさん
2009/06/15(月) 18:59:34ID:???0992nobodyさん
2009/06/15(月) 19:04:38ID:???マッチした場所を数値で返す
その場合先頭でマッチしてるから0が返る
$flg = strpos("http://pan.com?goods=1200", "http://pan.com?goods=1200");
if($flg !== false) {
echo "ok";
}
0994nobodyさん
2009/06/15(月) 20:52:57ID:???各環境でコンパイルしないとだめだと思うよ
作ったことないけど
配布するならソースか、だれかにバイナリ作成を協力してもらうか
0996nobodyさん
2009/06/15(月) 22:51:57ID:???0997nobodyさん
2009/06/15(月) 22:59:43ID:gEjyaahWhttp://pc11.2ch.net/test/read.cgi/php/1245074032/
これからもよろしくお願いします^^
0998nobodyさん
2009/06/16(火) 14:46:03ID:???0999nobodyさん
2009/06/16(火) 14:46:43ID:???1000nobodyさん
2009/06/16(火) 14:47:24ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。