【PHP】下らねぇ質問はここに書き込みやがれ 45
1 :
nobodyさん :
2007/04/27(金) 10:02:42 ID:H9gF1SfB まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 44
http://pc11.2ch.net/test/read.cgi/php/1176364487/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
2 :
nobodyさん :2007/04/27(金) 10:03:52 ID:H9gF1SfB
3 :
nobodyさん :2007/04/27(金) 10:04:31 ID:H9gF1SfB
【簡易FAQ】
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プログラムとして実行された結果になる。
4 :
nobodyさん :2007/04/27(金) 10:05:19 ID:H9gF1SfB
10. そもそもインストールの時点でうまくいかない
→ 確認すべきは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に保存?
→ 好きにしてください
5 :
nobodyさん :2007/04/27(金) 10:15:05 ID:H9gF1SfB
そして質問
ニコニコに自分のフォームよりログインさせるスクリプトなんですが、
if(isset($_POST["submit"])) {
mb_http_output ('UTF-8');
$connect = "www.nicovideo.jp";
$ref = "
http://www.nicovideo.jp/ ";
$dir = "/login";
$mail = trim(urlencode($_POST["mail"]));
$password = trim(urlencode($_POST["password"]));
$POST="next_url=&mail=$mail&password=$password";
$request = "POST $dir HTTP/1.0\r\n";
$request .= "Host: $connect\r\n";
$request .= "Referer: $ref\r\n";
$request .= "Content-Type: application/x-www-form-urlencoded\r\n";
$request .= "Content-Length: ".strlen($POST)."\r\n";
$request .= "Accept: */*\r\n\r\n";
$request .= $POST."\r\n\r\n";
echo $request."\n<br>";
$fp = fsockopen($connect, 80, $errno, $errstr, 30);
if (!$fp) { echo "$errno<br>{$errstr}<br>"; exit; }
fputs($fp, $request);
$response = "";
while (!feof($fp)) { $response .= fgets($fp, 4096); }
echo $response;
fclose($fp);
これを実行するとHTTP ヘッダには302 Foundが出て、メールアドレスまたはパスワードが間違っている旨が…
どうすればちゃんと値を渡せるでしょうか…
image関数でpngを生成するつもりが、このように化けてしまいます。
http://up2.viploader.net/pic/src/viploader460273.png 以下ソース
<?php
header("Content-type: image/png");
$im = imagecreatetruecolor(400, 30);
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
$text = '$_GET["img"]';
$font = 'micross.ttf';
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
?>
$_GET["img"]にはGETメソッドでデータを送ります。
なぜでしょうか?
7 :
6 :2007/04/27(金) 10:16:44 ID:w1Tyd60P
ID出し忘れました。
8 :
nobodyさん :2007/04/27(金) 10:23:54 ID:w1Tyd60P
自己解決しますた
( ´_ゝ`)
var_dump($hoge) の結果をファイルに保存したいのですがどのようにすれいいでしょうか? $fp = fopen('hoge.dat', 'w'); fwrite($fp, var_dump($hoge)); こんなイメージです
>>10 ob_start( )
で出力をバッファにためる
バッファを文字列に出力
文字列を書き込む
>>10-11 関数があるよ
var_exportで調べてみると幸せになれる
配列の[X]から[Y]を連結させる関数ってありますか? 例えばこんな感じです。 $hoge = array('a','b','c','', 'd','e','f') こんな配列を$hoge['4']の''から前と後でわける $y$hoge[5].$hoge[6].$hoge[7];
セッションってさ、 セッションIDをクッキーで保存して、 サーバーがそのIDを参照に値を返すんだよな? クッキー使えないとセッションつかえねーじゃん!
>>14 URLベースとCookieベースがあるよ
追記。 だがPCコンテンツを実装するなら推奨はURLベース 理由はセッションハイジャックでググればわかるんじゃないかな
追記。 だがPCコンテンツを実装するなら推奨はURLベース 理由はセッションハイジャックでググればわかるんじゃないかな
連続POSTすいませんorz
ああ、ただの書き間違えだ。 PCはCookieベース推奨な
URLベースにして、毎回ID変えたらどうなのよ それならハイジャックされないでしょ それかIPを暗号化したものをIDにしてみたり
$foo['14']でこの14の数字を抜き出したいんですがどうすればいいでしょうか?? $foo['14']に入っている値じゃなくて$foo['14']から14という数字を抜き出したいんです
28 :
虚弱PHP :2007/04/27(金) 19:40:32 ID:???
>>24 質問が不明確だね。
値からキーを検索するなら、array_search()。
>>24 マニュアルの配列関数のところから好きなの選んで使え
というか質問する前にマニュアル見てそれでも分からんかったら質問しろ
31 :
nobodyさん :2007/04/27(金) 22:39:05 ID:8D0fnv57
>>23 セッションを使った認証のときの話だけど
ログインしたときのIPアドレスをセッションに保存しといて
IP変わったらまたログイン画面に飛ばしてるけど、あんまり意味ない?
32 :
nobodyさん :2007/04/27(金) 23:39:43 ID:4e9jJ8pO
smartyを使っています。 smartyで、テンプレートの出力結果をhtmlファイルにしたいのですが、どうすればいいのでしょうか? $fp = fopen("html.html", "w"); fputs($fp, $smarty->display("test.html")); fclose($fp); 実行後に$smarty->displayでの結果はブラウザに表示されるのですが、html.htmlはカラッポです。
>>31 ・環境によっては意図せずにリクエストごとにIPが変わる可能性がある
・同じNAT内だったりでIPが同じ場合は無意味
を考慮したうえでご利用ください。
>>33 意味わからん
答えは$smarty->fetch();
37 :
32 :2007/04/28(土) 09:26:10 ID:HnvRPjiH
>>36 やりたいことができました。 どうもありがとうございました。
おまえら .htaccessのこと何てよんでる? 「ドットエイチティーアクセス」って読んでたんだけど長くね? もっと短い言い方ないの?
「ハタッセス」
>>39 ダサくね?それ
「エイチ・タクセス」のがよくね?
分散設定ファイルでいいだろ
あのファイル
単にエイチティーアクセスだろ。ドットなんていらん。 っていうかスレ違いだ。
いいだろここ雑談スレじゃん え?なんだっrわなにすんだやめt
サイトのページ(4つくらい)を同じphpファイルに書いてそれぞれ別のURLで表示させたいんですけど 書き方を教えてください
46 :
45 :2007/04/28(土) 14:00:15 ID:RKMxVa9I
ID表示
switch(URLとか){ case 1: ページ1の内容 break; case 2:: ページ2の内容 break; case 3: ページ3の内容 break; case 4: ページ4の内容 break; }
48 :
45 :2007/04/28(土) 16:07:29 ID:RKMxVa9I
>>47 それなぜかうまく動きませんでしたローカルだと動くんですが・・・
switch($hoge){
case 1:
echo <<<PAGE
ページ1の内容
PAGE;
break;
default:
echo <<<INDEX
インデックスの内容
INDEX;
break;
}
こう書きました。
ほう、それで?
public static function という書き順と、 static public function という書き順、 どちらが一般的ですか?
public static function ですかね。あざーす。
53 :
nobodyさん :2007/04/28(土) 17:58:04 ID:jQarZsxI
mb_convert_kana関数を使おうとしたんですが、undefined function と出てしまいました。 4.3.7バージョンで、$string =mb_convert_kana($string,'a'); って書いてるんですが。
54 :
nobodyさん :2007/04/28(土) 18:02:39 ID:jQarZsxI
stringって書いたのは文字列って意味じゃないです。 ちょっと勢いで書いちゃいましたが。数字を入れています。
>>53 mb系が無いんじゃないの?phpinfoで確認して無いなら入れれ
56 :
31 :2007/04/28(土) 19:09:02 ID:tgkVshtz
>>同じNAT内だったりでIPが同じ場合は無意味 こっちはわかるけど、それはもう「IDとパスを盗まれたら無意味」というのとそう変わらないと思う。 ログアウトの機能を持たせて、使う人に気をつけてもらうしかないレベルと思うけど。 >>環境によっては意図せずにリクエストごとにIPが変わる可能性がある そんな環境あるんですか?固定IPじゃないプロバイダとかルーター再起動したりすると変わる事あるけど リクエストのたびにって・・・。 どんな環境でしょうか?結構あるならなんか対策しなきゃ。 というか、そんなシステムでネットするの禁止。早くIPV6にして全部固定IPにしてくれ。
58 :
nobodyさん :2007/04/28(土) 19:36:15 ID:jQarZsxI
>>55 いれるというのはphp.iniの設定を変えるということでしょうか。
教えてください。
59 :
58 :2007/04/28(土) 19:46:53 ID:???
自己解決しますた。
>>58 php.iniのmbstringの設定を変えると良い
たしか、windowsならコメントアウトさせるだけでいけた、リナ糞はしらん
62 :
nobodyさん :2007/04/28(土) 23:41:34 ID:hsKT4F0A
標準出力(の出力先)を変数にすることってできますか?(日本語が変かな?)
64 :
nobodyさん :2007/04/29(日) 00:58:57 ID:D3V82o9R
変数に入れるとかじゃなくれ?
その日本語は変です。
66 :
nobodyさん :2007/04/29(日) 02:23:14 ID:WQ/2F+8H
セッションは出来るみたいだけどクッキーって配列には出来ないの?
できる
69 :
nobodyさん :2007/04/29(日) 09:55:27 ID:/kWfCH0w
突然ですが、お願いします教えてください。 PHPでCSVファイルを読み込む時に、 「あいうえおかきくけこ」という文字を あいうえお かきくけこ という表示のさせ方を、セルで分割せずにするにはどうすればいいですか? まだ始めたばかりの素人なんで、まったく分かりません。 どうかよろしくお願いします。
レン鯖でPHPから送信したメールがあり、そのメールが届いたかどうか(バウンス?)を確認することは可能でしょうか? できたら方法も知りたいです。 スパムに利用されるから確認できないということもあり得ますかね?
>>69 いまいち言いたい事が分からない。
ひとまずID出しましょう。
セルってなに?
テーブルの事?
文字を分割したいって事かな、どういう法則で分割したいかによる。
セル?名? 梳毛そもう糸を平織りまたは綾織りにした薄手の毛織物。合着用の和服地にする。◇オランダ語の「セルジ(serge)」を「セル地」と解して「地」を略した語。 明鏡国語辞典 (C) Taishukan 2002-2006
PHPてコンパイルしたほうが早いの? それともただ中身見えなくするだけ? includeに使うfunctionファイルだけコンパイルしてみるのってありかな?
75 :
74 :2007/04/29(日) 14:34:16 ID:???
ここで聞いてもわかるやついないか。 プログラム板逝くか
そもそもPHPはコンパイルするもんじゃないだろ ソースはサーバに上げれば見えなくなるだろ
77 :
74 :2007/04/29(日) 14:48:09 ID:???
>>76 仕事で納期したりすると客に内容バレしたりしない?
オリジナルのfunction詰め合わせが相手に見られるのも何かヤだし
ID出したら教えてあげる
>>77 それなら速度とか気にせずコンパイルすればいいんじゃね
実際、コンパイルする前と後じゃどんくらい差が出るんだろう
74は学生ですね
81 :
74 :2007/04/29(日) 15:06:15 ID:ZLR/bMbw
>>80 今年卒業しました><;
一応教習生という学生wwwwww
つまりニート
>>79 普通はコンパイルした方が早い(と言うかしなきゃ動かない)が
PHPの場合元々さらで読むからコンパイルすると逆に遅くなるの?
83 :
nobodyさん :2007/04/29(日) 15:12:10 ID:zGQc/Sec
mb_send_mailでメールを送る前にhtmlspecialcharをかましたほうがいいでしょうか?
Why?
>>74 "php インタプリタ"
"php 難読化"
でそれぞれググれ
87 :
nobodyさん :2007/04/29(日) 16:08:43 ID:ZLR/bMbw
>>86 読んでも分からない以前に三行以上読めない
じゃあマニュアルや参考書を読むなんて無理じゃん というか途中からID出してるけど本当に本物か? ネタ臭がキツイわ
バイナリ化とコンパイルは大分意味が違わね?
>>82 コードキャッシュとしてコンパイル済み中間コードで
保持する仕組みなら速度は速くなるけどな。
そんな形式で配布・インストールできるシステムは知らん。
一般のバイナリ化の目的は暗号化で速度は低下する。
暗号化+コードキャッシュの組み合わせなら問題なくなるが。
いちいちコンパイルするのめんどいやん
配布・インストール時にパッケージとして バイナリ化する程度ならほとんど変わらんよ
93 :
nobodyさん :2007/04/29(日) 22:52:16 ID:o45ltyhE
PHPってインタプリタ言語じゃなくて、自動的にコンパイルされるので ユーザーは意識しなくてすむ、っていうんじゃなかったっけ? でA・・なんとかとかは、コンパイルした物をキャッシュするので、処理速度というか、起動?が速くなるとか PHP6ではデフォの機能になるとかならないとか。 ところでだれか 「PHPプログラマの技量を知りたい時に書いてもらうスクリプト」 っていうのどういうお題だったかわかるサイト知りませんか? 元の、なんとかっていう外人さん?のブログはリンク切れ起こしててもう見れないんですけど。
もうちょっと中身抑えてから書けよ
>>86 のサンプル画像で使ってるエディタが何気にサクラエディタだ
そういやみんなはエディタ何つかっとるの? ウチではvivi -> terapad -> サクラ 会社だと強制秀丸、俺の場合 秀丸は補完機能がないのがなぁ
>97 β版が使えるなら 結構前から補完機能ついてますよ (2006/11/28 6.50b1 より/今は7.00b1) 会社方針でβはダメかも ですが
訂正 7.00b2
100 :
nobodyさん :2007/04/30(月) 03:14:13 ID:jiCOQ4J+
新規質問です。 DBではなくファイルベースのPHP構築してますが、 間違ったデータの上書きという不注意への対策は、 通常どのように行うべきなんですか?
if($hoge = NULL){ write}else{ qawsedrftgyhujikolp};
ダウンロード販売サービスを頼まれたんだけど、osCommerce系みたいなのでダウンロード販売サイト構築できるものってある? 言語は出来ればPHPが良いのですが。 感覚的にはベクターのPCショップみたいな感覚です。 回答キボソ
105 :
nobodyさん :2007/04/30(月) 07:01:43 ID:2a6Y0d07
switch文のdefaultにheaderでどこかに飛ばす処理を書きました。 このheaderの次にexitは必要でしょうか? いまはこのように書いてます。 header("Location: $url); //ここにexit;をいれるべきでしょうか? break;
どっちでもいいです
107 :
nobodyさん :2007/04/30(月) 08:07:33 ID:qLOaqEyD
携帯サイト作るとき、リンク先に移動する際に 別ページでリファラー書き換えてヘッダーで飛ばしたいのですが どのように書き換えれば良いのでしょうか?
108 :
nobodyさん :2007/04/30(月) 10:39:17 ID:2a6Y0d07
25歳。去年までニートでしたが、今年は独立したいと考えてます。 PHPスクリプトを書く仕事をしている人の一週間のスケジュールをおしえてください。 できれば具体的に教えていただけると助かります。
>>108 ここは人生相談スレではありません。
SOHOスレあたりにいって聞いてきてください。
すいませんでした(><)移動してきます
>>107 なんかすごい釣りにしか見えないんだが
リファラを任意に書き換えるのは無理だぞ
狭い意味でいっているならmod_rewriteとかの範疇かと
リファラを書き換えはできるだろw
>>108 月: らき☆すたを2度見したせいで朝会に遅れる
火: 喫煙室で営業さんの愚痴をきいてあげる
水: めずらしく仕事がノッてしまい終電にまにあわず漫喫
木: デザイナの女の子を理論攻めして泣かす
金: 帰ろうと思って支度をしていると、ボスに笑顔で呼ばれる
できないっすよ、偽装ならできるけど
パケット書き換えたらできるじゃん
偽装じゃん
つかパケット書き換えってなんだよw
118 :
nobodyさん :2007/04/30(月) 11:41:33 ID:RWiBoY20
XREA+(s278、PHP5)にて、実験しているのですが、 unlinkを使うと Permission denied in というエラーが出てしまいます。 削除しようとしているファイルの所有者は自分です。 削除しようとしているファイルのパーミッション、777.707.755などに変更して試したのですが やはり上記のエラーがでてしまいます。 chmodなどで変更してみてもだめです。 もうお手上げ状態なのですが、何が原因と考えられるでしょうか? よろしくお願いします。
上位ディレクトリ
120 :
nobodyさん :2007/04/30(月) 11:46:38 ID:RWiBoY20
>>119 すいませんこんな質問に答えていただきありがとうございました。
それがどうしたの?
123 :
nobodyさん :2007/04/30(月) 12:31:01 ID:xBM5mH9a
Proxyを判定するスクリプトを書いています。
Wikipediaを参考に、Proxy特有の環境変数があるかどうかの判定を書いています。
http://ja.wikipedia.org/wiki/Open_Proxy IE6では特有の環境変数は何もセットされませんでしたが、
FirefoxとOperaではいくつかセットされていました。
そこで質問ですが、
ブラウザ別に対処するか、FirefoxとOperaでセットされた環境変数をチェックから除外するか、
どちらがいいと思いますか?
後者のほうが楽なんですが、確実性をとると前者のほうがいいですよね?
確認したのがこの3つのブラウザだけなので、他のブラウザで見たらProxy判定される恐れもあったり、
ブラウザの今後のアップデート状況で、変数が変わる恐れもあったり、
問題は多いですが、Proxy判定ってアバウトでいいと思いますか?
124 :
nobodyさん :2007/04/30(月) 12:31:01 ID:xadrbgql
>>123 >Proxy判定ってアバウトでいいと思いますか?
アバウトにしか出来ないよ。
やりたいことはspam関係でproxyはずすってことだろうと思うから、
前スレ見てproxy等で検索かけたほうが早い
127 :
nobodyさん :2007/04/30(月) 12:52:34 ID:xBM5mH9a
>>125 やっぱアバウトになっちゃいますよね。
>やりたいことはspam関係でproxyはずすってことだろうと思うから、
仰るとおりです。spamが多くて・・・
前スレみてきますね。どうもありがとうー
" =≡= ∧_∧ I'm ready.......", " / \ (・∀・ )/", " 〆 ⊂ つ∈≡∋", " || γ ⌒ヽヽコノ ||", " || .| |:::|∪〓 ||", " ./|\人 _.ノノ _||_ /|\", "",
129 :
nobodyさん :2007/04/30(月) 14:14:50 ID:2a6Y0d07
今CSVのファイルからデータを検索できるように頑張ってるのですが、 なかなかうまくいきません。 以下を某サイトからコピペしてやってるのですが、不安定でなかなか使えるように なりません。 ■たまにまともに検索できる(10回に3回くらいの割合。 ■10回に6回くらいは検索ワードが文字化けして反映されない。 例:「lエ..u..アnウ」は0件みつかりました。 ■10回に2、3回は検索ワードが空になってもどってきて、データが全件表示される。 例:「」は167件みつかりました
つづき タグ(EUC-JP環境) <?php if($_GET["key"]==""){ print"キーワードを入力してください"; }else{ //入力されたキーワードをスペースで分解し配列に収める。 $KeyWord=$_GET["key"]; $KeyWord=mb_convert_encoding($KeyWord,"EUC-JP"); $KeyWord=htmlspecialchars($KeyWord); $KeyWord=mb_convert_kana($KeyWord,"s"); $ArrKeyword=explode(" ",$KeyWord); //すべての要素と一致すれば$Resultにデータを移し変える $Result=array(); $Data=file("item.csv"); for($i=0;$i<sizeof($Data);$i++){ $lines=strip_tags($Data[$i]); $Match=true; for($n=0;$n<sizeof($ArrKeyword);$n++){ if($ArrKeyword[$n] != '' && strpos($lines, $ArrKeyword[$n]) === FALSE) { $Match=false; break; } } if($Match==true){ array_push($Result,$Data[$i]); } } ?> どこか致命的に間違っている箇所があるのでしょうか? お願いします。
134 :
こんばんは :2007/04/30(月) 18:17:30 ID:A+71Ioc2
トリップとID間違えてました ^^;
>>130 item.csvがEUCじゃねーとか
他に爺的に気になるのは
・$lines=strip_tags($Data[$i]); はlinesじゃなくてlineにしてくれ気持ち悪い
・データはstrip_tagsして入力はhtmlspecialcharsておかしくね
>>131 rm -rf /
PHPからこのコマンドで打てば解決できるからやってみろ
137 :
nobodyさん :2007/04/30(月) 19:16:02 ID:xadrbgql
>>135 に一票
$ArrKeywordとか$Dataとか$linesとか$Resultを適宜var_dumpもしくはprint_rして
内容を確かめればどこがいけないかわかるよ。
あと、配列を要素分繰り返すときPHPではforはあんまり使わなくない?
foreachのほうが見やすいし、好き。まあ、別に良いけど。
138 :
nobodyさん :2007/04/30(月) 19:42:39 ID:Jfzlq/mb
メールフォームを勉強のために作っていて、 mb_send_mail($to, $subject, $message, $add_header) の$messageの中身を複数のtextから受け取りたいんです。 複数受け取るには、配列を使う気がするのですが、 $message =$_POST["message1"].$_POST["message2"]のような方法しかできません。 何かヒントを教えてください。お願いします。
140 :
nobodyさん :2007/04/30(月) 19:53:59 ID:YPFQGcFE
質問があります。 PHPとPostgresqlでやっています。 今日データベースを見てみたら、文字コード がユニコードなんですが、このままで大丈夫 なんでしょうか? ちなみにPHPのほうはEUC-JPです。
おまえが大丈夫じゃないからダメです
142 :
nobodyさん :2007/04/30(月) 20:11:39 ID:5qEh+XE7
>すまそ。 ふざけてるの?
>>142 その構文が書いてあるファイルと同じ場所におけばいいでしょう。
PHP以前の問題では?HTMLから始めてください。
おまえらほんとにやる気あんのか?
※注意 ここは初心者同士の憩いのオアシスです
147 :
nobodyさん :2007/04/30(月) 20:37:52 ID:xadrbgql
>>140 出来ない事はないと思うが
いちいち文字コードを変更するのは面倒なのでDBとPHPの内部エンコードはあわせるのがセオリーでは?
もっというと、出力も同じにして、しかも出来る事ならUTF-8で統一するといいかも
そのうちAJAXとか使いたくなったときにUTF-8にしとくと楽。
でも携帯がSJISだからとかいって全部SJISに統一するのはやめた方がよい。
いろいろ問題のあるコードだから。
148 :
nobodyさん :2007/04/30(月) 20:42:18 ID:5qEh+XE7
>>144 だから、htdocsにおいても駄目ってかいたんですが・・
ちなみにPHPHOMEにおいても駄目なんす。ふざけんな!場所くらい書いとけ作者!
もういい。フルパスで記入したから。
レスくれた方、サンクスです。
149 :
142 :2007/04/30(月) 20:48:51 ID:5qEh+XE7
すまそ。。Apacheのhtdocs以下のsampleフォルダに入れなくちゃなんなかった・・
>>144 さんのいうとおり。すませんでした。ちなみにさ、imagedestroy関数って
PHPで表現された画像を、メモリ上から解放します。ってあるんだけどこれって
サーバーのメモリ?クライアントのメモリ?
150 :
こんばんは ◆5m18GD4M5g :2007/04/30(月) 20:58:59 ID:A+71Ioc2
>>136 全部消えたよ ^^;;;
どうしたらいいですか?
151 :
140です。 :2007/04/30(月) 21:00:57 ID:YPFQGcFE
すいません。 本とサイトを見て、 DBをEUCに 後PHPを default_charset = EUC-JP mbstring.http_output = EUC-JP mbstring.internal_encoding = EUC-JP mbstring.http_input = ASCII,JIS,EUC-JP,SJIS mbstring.detect_order = ASCII,JIS,EUC-JP,SJIS mbstring.substitute_character = none か default_charset = Shift_JIS output_buffering = On output_handler = mb_output_handler mbstring.http_output = SJIS mbstring.internal_encoding = EUC-JP mbstring.http_input = ASCII,JIS,SJIS,EUC-JP mbstring.detect_order = ASCII,JIS,SJIS,EUC-JP mbstring.substitute_character = none にあわせようと思うのですが、どうでしょうか?
152 :
149=142 :2007/04/30(月) 21:05:54 ID:5qEh+XE7
いや。私もサーバー?クライアント?なんて馬鹿なこと聞くつもりは甚だなかったんですよ。 しかし、GD関係がよくわからなくて、色々調べたら、クライアントのメモリから 画像データを開放するなんていうばかげたページがあったもんですから、つい聞いてしまったわけです。 色々検索してるうちにどこのページだかわかんなくなったいました。当然、サーバーの メモリ開放ですよね?
あたりまえだろ
>>153 さんくすっす。どうもありがとうございます。胸のつっかえがとれました。ふざけたホームページは本当に
開設しないでほしいですよね?初心者は混乱してしまいます。
みなさん、色々とおしえていただき、ありがとうございました。
>>151 自己責任の範疇で好きにしたらいいんじゃないですか?
>>150 UNIXの基礎概念 ASCII
でも読んで、もちつけ
>>151 Shift_JISにするなら
encoding_translationを入れとくと楽かも
159 :
140です。 :2007/04/30(月) 21:36:17 ID:YPFQGcFE
どっちでも表示されますよね? 教えてください。
>うまく変換してくれるんです。 ダウト
>>161 じゃあ、お前さんがおしえてあげなよ。不親切だな。
163 :
140です。 :2007/04/30(月) 22:06:59 ID:YPFQGcFE
160さん。ありがとう。 もし自分のやったとおりにやったら表示されませんか? 表示されなくて困っています。
164 :
160 :2007/04/30(月) 22:32:50 ID:???
>>163 俺もまだ初心者の域を脱していないからよくわからないんだけど、
勉強のうちはphp.iniは本に書いてあるとおりにしたほうがいいよ。http_outputのところとか
色々なエンコード表示しすぎじゃないのかな?
俺は160で書いたとおりにしかやってないから、わからないんだけど。
苦労してるみたいだから、がんばってください。
165 :
163です。 :2007/04/30(月) 22:55:15 ID:YPFQGcFE
>>162 >じゃあ、お前さんがおしえてあげなよ。不親切だな。
×うまく変換してくれるんです。
○条件・設定しだいでは変換してくれることもあります。
迷路に迷い込ませるそっちのほうが不親切だ。
168 :
160 :2007/05/01(火) 00:43:56 ID:???
169 :
160 :2007/05/01(火) 00:46:01 ID:???
170 :
nobodyさん :2007/05/01(火) 01:03:43 ID:1OYzEHDw
1.お前の書き込みは質問になってない 2.情報を小出しにするな 3.マルチするな
172 :
nobodyさん :2007/05/01(火) 01:15:18 ID:1OYzEHDw
PHP&PostgreSQLで作る実用Webシステム を買いました。そこで、ユーザー登録プログラムを表示させようと php.iniの設定を default_charset = Shift_JIS output_buffering = On output_handler = mb_output_handler mbstring.http_output = SJIS mbstring.internal_encoding = EUC-JP mbstring.http_input = ASCII,JIS,SJIS,EUC-JP mbstring.detect_order = ASCII,JIS,SJIS,EUC-JP mbstring.substitute_character = none にかえ、データベースのコードをユニコードからEUC-JPに変えました。 まだ、試していないのですが、これで表示されるようになるでしょうか? これが質問です。 よろしくお願い致します。
試せよ
setssion_strat( ) で作られるセッションてクッキーに保存されてるの? 素朴な疑問だけど サンプルのページ見てクッキークリアしたら初期化されたからそういうことだよね?
php5でメールフォームをつくってます。 mb_encode_mimeheader関数の使い方について質問させてください。 この関数で送信者名(ヘッダのFrom)に入力された日本語をMIMEエンコードしようとしています。 前に読んだ書籍では日本語部分にのみこの関数を使用すること、 という記載があったと記憶してるんですが現在確認できません。(マニュアルにも記載なし) 例えば入力された送信者名が「progra民具」さんだったら「 民具」のみ切り分けてMIMEエンコードすること、という説明だったと思います。 テストしている範囲ではそのまま $fromName = mb_encode_mimeheader("progra民具"); で特に問題なくエンコードできてるんですが・・・ メール送信をすでに実用している方、どのようにされていますか?
178 :
176 :2007/05/01(火) 01:42:45 ID:???
おぃおぃ。 メールヘッダーに生の日本語入れるつもりか・・・
$hogeが1000文字以上だった場合、1000文字から最も近い改行で区切って配列に入れたいのですがどのような方法があるでしょうか?
181 :
nobodyさん :2007/05/01(火) 03:30:08 ID:1OYzEHDw
すいません。質問です。 php+postgresqlを使っています。 grant 操作 on クラス to ユーザ; ってapacheとDBをつなげるときに必要みたいですが、 publicで大丈夫でしょうか? よろしくお願い致します。
>>180 まず1000文字あるかどうか確認して
もしあればケツから一番近い改行
までを取得すればいいだけでないの?
1000文字以上ある場合は一度最後まで
改行があるかどうか走査する必要はある。
>>181 それはPostgreSQLの権限の話だよな?
Apacheユーザ(言うなればPHPユーザ)
がDBにアクセスできるように、またアクセス
制御を行うためにDB側で設定する。
まったくPHP関係ないけどgrant分にpublic
なんかあったっけ?
183 :
nobodyさん :2007/05/01(火) 03:49:20 ID:3L8/2YzF
与えられた文字列が整数を表すか調べたいのですが is_int()だと文字列なのでfalseになり、 is_numeric()だとtrueになる幅が広すぎます。 整数を表す文字列かをうまく調べるにはどうすればいいですか?
>>183 preg_match('/^[1-9]\d*$/', $string)
>>184 条件が整数だから
preg_match('/^-?[1-9]¥d*$/', $string)
の方がよくなくね?
あ、間違った… '0'===$string || preg_match('/^[\-+]?[1-9]\d*$/', $string)
187 :
176 :2007/05/01(火) 04:27:57 ID:???
>>183 数値文字列を整数型に型キャストしてから調べては。
is_int((int)$num_str)
>>179 エンコードはする前提なので、
>>177 氏の助言は、
あくまで関数の使い方ことですね。
>>187 > is_int((int)$num_str)
だと '10 hogehoge' とかも通るんじゃなかたけ?
あ、たしかに・・・。ゴメリ
Perlで5MBぐらいのテキストデータのファイルを書き出し読み出ししているものを PHP+MySQLにするとサーバーへの負荷はどのくらい変わりますか? アクセスのたびに呼び出す仕様です。
>>190 データの構造、アプリケーションの振る舞い
作る奴の脳味噌の熟成具合に依存するので
それだけではわからん
192 :
181です。 :2007/05/01(火) 06:31:19 ID:1OYzEHDw
ではこれはPHP+Postgresql+Apacheで表示させる上 ではgrantは関係ないってことですか?
全く関係ないしスレ違いです。 grant構文はレン鯖業者のためにあるようなものです。 publicは登録されている全ユーザに同じ権限を与えるものです。 自鯖などで1人で使う場合、自分用に1つ作ればいいんじゃないすか? 知り合いに貸して、その知り合いがDBを使いたいならば、 その知り合いに対してgrant文を実行する感じです。
194 :
193 :2007/05/01(火) 07:50:16 ID:???
肝心なこと書き忘れてました。 >apacheとDBをつなげるときに必要 必要なのはapacheのconfでモジュール組み込むことじゃないっすかね。
PHPの通常(?)とバイナリ(?)の違いがわからん CGIとしての動作ってなんだよ
197 :
180 :2007/05/01(火) 12:28:23 ID:???
>>182 さん
ありがとうございます。
ただそれだと意図した動きになりません。
$hogeは普通の文ですので改行もたくさんあります。
そして1000文字以下の場合もあれば、2000文字以上の場合もあります。
なので見やすいように1000文字単位で区切ろうと思っています。
substr($hoge, $page*1000, 1000) //$pageは数字
これで1000文字単位の文字は取れるのですが、変な切れ方になるので改行で区切りたいのです。
199 :
虚弱PHP :2007/05/01(火) 12:49:20 ID:???
>>197 改行でってのは、結構面倒だと思うから、
mb_strwidthでも使えばいいんじゃないかな。
どうしても改行でやりたくて、
うまくいかないならソースplease。
200 :
虚弱PHP :2007/05/01(火) 12:52:35 ID:???
201 :
虚弱PHP :2007/05/01(火) 12:55:03 ID:???
>>197 1. 文字列aの長さを測る
2. aが1000文字以内ならループブレイク
3. aを添え字0-998までとそれ以降に分ける
4. 前者の末尾に改行をくっつけて配列にぶちこむ
5. aに後者を代入 1に戻る
いや、冗談だけどさ
改行なんてどこに入っててもいいじゃん
>>201 そんなのがあったのか
マイナス値がヤバそうだが
プログラミングで出合った問題と、自分が「こうしたい」という問題を をごっちゃにして、勝手に混乱するよね、この文字切り・改行厨ってのは。 この手の質問、何度見たか。
>>205 あー、それ俺が感じていた疑問というかモヤモヤを見事に指摘しているわ。
自分が「こうしたい」という問題を、プログラミング的にに落とし込んでから(または落とし込む方法を)質問するスレです。
とかに変えたほうがいいかも。
PHPに絡むならビジネスロジックだろうとスクリプトの設置・改造方法までOKだと勘違いしてる奴多いからな。
207 :
206 :2007/05/01(火) 17:29:07 ID:???
>>206 あー話の筋からすると、飛躍しすぎたかな。
とにかくそう思った
208 :
nobodyさん :2007/05/01(火) 17:52:41 ID:smYMDtq3
PHPとMYSQLでサイトを作ってるのですが、SQLで下記のようにしても 「つ」以降の先頭文字検索でつ以外の文字も抽出されるのですが どうすればよいでしょうか? あ〜ちまでの文字は普通に抽出されます。 $str="つ"; $SQL="SELECT * FROM tbl WHERE field1 LIKE '$str';";
%いらないの? あと文字コードは何でつか?
210 :
nobodyさん :2007/05/01(火) 18:10:07 ID:smYMDtq3
間違いました、こうです。 $SQL="SELECT * FROM tbl WHERE field1 LIKE '$str%';"; 文字コードはJISです。
211 :
nobodyさん :2007/05/01(火) 19:15:14 ID:EEwZpxpS
PHPは冗談抜きにVBScriptと同様。片や、いっぱしのプログラマとして 雇われ給料もしっかりと払われ、片や、事務職の給料の安い派遣のお姉ちゃんが 一生懸命マクロ・VBAを組んでいる。 これは非常に矛盾です。
213 :
nobodyさん :2007/05/01(火) 19:44:59 ID:EEwZpxpS
216 :
214 :2007/05/01(火) 20:10:02 ID:???
サーバーはwin2003です
220 :
214 :2007/05/01(火) 20:17:58 ID:???
mysqlのバックアップとったら空が20MBになった エロコレクションを削除したら空が5GBになった 削除する時はverupなみの勇気がいる
>>208 DBの設定もDBの中身も
phpの設定も動かしてるスクリプトも
全部JISなの?
一応訊いておくけどShift_JISじゃないんだよね?
222 :
nobodyさん :2007/05/01(火) 20:39:41 ID:ghVsgOyN
Warning: htmlspecialchars() expects parameter 2 to be long, string given in C:\Program Files\xampp\htdocs\test\form.php on line 77 このエラーはどこを改善すればいいのでしょうか。 htmlspecialchars関数が期待する文字列より長い?という意味だと思うのですが。 何か制限があるのでしょうか。 マニュアルとGoogle先生にはお尋ねしたのですが、分かりませんでした。
>>211 じゃー、どっちも出来るんならPHPやればいいじゃんw
アホか
225 :
180 :2007/05/01(火) 20:59:51 ID:???
>>205 =206
日本語でお願いしますね^^
あと求めているのは答えですからオナニー論理はメモ帳にでもかいててくださいな
軟式さんが仰っているように簡単な問題ではないと思いますが
226 :
Lisa :2007/05/01(火) 21:14:20 ID:vsWpEyDK
Perlに関する試験を受けてみたいんですけど、何か良い資格試験 あったら教えて下さい☆ あと、CIWのウェブ言語 PERL基礎って 試験は、受験制約はあるのかなぁ
>>228 いつものレス番偽造君に釣られる奴も奴だな
俺俺
まあある意味スレタイに合致してるよな。このスレの書き込み。 「書き込みやがれ」だから、答えるとは言ってないし。
>>226 Perlは新規案件減ってるし
どっかの誰かが書いた理解不能なコードの修正とかあるからオススメできない
つか、普通Perl案件で資格なんて考慮されない
今プログラマ案件で一番要望多いのはJava技術者
と、人事の人から聞いたが
デスマーチ案件も多いから気をつけろ
233 :
Lisa :2007/05/01(火) 23:02:50 ID:???
∧_∧ ( ?д?) 受けたいんですが、なにか? ハ∨/^ヽ ノ::[三ノ :.'、 i)、_;|*く; ノ |!: ::.".T~ ハ、___|
PHPのスレッドにPerlの話を書く人はプログラミング自体やめた方がいいと思うよ
235 :
nobodyさん :2007/05/01(火) 23:48:13 ID:OxYFPqZQ
classについて質問です。 $obj = new hogeHoge(""); とするクラスの実行箇所が、1ファイル上にいくつもある場合、 それだけで負荷がかかかりますよね?class内部の関数を実行していなくても。 ポイントの仕組みなどを作っている時、 ポイント設定テーブルの読込→会員テーブルの読込→ 会員ポイント状況の読込→ポイントの付与→ポイントの更新 など、それぞれに応じて異なるテーブル・classを実行する必要があるので、 newする回数がどうしても増えてしまいます。作り方にもよるでしょうが、 なんどもclassを実行する場合、処理の遅れなどは仕方ないのでしょうか?
>>235 「気にしない」が正解。
もうちょっと詳しく書くと、そういうことを気にして性能に影響あるかどうかわからないところで
わかりづらいコードを書くよりもまずは綺麗にわかりやすいコードを書くべし。
性能に問題が出てからはじめて性能測定をして最適化を行うなり、
機材の増強を図るなりすればいいのだ。
$obj = new hogehoge(); すると、$objん中に何はいるのよ
設計がおかしいんじゃねー? ポイント云々ならポイント操作関連を一まとめにしてっていうか、 それを一つのデータ型っぽいものにするっていうのがclassの真骨頂なような それでなければ普通の自作関数かstaticなclassの関数呼び出しにするとか
してっていうか っぽいもの
>>235 それで負荷がかかってどうしようもないなら
オブジェクト設計に問題があるんじゃないか?
アクションメソッドやDAOで抽象化するのは普通。
どう考えてもインスタンス化じゃなくて中身の処理が悪くて実行時間がかかってると予測するが。
今、DWでPHP書いてるけど 何かおぬぬめのエディタない?
>>235 その例の場合インスタンスの生成なんかより
DBとの会話のほうがロスが大きそうなので
ストアドプロシージャ使ったほうがいんじゃね
あとなんとなくだが
リファクタリングの本を一通り読んでみることをオススメする
<TAG> TEST </TAG> タグの間の文字列(上の場合TEST)を抜き出したいのですが、 どういった関数を利用するのがベターでしょうか?
preg_match
>>242 DWのほうが使いやすいよ。htmlとも連携してるから補完機能も色分けもDWじゃないとだめな俺様
248 :
245 :2007/05/02(水) 03:44:54 ID:???
preg_match("!<TAG>(.+?)</TAG>!");
preg_match("/<TAG>((?:(?!<\/TAG>).)*?)<\/TAG>/", $html, $return);
>>248 preg_matchが正規表現って分かってるなら
大丈夫じゃないか
後は頑張って覚えるだけぽ
「!」って何だっけ
えくすくらめーしょんまーく
255 :
245 :2007/05/02(水) 04:14:02 ID:???
(.+?) これで改行も認識されますか?
257 :
245 :2007/05/02(水) 04:18:39 ID:???
どなたか250の内容を具体的に解説してくれないでしょうかニダ?
意味的には、
((?:(?!<\/TAG>).)*?)
が</TAG>以外、
という感じなのはなんとなくわかりますが、
(が2個続いていたり:や?の役目がよくわからんです。
>>251 正規表現の本5冊ほど持ってますが、
さっぱりです。初めて英語を勉強したとき以上のカルチャーショックです、
呪文です、あれは。
>>250 最短マッチしてるなら?!はいらないんじゃね?
マニュアル嫁 ?:は後方参照しない ?!は否定 ()はグループ化して後方参照
260 :
245 :2007/05/02(水) 04:20:42 ID:???
>>256 なるほど〜
s修飾子というやつですね、
そのヒントからかなり得るものができた気がします、
ありがとうございます。
>>257 オライリーの「詳説正規表現」以外は要らない。
1,2,3章の入門編を軽く流したら、4,5章を徹底的に理解すべし。
262 :
245 :2007/05/02(水) 04:31:02 ID:???
レスありがとうございます、 (?!<\/TAG>) はわかりました ((?:(?!<\/TAG>).)*?) の *?は最短マッチですよね。 ?:と(?!<\/TAG>)の後ろのドットの役割が説明聞いてもいまいちわからんですね。。。。 preg_match("/<TAG>(.*)*?<\/TAG>/", $html, $return); ↑これではダメでしょうか?
質問者はID消すなよ、常識的に考えて
ドットが分からないとか正規表現のリファレンス1行も読んでないだろ、常識的に考えて
>>259 (?!hoge)は前方参照否定じゃなかたけ、否定とはちょい違う
>>262 (?!<\/TAG>)(.*?)
て書きたかったんじゃね
>>264 どうしてそこにドットが出るのかがわからない、と聞いているんだろ
常識的に考えて
文字通りの意味と役割だろ そんなことも分からないってことは修飾子と構文を正しく理解してないってこと。 その2つは最低限理解してから実例に入るべき。 人に教えてもらってコピーするとか改良するとかはその後。
267 :
208 :2007/05/02(水) 06:50:57 ID:???
>>221 Webの方はJISですが、DBはEUC-JPです。
どのようにすればよいでしょうか?
お願いします。
268 :
208 :2007/05/02(水) 07:44:06 ID:e82GvhiD
すみません、DB側はUTF-8でした。
方法はあるけど分かるように説明するの面倒だから全部UTF-8にすれ
270 :
nobodyさん :2007/05/02(水) 08:46:10 ID:UK9OmFrQ
質問です GETmethodで情報をphpに受け渡した時、受け側のphpでは以下の通りになりました storeCart.php?num1=45&code1=1&num2=0&code2=2&num3=0&code3=3&num4=0&code4=4 で、このstoreCart.phpに if($_get['code1']=""){ echo "karadayo"; }else{ echo "「".$_get['code1']."」"; } と書いたんですが、何も表示されません なぜでしょう?
$_GET['code1']
272 :
nobodyさん :2007/05/02(水) 08:51:03 ID:UK9OmFrQ
>>271 すみません、書き間違いがありました
「」 と表示されました(270の時点で)
271さんの言うとおりにしても、「」のまま変わりません
なぜ??
273 :
nobodyさん :2007/05/02(水) 08:55:03 ID:jXkSXyAx
$_GET['code1']="" だからじゃね
$hoge = "「"."
275 :
nobodyさん :2007/05/02(水) 09:02:39 ID:UK9OmFrQ
>>273 それでした! ハズカシイ。。
$_GET['code1']=="" にしたら解決しました
しかし $_GET['code1']="" が変なのと echo "「".$_get['code1']."」"; が
まともに動作しないのって別問題と思うんですけどね。。
ともかくありがとうございました
276 :
nobodyさん :2007/05/02(水) 09:19:39 ID:jXkSXyAx
>275 空っぽの文字列を代入してるからif式はfalse だから「」が表示される ちゃんと動作してるんじゃね?
確かにそうですね 勉強します…
278 :
nobodyさん :2007/05/02(水) 13:45:41 ID:s9SsVluQ
$hoge[0]['name'] = "AAA"; $hoge[0]['value'] = 100; $hoge[1]['name'] = "BBB"; $hoge[1]['value'] = 10; $hoge[2]['name'] = "CCC"; $hoge[2]['value'] = 50; 上記のような配列を ['value']値の順に並び替えたい、 つまり $hoge[0]['name'] = "AAA"; $hoge[0]['value'] = 100; $hoge[1]['name'] = "CCC"; $hoge[1]['value'] = 50; $hoge[2]['name'] = "BBB"; $hoge[2]['value'] = 10; に変更したいのですが、どのようにすればいいでしょうか。 ご教授お願いします
>>278 $hoge = array(
array('name' => 'AAA', 'value' => 100),
array('name' => 'BBB', 'value' => 10),
array('name' => 'CCC', 'value' => 50)
);
$values = array();
foreach ($hoge as $i => $val) {
$values[$i] = $val['value'];
}
array_multisort($values, SORT_DESC, SORT_NUMERIC, $hoge);
var_dump($hoge);
280 :
nobodyさん :2007/05/02(水) 17:45:01 ID:QSxF3+cO
PHPでrequireとかファイル読み込んだ後でもフレームセットタグ無効になるんでしょうか? ソースには頭にframesetタグが書かれてて大丈夫だと思うんだけどうまくいかなかったんで require無くしたらいけたりしたんですけどいまいちよくわからないので詳しくわかる人があれば教えていただきたい
よくわからんけど、requireをやる前と後のHTMLソースを見比べてみたら何かわかるんじゃないの。
requireした時のファイルに空白とかが混じっててヘッダが おかしくなってるんだろ
283 :
山本山 :2007/05/02(水) 18:08:43 ID:???
たしろん
284 :
nobodyさん :2007/05/02(水) 18:37:16 ID:QbFzO5vt
DWでPHP使ってるんだけどオヌヌメの開発環境ってある? フレームワークやらSmartyやらよく聞くがどんなものかわかんなす
>>284 フレームワークはフレームワーク。
Smartyはテンプレートエンジン。
まず公式サイトでドキュメントを読め。そしてぐぐれ。
>>284 DW使いが開発環境なんてたいそれたこといってんな。
DW使いって所詮はデザイナー上がりだろ? デザイナー上がりって使えない奴多いよね
ちょっとログいじるために簡単なログイン機能つけたいんだけど 簡単なログイン機能つけるのって初心者には簡単じゃないなw 同じファイルの中でやろうとしたら混乱してきた
>>288 pearのパッケージでも漁ってみればいんじゃね
290 :
nobodyさん :2007/05/02(水) 20:30:59 ID:ZxrVMRS9
./data/log.txt id<>pass aaa.php $fp = fopen('./data/log.txt','r'); while(!feof($fp)) { $user = explode('<>',fgets($fp)); } fclose($fp);
>>288 初心者が簡単にできたらそれ初心者っていうのか?
つか個人的には簡単なログインくらいなら初心者にも作れて当然だと思うけどさ。
思うに今の君に必要なのは初心者がどうのとか難しいとか愚痴ることることではなく
「マニュアルとちゃんと読む」ことと「参考になる書籍/解説Webサイト」を見て学ぶことだと思うぞ。
>>291 とりあえず深呼吸してからスレタイをよく読むんだ
それがどうした
>289 >291-293 cookieにセッションにcryptに認証状態の維持に有効期限に 初めてのことばっかで情報量多くて…すまん
295 :
nobodyさん :2007/05/03(木) 00:15:12 ID:4b9rb2Ka
PHPの問題集みたいなのない? ZendPHPの問題集買ったが洋書でわけわかんねwwwwww
296 :
nobodyさん :2007/05/03(木) 00:22:50 ID:B994S/bS
298 :
nobodyさん :2007/05/03(木) 00:31:23 ID:x91D8BN0
PHPでランダムバナーをやりたいけどわからん。 誰か作ってください。 javaはいりません。
300 :
nobodyさん :2007/05/03(木) 00:33:34 ID:B+f7twkm
>>298 google adsenceのパクリシステムを作ったはいいが、
GoogleBotとチョソBotしか栗ってくれないプログラムだけどいいか?w
>>298 ほれ。
<html>
<head></head>
<body>
<?php
$i = mt_rand(1,3);
if($i < 2 ){
?>
<img src="img1.jpg">
<?php
}else{
?>
<img src="img2.jpg">
<?php
}
?>
</body>
</html>
304 :
nobodyさん :2007/05/03(木) 01:53:51 ID:ffjkYhTE
例外処理について質問があります。 エラーを独自関数で一元に管理する場合に独自関数をエラーハンドラとして設定しますが その後の処理についてtryで囲む部分っていうのは全て囲って問題ないものでしょうか? 例を記述すると。 <?php require_once('function.php'); set_error_handler('myErrorHandler'); try{ $str = file_get_contents('hogehoge.txt', "r"); $conn = mysql_connect("localhost", "user", "password"); mysql_select_db("hoge", $conn); mysql_query("insert into hoge values ('".addslashes($str)."')"); } catch (Exception $e){ echo $e->getMessage(); } ?> こんな感じです。
305 :
nobodyさん :2007/05/03(木) 01:55:34 ID:ffjkYhTE
勿論ですが上記の場合 file_get_contentsの部分で例外が発生します。
306 :
nobodyさん :2007/05/03(木) 01:57:57 ID:B994S/bS
PHPだけで画面上のどのリンクをクリックしたかログをとりたいんだけど良いアイデアない? 数が多いので各リンクの後ろに$_GETはしたくない。しかも、外に飛んだのもカウントしたい。 JS使えばclickイベントでPHP呼び出していけそうだけど。
えーと、エラーハンドラ設定した時にtryの範囲を広げたり狭めたりするのは関係あるのか?
>>306 input type="image"で頑張れ
外に飛ぶのも考えたらリファラーじゃ無理だな ってか外に飛ぶのも含めるとjs使わない限り不可能だよ
311 :
nobodyさん :2007/05/03(木) 02:06:46 ID:B994S/bS
>>304 set_error_handlerはエラーが発生したときで
例外はset_exception_handlerだと思う
でhandlerは例外が発生してcatchをしなかった場合に呼び出されるので
catchしたら呼び出されない。
例外は、基本的にはある条件で自分で発生させて処理を続行したいときに使うんじゃないかな。
条件分岐みたいな物・・・っておもってたけどちがう?
set_error_handlerの使いどころは何だろ?使ったことないから解らん。
312 :
nobodyさん :2007/05/03(木) 02:15:37 ID:B994S/bS
>>310 ああ、そうか。あるページから、ある同じページに複数のリンクを張る場合を除けば
リンク元のページに張ってるある全てのリンクのリンク先のページのアクセスログのリファラーが
リンク元のページの「どのリンクがどれだけクリックされたか?」になるのか。
↑解りづらいけど、たぶんあってますよね。
考えてみたらそうですね。サンクス。
外に行くリンクはやっぱりJSじゃないと無理ですか?
基本的にはリファラーを含めたアクセスログを保存して、外に行くのだけJSで別にログを保存するかんじかな〜
ありがとでした。
313 :
nobodyさん :2007/05/03(木) 02:38:25 ID:ffjkYhTE
>>311 なるほど、参考になります。
色々試してましたが、エラーを管理するだけなら
try catch等使わずに、ただエラーハンドラを設定するだけで
いけるぽいですね。
try catchの用途がいまいち理解出来ません。
>>313 普通は1個の関数でエラーを全部処理なんてしないから。
316 :
nobodyさん :2007/05/03(木) 04:00:11 ID:0TC0EZ5+
質問です <?phpだと有効なのに<?=だと無効になってしまいます php.iniの設定だと思うのですがどのあたりなのかよくわかりません よろしくお願いします
317 :
316 :2007/05/03(木) 04:09:20 ID:???
解決しますた。
320 :
315 :2007/05/03(木) 04:24:24 ID:???
>>315 間違えた
>>311 宛ではなく
>>313 宛だった。
つまりset_error_handlerしたらtry〜catchしないといけないと思ってたのね。
例外処理は俺も前は訳分からなかったけどちょっと理解したら確かに便利だってことが分かったよ。
321 :
nobodyさん :2007/05/03(木) 06:36:17 ID:mwEz31pq
htmlのnoscriptを使わず、 phpでjavascriptがoffかどうかを判定するのは無理があるでしょうか?
>>321 JavaScriptで自動的にPHPやCookieなどにアクセスさせるようにして
そのアクセスがあればON、無ければOFFと判定はできるかも。
自動アクセスは単純な手だと画像としてsrc呼び出しなど。
ただ、画像だとブラウザ設定によってJavaScriptがONでも動作しなくなる可能性はある。
その辺はCookieを使う場合も同様。
Ajaxみたいなデータ通信であればそういった不都合は無いかもしれないが
使えるブラウザ自体が限られるかもしれない。
ただ、どんな手法を使うにせよ、判定結果が出るのは最初のPHPの処理が
全て終わって、次のアクセス以降のことになるけどね。
PHPできると彼女出来ますか? 24歳。おとこ
一生ニートのあなたには残念ながら・・・
class呼び出すと、functionも一緒に呼び出されるんだっけ?
326 :
nobodyさん :2007/05/03(木) 11:05:22 ID:+5Kuly7D
classの中に、メソッドA,Bがあります。 Aの中にある変数に、globalを使わないでBからアクセスする方法はありますか? class Test { function A() { $a = "a"; } function B() { //A()の$aを呼びたい } }
マニュアル読め
関数まとめとかグローバル変数代用とかの目的でクラス使わないほうがいいよ
>>326 そういう風にクラス内で共有する変数があるなら普通プロパティにする
330 :
nobodyさん :2007/05/03(木) 11:32:29 ID:+5Kuly7D
>>328 同じ内容の変数を別のメソッドでも使いたいだけなのですが、
その場合は、メソッド別に変数を定義するべきでしょうか?
ていうかそういう場面ってありませんか?
>>328 まとめる為にクラス使ったら
newするのめんどくさくね?
class使わないほうがそのままfunction呼び出せるから便利
332 :
nobodyさん :2007/05/03(木) 11:33:54 ID:+5Kuly7D
>>329 どうもありがとうございます。
プロパティの概念はよくわかっていないので、調べてきます。
>>330 いやそんな基本的なことも分からないってことはオブジェクト設計とかもどこ吹く風っしょ?
まぁ別にいいけど。
プロパティ変数使えばいいともうよ。
334 :
nobodyさん :2007/05/03(木) 12:07:27 ID:869V7SM7
PHP5.2でnamespaceもお流れになったから globalにfunction作りまくるよりはclass使ったほうが良いと思う newマンドクセならstaticにするべ
>>331 クラス使う目的は面倒くさいとかそうでないとかではないだろ
インスタンス化が面倒だったらstatic使えば
336 :
331 :2007/05/03(木) 12:34:04 ID:???
>>335 ごめ、今までクラス使ったことないからわかんない
クラスって何だろう?って思うと、皆はまとめるだけとかいうが、
俺は別に必要性を感じないから使っていない
>プログラムの部分的な再利用がしやすくなるなどのメリットがある。 functionあるし、やっぱり必要性を感じない俺は末期wwwwww
>>339 まだ20歳だし、勉強していこうと思えばなんとかなるかな?
しかし、2年も独学で勉強していてここまで成長がないのは俺だけでいい
>>338 デザインパターンについて勉強してみると多分有効性が分かる
無理してOOPなんて使う必要はない。 趣味でやる場合は特に。 会社に入れば使えるようになるし、 覚えようと思って覚える必要はない。
>>341 それそれデザインパターン
まえから気になってたんだけど良い本がなかったorz
「PHPのデザインパターン」って本はないのかな・・・?
>>342 今までは趣味でしていたけど、
知り合いのWebデザイン関係の人のコネでPHPを使った簡単な仕事が入るようになった
この場合はもう趣味では済まされなくなるよな・・・
OOPの話が出るととりあえずデザインパターンって 言う奴はどうかしてると思う
デザパタは、まずはOOPの基礎が理解できてないと読んでもわからない。 よってまずはOOP入門が先。デザパタはその次。
デザパタを意識しだすのは、結構な分量の糞コードを自分で書いてからだな。 最初はstatic,singletonだけで、クラスに関数まとめるだけでも利便性があるし。
PHP→OOP→デザパタ
オブジェクト指向を解説してるWebサイトなんて星の数ほどあるだろ。 理解したいなら真剣に読んでみたら? 手続き指向とはプログラムの設計の考え方が根本的に違うわけで、 便利になるとか不便になるとかいう次元の話ではない。
ああ、便利・不便だと語弊があるかも。 プログラム作りが楽になるとか面倒になるとかいう話ではないってこと
cURL関数でHTTPコードを参照するにはどうすればいいんでしょう? リモートサーバが「404」を返して失敗したとか 「200」を返して成功したとか の判定をしたいと思ってます。
容量を節約する為に、長い文字列を短くしてDBに格納しようと思っているんですが md5は日本語何文字程度までなら暗号化→複合が可能なんでしょうか?
>>354 MD5は暗号じゃないし、複合もできない。
357 :
354 :2007/05/03(木) 14:48:49 ID:eLSTvBdp
oh... ありがとうございました。
359 :
nobodyさん :2007/05/03(木) 16:54:25 ID:grlGgfbD
PHPとMYSQLで日本語文字のクエリ抽出でつまずいています。 具具って見るとSQLでのマルチバイト文字抽出はPHPが対応していない ような記事を見かけたのですが、これを補う方法ありませんでしょうか?
フィールドで抽出してるんだけど、レコード全体の数も入れときたい場合は どういうSQL文かけばいいでしょうかね? DBはMySqlです。
362 :
359 :2007/05/03(木) 18:28:20 ID:grlGgfbD
>>361 たとえば、下記のようにすると「つて」を含まないレコードも
抽出されてしまいます。
どうすればよいでしょうか?
おねがいします。
$str="つて";
$sql="SELECT * FORM main WHERE fld='$str';";
363 :
359 :2007/05/03(木) 18:31:35 ID:grlGgfbD
間違いしました。 訂正 × $sql="SELECT * FORM main WHERE fld='$str';"; ○ $sql="SELECT * FROM main WHERE fld='$str';";
文字コードの問題じゃないですか?
365 :
359 :2007/05/03(木) 18:33:08 ID:grlGgfbD
何度もすいません、更に訂正です $sql="SELECT * FORM main WHERE fld='%$str%';";
>>363 上と下で何が違うか分からんけどSQL文の最後のセミコロンっているんだっけ?
あとできるだけ実際のコードを出したほうが解決しやすいと思いますよ
likeじゃないの?
368 :
359 :2007/05/03(木) 18:35:23 ID:grlGgfbD
サーバーはwin2003の文字コードはSJISでMYSQLの方がUTF-8です。
$sql = "SELECT * FROM main WHERE fld LIKE BINARY '%$str%';";
371 :
359 :2007/05/03(木) 18:37:41 ID:grlGgfbD
>>367 あ、すいません。そうですLIKEでした。慌ててしまったもんで間違いましたすいません。
$sql="SELECT * FORM main WHERE fld LIKE '$str';"; でしたね。
372 :
359 :2007/05/03(木) 18:44:14 ID:grlGgfbD
>>370 様、ありがとうございました。
うまく抽出できるようになりました。
他の人はどうでもいいのか
動的ページを作ってます。 外部ファイルなどに、すべてのタイトルや、タイトルの内容を書いたファイルを用意して。 ./xxx.php?title=1 の時は ■タイトル1 ■タイトル2 ■タイトル3 ./xxx.php?title=2 の時は ■タイトル1 ■タイトル2 □タイトル2の内容1 □タイトル2の内容2 ■タイトル3 とアドレスによってメニューを変えたいのですが、どんな風に組めばいいのでしょうか?
<? if ($title == 1) { ?> ■タイトル1 ■タイトル2 ■タイトル3 <? } else if ($title == 2) { ?> ■タイトル1 ■タイトル2 □タイトル2の内容1 □タイトル2の内容2 ■タイトル3 <? } ?>
そのままifなりswitchなりで分岐すればいいんじゃ?
レスありがとうございます。 やはりifで分岐するのがいいんですね。 タイトルの数が多いのでfile()と組み合わせてやってみます〜 file()で開いて書き出すときにifすればいいのかな? 朝まで悩んでみますw
>>37 fileと組み合わせるってどういう意味?
番号ごとに行で区切ったらその行のデータだけもってくればいいんじゃね?
classって呼び出すと、中にあるfunctionまで全部呼び出されるの? ひとつのclassにfunctionいっぱい書いてたら、そのうちのひとつ呼び出したくても重くならね?
380 :
nobodyさん :2007/05/03(木) 20:31:24 ID:Ur5keSLI
変数$wに0〜300まで値が入り、範囲を3種類に分けた処理をしたい場合どうすればいいのでしょうか? 例えば0〜100までの場合は処理1 101〜200までの場合は処理2 201〜300までの場合は処理3 IF分でできるのでしょうか?
まじで? if (($w > 0) or ($w < 100)){ return '処理1'; }elseif(($w > 101) or ($w < 200)){ return '処理2'; }elseif(($w > 201) or ($w < 300)){ return '処理2'; } こんな感じで合ってる? $w = 150ってすると処理1が帰ってくるorz
そりゃ、もし$wが0より大きいか100より小さい場合に処理1を返す、って書いてるんだから 当然そうなるわな
>>383 orになってるからそれであってるけど、やりたい事とは違うようだな。
andにしたら出来ました!! 30分無駄な時間をすごしたo... rz
388 :
nobodyさん :2007/05/03(木) 20:59:52 ID:4b9rb2Ka
オブジェクト指向の仕組みがわかってない状態なんだけど、 class=functionをグループにしたもの function=独自関数 __construct=クラスが呼び出されたときに行う処理 こんな感じでいいのかな?
違う
全然違う
391 :
nobodyさん :2007/05/03(木) 21:15:21 ID:4b9rb2Ka
あれ、おかしいな 本には印鑑にたとえて説明してあった
印鑑OOPkwskw
印鑑に例えたら、いんかんだろ
394 :
nobodyさん :2007/05/03(木) 21:25:55 ID:4b9rb2Ka
「印鑑」をオブジェクトに見立てる。 彫られた名前、直径、長さなどの属性を「プロパティ」 押すという手続きを「メゾット」 こんな感じで載ってる (秀和システムの書籍「PHP5逆引き大全500の極意」より)
押すしかメソッドねーじゃんw
>>394 また新しいおかしなたとえを考え出したなw
車でアクセルとブレーキがメソッドで、色や馬力がプロパティとかよく見たけど。
日本人向けか?
オブジェクト指向って、本読んで頭で理解してもなかなか使おうと思わないような気がする。
というか、使いどころが解らないと思う。
俺みたいな馬鹿は
>>347 の言うとおり、いっぱいコード書いて、「なんかこのコード前も書いたなあ」と何度も思ったりとか
コピペしまくって、後でバグ発見して、全部直すのに手こずって、パニックったりとか
クラスを拡張しすぎて、3000行ぐらいになっちゃって、どこにバグがあるのか解らなくてイライラしたりとか
と言う経験をいっぱいしてやっとOOPを意識するようになった。
とにかく動く物をいっぱい書いてみると良い。
OOPの本をいっぱい読むのもイイ。
あと、OOPで設計されたフレームワークとかのソースを読んでみるのも良い。
(PHPならZendFrameworkあたりが良い)
となんか偉そうに書いてみたけど「デザインパターン」でもいってるように
「OOPを使って再利用可能なプログラムを設計する」のって難しいよね。
でも、出来たときは嬉しい!
ソフトウェアをモデル化したりモジュール化したりするのに便利なだけであって 趣味でやってるとか個人で完結するプログラムなら別に要らないだろ。 使いどころが解らないなら理解が足りないか必要性がないかのどちらかなわけで。 OOP信仰とでもいうのかね。
398 :
nobodyさん :2007/05/03(木) 21:46:01 ID:dREQm95x
class 印鑑
{
....
function 押す($myname)
{
$this->set_name($myname);
$this->put();
}
....
function result()
{
return 'あなたは、'.$this->result.'です。';
}
.....
}
$hoshou = new 印鑑;
$hoshou-> 押す('
>>394 ');
echo $hoshou->result();
----------------------
あなたは、自己破産です。
399 :
nobodyさん :2007/05/03(木) 21:46:46 ID:4b9rb2Ka
そだね、必要性を感じてきたらでいっか いつか必要になるかもしれんので覚えておこうと思っただけなんだ、ごめん・・・
400 :
398 :2007/05/03(木) 21:49:13 ID:???
>>366 PHPのMySQL関数でクエリを送る場合「いれない」が正解。
1行だけしか送れないので不要という理由もあるけど
説明でわざわざ「いれない」との記述があるので
入れると寧ろどこかで悪影響がある可能性も考えられる。
オライリーの詳細正規表現の本って 通常のと第2版ってのがあるけどどっちがいいのよ?
複数(10個ほど)のSubmitを配置し、どのボタンが押されたか知る方法ってありますか? name属性に"Submit_1"もあれば"Submit_158"もあったり数字の部分は動的に変えています。 なにか方法はありますか?
へ?nameで渡るだろ?
406 :
nobodyさん :2007/05/04(金) 00:29:37 ID:7svLyDoe
さっきサーバーにPHP5をインストールしたのですが $a = substr($a,1,2); ↑ substrが使えません。 なぜ?
408 :
406 :2007/05/04(金) 00:44:29 ID:???
解決しますた
>>403 意味がワカランが・・・「動的」ってのが鍵なのか?
だったら、nameをarrayにすればいい。
<input name="send[120]".....value="foo" />
<input name="send[30]".....value="bar" />
<input name="send[220]".....value="doraemon" />
var_dump($_POST);
すれば、[send]=>array([30]=>bar)とかが取れる
ID:oManko9x 2chと同じようにこんな感じでユニークなIDを作りたい uniqidやmd5は小文字しかないのでダメでした。 どうやったら作れますか?
if ( $mailaddress =~ /^(.*)\@(.*)$/ ) { $localpart = $1; $domain = $2; } perlで上のような構文を見かけたんですが、 phpで似たような構文は可能でしょうか? それともpreg_match()などの関数を使う必要があるでしょうか?
414 :
410 :2007/05/04(金) 01:56:19 ID:???
だからどうやるのかPHPでおしえてよ
415 :
nobodyさん :2007/05/04(金) 02:10:24 ID:4Tv/1S6h
if(isset($_GET['key'])){ if(is_numeric($_GET['key'])){ $key = intval($_GET['key']); } } てやってたんだけど変数セットされてなかったらis_numericがfalse返すから if(is_numeric($_GET['key'])){ $key = intval($_GET['key']); } これだけでいい?
416 :
403 :2007/05/04(金) 02:11:03 ID:???
name属性まで配列に出来るのですね <input type="submit" name="send[30]" value="foo" /> <input type="submit" name="send[120]" value="foo" /> <input type="submit" name="send[220]" value="foo" /> の場合ですと、2番目のボタンをクリックしたときに「120」の値を取得したいのです。 調べて見ましたが「var_dump($_POST);」だと全部でてしまうし array_slice(var_dump($_POST),0,1);と書いてもダメみたいです。 foreachもやってみましたがダメみたいです。 どうやれば取得できるのでしょうか?
417 :
403 :2007/05/04(金) 02:15:16 ID:???
質問ばかりでもアレなので・・・
>>410 echo md5(uniqid(mt_rand(), TRUE));
とすれば32桁のユニークなIDが取れます。
あとは適当に切って取りたい桁数にしてあければいいのでは?
>>410 IPとか絡めてDESハッシュにしたら。
>>415 Undefined indexになるからよくない。
>>416 <input type="submit" name="send" value="120" />
ではダメなん?
419 :
403 :2007/05/04(金) 02:21:09 ID:???
>>418 それが出来ると一番簡単なのですが、「訂正」とか「削除」という表記のボタンなのでvalueは変えれないのです。
>>416 $_POST['name']['30']に渡ってくるんだろ?
だったらそれのキーを取ればいいじゃん。
まぁ俺だったら面倒だからhidden使うけど。
>>419 そうなると
key($_POST['send'])
かな。
422 :
403 :2007/05/04(金) 02:35:19 ID:???
>>420 取れました!!
$_POSTの後に何も書かなかったのがダメだったのですね
['name']と入れたら取得できました。
夜分にお騒がせしました。
今までtextのサイズを0pxにしていましたがhiddenを今まで知りませんでした。
便利そうですね。早速使って見ます。
423 :
nobodyさん :2007/05/04(金) 02:44:24 ID:4Tv/1S6h
>418 Undefined indexだけなら実用上問題ないか thx
> 今までtextのサイズを0pxにしていましたがhiddenを今まで知りませんでした。 (;´Д`)
質問なのにID出さない、かってに自己解決する奴が大杉 自演に必死真面目に答えてる奴もどうかと思うわ
お前のほうがどうかと思うわ
427 :
409 :2007/05/04(金) 07:00:45 ID:???
自演かどうか別として
>>422 hiddenなんか使ってもあなたのやりたいことは、無理。
form要素をsubmit分使うなら別だけど、それなら、もともとの質問
>>403 と合わない。
428 :
nobodyさん :2007/05/04(金) 11:05:02 ID:/O1lAt+h
wicketだ、wicket!
PHPって HTMLもろくに知らないやつでもできるんだーwww
430 :
403 :2007/05/04(金) 13:46:28 ID:???
ASP.NETからPHPに挑戦していますwwwwww HTMLは多少知っている程度でも出来るみたいですねwwww 今はなんとなく書き方が判ったからなんとなく出来てますwwwwwwwww
そりゃスクリプト言語なんだから知らなくてもできるだろ HTML使わないケースもあるし
432 :
nobodyさん :2007/05/04(金) 16:31:43 ID:tMlUrrmD
PHPを5.0.4から5.2.2にアップグレードしました。 PHPスクリプトで作ったRep2というスクリプトを動かすと php_sqlite.dllがロードできないとエラーが出るようになりました。 php.iniの関連がありそうな extension=php_pdo.dll extension=php_pdo_sqlite.dll extension=php_sqlite.dll のコメントアウトの確認やdllの再コピーを試したのですが全く改善されません。 どなたかアドバイスください。よろしくお願いします。
・ApacheのPHPIniDir設定は? ・php.iniのextention_dirの設定は? ・正確なエラー文は? ・php_sqlite.dllはちゃんとあるの?
434 :
nobodyさん :2007/05/04(金) 16:50:51 ID:Cy0pzuiX
>>425 必死真面目とか言うけど、このスレ程解答者が情報出し渋るスレも中々ないから。
昔風の頭の固いお荷物共が答えてる感じしかしない。
435 :
nobodyさん :2007/05/04(金) 16:56:52 ID:tMlUrrmD
>>433 早速ありがとうございます。
・ApacheのPHPIniDir設定は?
sqlite絡みでないPHPは動いているので大丈夫だと思います。
・php.iniのextention_dirの設定は?
extension_dir = "c:/php/ext/"
Cドライブ直下にPHPをインストールしてます。
同じくsqliteでないほかのextentionは読み込めているので大丈夫だと思います。
・正確なエラー文は?
Error: php_sqlite.dllをロードできませんでした。
です。
・php_sqlite.dllはちゃんとあるの?
>>432 で書いたように
PHPのzipパッケージからextフォルダーに
php_sqlite.dll、php_pdo_sqlite.dll、php_pdo.dllの再コピーを行いましたのであると思います。
このrep2、アップグレードするまでは通常に動作していました。
rep2スレでPHPのスレで質問するように誘導されました。
PHPIniDir設定は大いに関係ありますです。 エラー文はPHPのFatal Errorではなくてスクリプトのエラー表示なのね? それならコード見せて。
437 :
nobodyさん :2007/05/04(金) 17:19:13 ID:LLBEYpsm
class test { public $aaa; public $bbb; public $ccc; public function ech($aaa,$bbb,$ccc){ echo $aaa,$bbb,$ccc; } } $obj = new test("aaa","bbb","ccc"); $obj->ech(); この場合、$aaa〜$cccが出力されるはずなのですが、 なぜかエラーが返ってきます。 「Missing argument 1 for test::ech(), called」 function ehc内でglobalで呼び出すしかないのでしょうか?
438 :
nobodyさん :2007/05/04(金) 17:20:00 ID:tMlUrrmD
>>436 丁寧にありがとうございます。
>PHPIniDir設定は大いに関係ありますです。
とのことなので早速調べてみたのですが
httpd.confの中にPHPIniDirという設定項目がありません。
PHPIniDir "C:/php"
を付け足そうと思うのですが
httpd.confのどこに足せばよいのでしょうか?
自作スクリプトでなくてどこが原因かわかりませんが
ttp://page2.xrea.jp/expack/index.php/download の
rep2ex-060903-0030.zip (905KB)
を展開して使用してました。
これのread.php、/iv2.phpで前述のエラーが出るようになりました。
>>437 $obj = new test;
$obj->ech("aaa","bbb","ccc");
>>438 httpd.confの一番最後にでもそれを付け足して再起動して試してみて。
>>437 それだと引数で渡してる先はコンストラクタ。
echメソッドには何も渡してない。
441 :
nobodyさん :2007/05/04(金) 17:30:29 ID:LLBEYpsm
つまり、class内、function外に書くとコンストラクタに渡すのですか・・・ classを宣言するときに、引数をclassに渡して、それをそのクラス内で使いまわしたい場合はどのようにすれば良いのですか?
442 :
nobodyさん :2007/05/04(金) 17:34:02 ID:tMlUrrmD
>>440 付け加えてPC自体を再起動してみましたが状況は変わりませんでした。
PHPinfoで見るべき場所とかありますか?
>>441 コンストラクタの中でプロパティに代入すれば?
>>442 Configuration File (php.ini) Path
extension_dir
mysqliteの段落
445 :
nobodyさん :2007/05/04(金) 17:40:32 ID:LLBEYpsm
446 :
nobodyさん :2007/05/04(金) 17:46:22 ID:tMlUrrmD
>>444 Configuration File (php.ini) Path C:\PHP\php.ini
extension_dir c:/php/ext/ c:/php/ext/
mysqliteという項目が存在しません。
PDO drivers sqlite
PECL Module version 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.2 2007/03/23 14:30:00 wez Exp $
SQLite Library 3.3.16undefined
というのはありますけど違いますよね。
mysqliteってなんだよ
mysqliteワロタwwwwwwwwww 何で合体してるんだwwwwwwwwww
フレームワークに、データベース管理が簡単になるようなものとか入ってる? あとは、会員システムが作りやすくなる補助的なもの
>>435 > PHPのzipパッケージからextフォルダーに
> php_sqlite.dll、php_pdo_sqlite.dll、php_pdo.dllの再コピーを行いましたのであると思います。
PHP5.2.2のWindows用zipパッケージなら最初からextディレクトリにphp_sqlite.dllって入ってるだろう。
それ、どっから何を再コピーしてきたのさ?そんな操作は不要なはずだぞ?
PHP自体を再インストールしてみた方がいいんじゃないの?
ちなみに5.2.2を解凍してphp.iniで
extension_dir = "c:\php\ext"
と設定して
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
の3つのコメントを外しただけの状態でphpinfoには
> SQLite
>
> SQLite support => enabled
> PECL Module version => 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.7 2007/03/06 02:17:13 stas Exp $
> SQLite Library => 2.8.17
> SQLite Encoding => iso8859
という項目が現れるはず。
451 :
nobodyさん :2007/05/04(金) 18:21:06 ID:tMlUrrmD
>>450 >それ、どっから何を再コピーしてきたのさ?そんな操作は不要なはずだぞ?
念のためにphp-5.2.2-Win32をDLして解凍して
extフォルダー内からコピーし直しました。
再インストールしてみます。
iniで指定しなかったらSQLiteて項目も出ないはずだから そのコピーが問題なんじゃね。 まずphpinfoで認識されるかどうかを確実にすることが先決だな。
453 :
nobodyさん :2007/05/04(金) 18:31:06 ID:tMlUrrmD
>>450 どーやら再インストールしようとしたら解決しました。
えーとwindowsのsystem32フォルダに以前のバージョンのdllを放置してたのが原因だったようです。
申し訳ありませんでした。
再インストールの段になって以前のバージョンを削除することに考えがいきました。
削除しながらもしかしてと思って一度再起動して確認したところ
SQLite support enabled
PECL Module version 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.7 2007/03/06 02:17:13 stas Exp $
SQLite Library 2.8.17
SQLite Encoding iso8859
このようなメッセージも確認でき無事にスクリプトも動きました。
アドバイスありがとうございました。
>>453 > えーとwindowsのsystem32フォルダに以前のバージョンのdllを放置してたのが原因だったようです。
要らん再コピーとか無駄なアレンジを加えたための単なる自爆だな。
455 :
453 :2007/05/04(金) 18:48:28 ID:???
>要らん再コピー これはこれで動くようになったという人の話をググって見つけたので試してみました。 要るかどうか判断できなかったので。。 でもそれ以前の問題だったようですね。すいません。
>>453 いつも思うんだけど、解決に尽力してくれたその他多くの人達はどうでもいいの?
>>456 アドバイスありがとうって書いてるのに
それ以上の何を望んでるんだろ?
>>456 見たいなのがこのスレを駄目にしている
まぁいまさら遅いか
このスレだってちょっとマトモに見える時はある。 でも内容自体がくだらないので決して良スレには化けない。 くだ質スレなんてどこもそんな感じ。
普通の質問スレなんて無いけどね
前は普通の質問スレもあったけどな
>>457 >>458 礼に無神経な質問者が多いから駄目なんだよ。
言われる前に気を払わないと。
てか453は言われてもシカトだしな。
なにこいつ
464 :
453 :2007/05/04(金) 21:15:30 ID:???
どうもすみませんでした。 離席してました。 ご回答くださった皆さん、本当にありがとうございました。
465 :
nobodyさん :2007/05/04(金) 21:43:07 ID:4LncoC7V
system32になんで入ってるの? PHP5.xみたいなディレクトリに収まってるはずじゃ
466 :
nobodyさん :2007/05/04(金) 21:58:58 ID:KgO3BPJP
エラーの発見・解決をしやすくする方法を教えろ。
【PHP】下らねぇ質問はここに書き込みやがれ そもそもこのタイトルが悪い このタイトルを変えない限りここは基地外の巣靴であり続ける
結局何も変わらないのか……はぁ…。
472 :
nobodyさん :2007/05/04(金) 22:51:43 ID:CQ+J25Qf
.htaccessへ RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)\.html$ read.php?category=$1&contents=$2&page=$3 [L] RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)$ /read.php?category=$1&contents=$2&page=$3 [L] と書いてアドレス変換するようにしていますが、 rade.phpなどをいじっていると /xxx/yyy/zzz.htmlでは問題ないのですが、 /xxx/yyy/zzz では白紙になってしまいます。 また、 if (@is_file("./xxx/yyy/zzz/..php")) { include("./xxx/yyy/zzz/..php"); include("./menu.php"); }else{ header("HTTP/1.0 404 Not Found", true, 404); include("./error.php"); error(); exit; としているのですが、これまた /xxx/yyy/zzz の場合に白紙になってしまいます。 どのあたりをチェックすればいいでしょうか?
473 :
nobodyさん :2007/05/04(金) 23:20:41 ID:JeCkXlLh
PHPかJSPサーブレットを使って、MySQLを使うサイトを作ろうと考えているのですが アクセス数が万などになって、訪れる1人1人が頻繁にSQL文を発行するようなサイトの場合、 PHPで作成した場合とJSP&サーブレットで作成した場合ではどの程度レスポンスに差が出てくるのでしょうか? 〜のサイトがPHPを使ってるなどという情報も教えていただけたら、と思っています。
アクセス数が万って1秒間に?
>>472 >rade.phpなどをいじっていると
意味不明。
まあ、すくなくとも
RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)$ /read.php?category=$1&contents=$2&page=$3 [L]
の方は、/read.phpの/が悪さしてるんだろ。
476 :
nobodyさん :2007/05/05(土) 00:03:04 ID:1dXIFJS6
>>475 レスありがとう。
/ は何かのゴミです。.htaccessには入ってないです。
じゃあ問題を2つにわけなさいよ .htaccessの書式については read.phpの冒頭に var_dump($_GET);を書いてで引数が渡っているかどうかを確認 ここが問題なきゃ後者のfile includeの部分で失敗している。
phpを勉強しようとローカルサーバでインストールしました。 phpのバージョンは 4.4.7 です。 オブジェクトのメンバへのアクセスが $dbTbl = new clsDB(); $dbTbl->db2table("hogehoge"); だとNGで $dbTbl = new clsDB(); $dbTbl.db2table("hogehoge"); だとうまくいきます。 どの資料でも -> でアクセスしているので -> にしたいのですが、 原因は何でしょうか?
1.NGじゃ分からん。何がどうなる。 2.うまくいくじゃ分からん。何がどうなる。 ちなみにPHPでメンバにドットではアクセスできません。
480 :
478 :2007/05/05(土) 00:34:58 ID:???
>>478 メンバにドットでアクセスできて、アロー演算子でできなくて困ってます。
$dbTbl = new clsDB();
$dbTbl->db2table("hogehoge");
class clsDB{
function clsDB(){
}
}
function db2table($str){
print($str);
}
アロー演算子でメンバにアクセスすると、
Fatal error: Call to undefined method: clsdb->db2table()
となり
Javaのようにピリオドでメンバにアクセすると、
hogehoge
が表示できます。
なぜだろう…
文字列連結になってるだけだし db2tableってメソッドになってないし
485 :
nobodyさん :2007/05/05(土) 00:51:00 ID:eLQmnQPO
str_replaceだと、ヒットしたすべての語が変換されてしまいますが 最初にヒットした箇所だけを変換したい場合はどうすればいいですか?
486 :
484 :2007/05/05(土) 00:59:36 ID:???
つか経験者が「ドットじゃ無理」って言ってるのに
「いいやこっちの方が正しい。アクセス可能。」と言い張る神経が理解できない。
もしかして間違ってるのは自分のほうかな?と省みることは無いんだろうか。
自分のやってることは全て正しくて、間違ってるのは周りに決まってると思ってるんだろうか。
>>485 preg_replace
487 :
nobodyさん :2007/05/05(土) 01:08:53 ID:wIBq1T/y
PHPバージョンアップ記念あげ
おまえらコンパイル画面でも見て悟りを開け 行く文字のながれは絶えずして、しかも本のソースにあらずってな
日本語でおk
490 :
nobodyさん :2007/05/05(土) 03:07:58 ID:1dXIFJS6
>>477 レスありがとうございます。
var_dump($_GET);を書いてやってみました。
.htaccessの内容は
RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)$
の部分を
RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/?$
とした以外変わりないです。
/xxx/yyy/zzz.html だとページは問題なく表示され
array(3) { ["category"]=> string(11) "xxx" ["contents"]=> string(8) "yyy" ["page"]=> string(5) "zzz" }
と表示されています。しかし
/xxx/yyy/zzz だとやはり白紙です。
また/xxx/yyy/z と少しアドレスをきると、404が帰ってて、その上部にarray(3)・・・と同じものが表示されます。
それと、RewriteRule ^(.*)/(.*)/(.*)/?$ read.php?category=$1&contents=$2&page=$3 [L]
に変えてみらところ、/xxx/yyy/zzz では、白紙ではなく、404が戻ります。
404は、rade.phpで if (@is_file ・・・ していて該当ファイルがない場合
header("HTTP/1.0 404 Not Found", true, 404);でエラードキュメントを表示するようにしてるためだと思うのですが、
上記の時に、/image/rrr/sss.jpg などが直リンできなくなります。
いったいどこがどうなっているのかさっぱりです・・・
491 :
nobodyさん :2007/05/05(土) 03:08:07 ID:1lZd7YEC
<HTML> TEST 1 TEST 2 TEST 3 </HTML> 上から 1,2,3という数を正規表現で抜き出したいです。 preg_match_all()を使用して、 "/<HTML>(TEST ([0-9])\n)+<\/HTML>/s" のようにしていますが、 3しか取得できません。 「TEST [0-9]」の数が定まっていれば簡単ですが、 変化する場合、()の使い方がイマイチわかりません。 どのようにすればよいでしょうか?
>>491 素直にソース出したほうが早い
なんとなくpreg_match_allのマニュアル読み直すと解決しそうな匂いはする
正規表現自体間違ってるよ
>>491 単に改行コードが\r\nなだけじゃ?
初めから終わりまで指定してまうと
その間の全ての文字を考慮しないといけなくなるから
(もちろんそれが必要になる場合もあるけど)
'/TEST ([[:digit:]]+)/'
その場合単にこうしてしまった方がいいと思うけど。
495 :
494 :2007/05/05(土) 04:13:01 ID:???
ああ違った正規表現の所為でループしてないのね…
ユーザーからの入力値を正規表現で変換する場合、 入力値に正規表現の特殊文字が含まれているかもしれないですよね? そんな特殊文字を一括してエスケープする方法はありますか?
あります。
498 :
nobodyさん :2007/05/05(土) 05:47:39 ID:2h7OPxMf
>>499 正規表現で置換です
preg_quoteってのがあるみたいですね
ランダムな文字列から全角・半角数字を取り除く方法を教えてください。 例、 こども人口、26年連続減少の1738万人 ↓ こども人口、年連続減少の万人
>>501 UTF-8ならpreg_replaceでuオプションを付けて、
他のエンコードならmb_ereg_replaceで、
[0-90-9]を指定。
session.gc_maxlifetimeで設定した時間以下で セッションが勝手に破棄されることってありますか? maxのlifetimeという表現が気になります
505 :
501 :2007/05/05(土) 11:28:20 ID:???
506 :
501 :2007/05/05(土) 11:50:38 ID:???
なんかレベルひくいよねここ
ワロタ
>>500 置換される側なら別にエスケープする必要ないべ
今日からphp始めました。 さっきphp5.2.2ダウンロードして、今httpd.confを編集中のあたりでもうすでにでっかい壁が出来ました。 AddDefaultCharset none LoadModule php5_module C:/php/php5apache2.dll AddType application/x-httpd-php .php をちゃんと置いてるはずなのにphpinfo.phpがちゃんと表示されない(ソースが出る)。 これってやっぱhttpd.confの設定が駄目なんすかね?あと、php.ini編集した後にapache再起動するの忘れた。 もしかしてそれのせい?
じゃしろよ
だから質問者はID出せと何度言ったら。 面白半分に騙る奴が出て来るんだよ馬鹿。
513 :
nobodyさん :2007/05/05(土) 15:35:13 ID:KTSUFz5D
include, require, readfile などでファイルを読み込んで出力する際に ファイルロックはしておく必要があるのでしょうか? flock は使えないみたいですし… 読み込むだけなら別にロックしなくてもいいんですかね?
>読み込むだけなら別にロックしなくてもいいんですかね? そりゃそうだ
515 :
513 :2007/05/05(土) 15:46:33 ID:???
「ファイルロックしなきゃ!!」と思う前に 「ファイルロックって何?」って思わないもんなん?
いや、ファイルロック位知ってます。 読み込むだけなら〜 の部分は readfile などがロックしてるのかと思って書いたものです 急いで書いたため全然違う日本語になってしまいましたが…
いや明らかに分かってないだろ 日本語も分かってないんじゃねw まずマニュアル読めよ
519 :
nobodyさん :2007/05/05(土) 18:17:10 ID:H+RxaHTQ
すいません <a href="../test/read.cgi/php/1177635762/500" target="_blank"> ↓ <a href="#500"> <a href="../test/read.cgi/php/1177635762/249-250" target="_blank"> ↓ <a href="#249"> こんな感じに変換したいんですが、うまくいきません。 お力添え御願いします。
何をやったらうまくいかなかったの?
521 :
519 :2007/05/05(土) 18:50:54 ID:H+RxaHTQ
>>520 $a = ' target="_blank"';
$b = '../test/read.cgi/'.$u1.'/'.$u2.'/';
$text = str_replace($a, '', $text);
$text = str_replace($b, '#', $text);
これで上のパターンはうまくいくのですが
下のパターンがダメです。
正規表現を使えばいいのでしょうが書き方がわかりません。
>>519 $pattern = '!<a.+href=".+/(\d+).+".+>!';
$replace = '<a href="#\1">';
$str = '<a href="../test/read.cgi/php/1177635762/500" target="_blank">';
$replaced = preg_replace($pattern, $replace, $str);
var_dump($replaced);
$str = '<a href="../test/read.cgi/php/1177635762/249-250" target="_blank">';
$replaced = preg_replace($pattern, $replace, $str);
var_dump($replaced);
こんな感じか
パターンかなり適当だからマッチしない場合には修正してくれ
正規表現はマニュアル見て勉強するしかない
523 :
519 :2007/05/05(土) 19:57:17 ID:H+RxaHTQ
>>522 $pattern = '!<a.+href=".+/(\d+).+".+>!';
$replace = '<a href="#\1">';
これだと</a>まで巻き込んでしまったので
$pattern = '!<a.+href=".+/(\d+).+".+>(.+)</a>!';
$replace = '<a href="#\1">\2</a>';
これでうまくいきました。有難うございました。
>>523 お前の元発言が</a>とか書いてなかったからだろ
525 :
nobodyさん :2007/05/05(土) 23:33:15 ID:cnfZ7N5Y
gzencodeって関数あるじゃないですか。
で、その逆のgzdecodeが何故かなかったんで
ググったら
http://www.php.net/manual/ja/function.gzencode.php#44470に それらしいのを発見したんで使ってみたんですが、
今度は上のgzdecode内で使われているgzinflateがbuffer errorってのを返すんですね。
ちなみにgzdecodeしようとしたデータは、Googleに対してContent-Encoding: gzipで
アクセスして返ってきたデータなんですが、これをデコードするには
一旦ファイル作成して、gzopen使うしかないんでしょうか。
526 :
nobodyさん :2007/05/05(土) 23:43:34 ID:cnfZ7N5Y
すいません。 ×Googleに対してContent-Encoding: gzip ↓ ○Googleに対してAccept-Encoding: gzip でした。
527はレスの日本語も読めない人
529 :
nobodyさん :2007/05/06(日) 01:59:55 ID:mYMYvtVv
複数のウェブアプリを一つのサーバーに入れていて、 各々のウェブアプリのセッションの寿命設定が違う場合、 他のウェブアプリが走らせたガベージコレクションによって 別のウェブアプリのセッションファイルが 目論見より早い段階で掃除されてしまう、 ということはありえるでしょうか? ありえるとしたら、 アプリごとに、セッションパスを必ず分けなくてはいけない… ということでしょうか?
>>529 IDだしてて偉い!
ということで不肖ながら答えさせていただきます。
どうせだからちょっとセッションの軽いまとめをしてみよう。
まずガーベジコレクタが起動するタイミングはsession_start()が
呼び出されたとき。
で、session_start()が呼び出されても必ずガーベジコレクタが起動
するとは限らない。
ガーベジコレクタはsession_start()が呼び出された際に、php.iniの
session.gc_divisor / session.gc_probabilityの確率で起動する。
当然これは全てのsession_start()で等しい確率となる。
で、ガーベジコレクタが起動して掃除を始めると、これまたphp.iniの
session.gc_maxlifetimeを超えているセッションのみを削除する仕組
になっている。
つまり、
>>529 の心配していることが半分的中してしまう訳だな。
確かにあるWebアプリ用のガーベジコレクタが別のWebアプリ用の
セッション情報を削除してしまうのは間違いないけど、それは既に
寿命の切れたセッション情報だから問題ないはずだ。
どう?
>>529 セッションパスとセッション接頭子が全く一緒なら
そりゃ混ぜこぜにされちゃって掃除対象になっちゃうのでは。
session.save_pathかsession.nameのどっちかは
変えとかないといかんのじゃないかな。
うちはセッションルールが異なるアプリの場合、
session.save_pathは一緒だけどsession.nameをそれぞれ変えてる。
>>530 その「寿命」の設定が全く異なる場合に、
長命設定のものが短命設定のものに巻き込まれて
削除されてしまうのを心配してるんじゃ?
何を持って
> それは既に寿命の切れたセッション情報だから問題ない
と言ってるんだろう。
>>531 session.nameってURLのパラメータ識別子であって接頭子なんかじゃないぞ。
セッション情報は session.save_path/sess_* で保存されてるんだから
session.save_pathが一緒である限り他と区別する方法なんてない。
535 :
nobodyさん :2007/05/06(日) 03:10:41 ID:WP5rGYZn
setcookie("i_id" , "hoge" , time() + 60 * 60 * 24 * 7); とクッキーをセットした場合、セットしたディレクトリのみ有効? 上のディレクトリも有効にする事って出来ない?
>>533 ガーベジコレクタは寿命の切れたものしか削除
しないだろ?
だったら
>>530 の言うように寿命がそれぞれ違っ
ても問題ないんじゃない?
537 :
529 :2007/05/06(日) 03:22:18 ID:???
ご回答ありがとうございました 最低の設定で掃除されてしまうとは・・・ セッションセーブパスを必ず設定することを習慣にした方が いいかもしれないですね
>>536 寿命は生成時には決められない、ということでは?
gc_maxlifetimeは文字通りGCに対してだけの設定で、
セッションファイルに「このファイルの寿命はここまで」という属性を
与えるわけではないと。
>>538 なるほど。いや勉強になった
しかし俺が言うのもあれだがセッション関連の話題は毎スレ出てくるな
まとめをテンプレに入れたほうがいいのかな?
>>535 マニュアル読めよー
引数4番目がディレクトリの設定。
542 :
nobodyさん :2007/05/06(日) 04:50:39 ID:mYMYvtVv
session.bug_compat_42 session.bug_compat_warn こんなディレクティブの存在をはじめて知りました 説明を読むと、 本来はsession.bug_compat_42は0にしておくのがベターだと思うのですが 何故か1になっていました。 で、session.bug_compat_warnも1になっているのですが、警告されません。 エラーリポートはE_ALLです。 バージョンは5.1.6です。 PHP5ではsession.bug_compat_42は無視されているのでしょうか?
543 :
525 :2007/05/06(日) 05:36:49 ID:7LnaFZ8P
gzdecodeが悪かったわけではなく自分が、とちっていたようです。すいません。 レスポンスされたデータを適切に処理していなかったため gzdecodeでエラーを返していたみたいで、その壊れたデータをgzopenを使って処理した場合には なぜかうまく処理できていたというだけのようです。 具体的にはTransfer-Encoding: chunkedの時に 40 hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge 3a hogehogehogehogehogehogehogehogehogehogehogehogehogehogeho 0 のように返ってくるデータを 全部つなげてからgzdecodeしなければならないところを 切れたままのデータにgzdecode処理してしまっていたのが原因でした。 レスくれた人ありがとうございました。
544 :
542 :2007/05/06(日) 08:20:18 ID:???
おまえは質問しにきたのかお知らせにきたのかハッキリしないやつだな
まあ下質スレだしな
質問がらみでわかったことを情報提供するのが何が悪い
そして無駄なログが増えて続けて2ちゃんでるはデブになってゆく
だがそれがいい
うんこ
>>542 昔、グローバル変数とSESSIONがカチ会うとSESSIONが上書きされる現象に悩まされたが
原因はそれかあああ
session変数にses_を付ける方法でしのいだがとんでもないバグだな。
PHPのクオリティーの低さは異常。
552 :
nobodyさん :2007/05/06(日) 17:30:45 ID:bSP5KVqH
winXP
Apache2.2.4 + MySQL5.0.37 + PHP5.2.2 + phpmyadmin2.10.1で
phpmyadminがエラーになります
動くようにするにはどうすればいいでしょうか
表示されるメッセージは「phpMyAdmin - エラー」のみです
設定は
ttp://www.yamada-lab.org/doc/win/mysql5/index.html などを参考にしました
phpinfoではmysqlの欄も表示されます
行ったのは
文字コードをUTF8に統一
http.confにLoadModule php5_module(ry
php.iniのmbstringとmysqlのコメントを外す
config.inc.phpのpmaのURL記述と認証のhttpへの変更
libmysqlのsystem32へのコピー
です
文字コードはsjisに統一した状態でも同じでした
553 :
nobodyさん :2007/05/06(日) 17:34:47 ID:bSP5KVqH
エラーlogでは select_lang.lib.php on line 405 session.inc.php on line 117 session.inc.php on line 100 が何度か出てきます
554 :
nobodyさん :2007/05/06(日) 18:30:30 ID:zIFA24Jt
handan(-53) >no handan(aaa32) >no handan(4223) >yes handan(0) >yes handan(ads8ds) >no handan(000333) >no というふうに 正の整数+0ならYESと返す関数が見つかりません あれば教えてください。
555 :
nobodyさん :2007/05/06(日) 18:31:03 ID:zIFA24Jt
別にYESでなくてもいいので判断する関数をお願いします。
$hoge===0
って000333はnoなのか。なんでだ。
559 :
552 :2007/05/06(日) 19:17:43 ID:bSP5KVqH
Webprog板のphp関係下質スレで聞けと誘導されてきたのですが ここもスレ違いでしょうか
ならこれくらいしか思いつかない。 preg_match("/^(0|[1-9][0-9]*)$/", "値")
561 :
nobodyさん :2007/05/06(日) 19:22:07 ID:gRJO/G6J
設計について相談です。 会員毎のアクセス解析を作る場合、アクセスがあった度にログに追加していては 例えDBを使ったとしても、尋常じゃないほどログが増えすぎると思います。 かといって、1会員毎にログファイルを生成するやり方も、古い気がします。 そこで、指定件数(例えば30日以降のログは消去する)を決めて 1回目のアクセスは新規登録、2回目以降は上書き(カウントアップ)だけに しようとも思います。これだと会員が1000人いたら、1000×30=3万件ですが。 ただ、この考え方で良いのかどうか不安です。良い知恵をお借り出来ないでしょうか。
>>560 「0.00333のtypoでした」かもしれない。本人待ちがいいんでない?
>>561 俺ならアクセス毎に1件登録して
1日1回バッチ処理でユーザ毎の
カウントを集計してログを削除、にする。
アクセス毎にupdateは処理が重いのと、
不具合が出たときに誤集計になりやすい。
564 :
nobodyさん :2007/05/06(日) 19:38:24 ID:NIpCxqfr
565 :
561 :2007/05/06(日) 19:38:27 ID:???
>>563 ありがとうございます。なんとなく糸口が見えてきたので、
もう少しお願いします。
>1日1回バッチ処理でユーザ毎の カウントを集計してログを削除、にする。
との事ですが、これはログファイルを生成して日が終わった後に
修正したデータをDBに登録する。
と言う事でしょうか?それとも日のアクセスも一時保存用テーブルに保存して、
集計時に集計したデータを履歴用テーブルに保存し、一時保存のテーブルは
空にする と言う事でしょうか?
566 :
nobodyさん :2007/05/06(日) 19:38:54 ID:zIFA24Jt
>>560 おお、これです。
感謝します。
解答してくれた方もありがとうございました
誤入力を避けるために000333は禁止する方向でやってます
>>552 manual読んでもわからないならXAMPPでも入れておけば良いんじゃないかしら。
>>564 mod_rewite + router
569 :
nobodyさん :2007/05/06(日) 19:56:41 ID:bSP5KVqH
>>567 XAMPPの最新版を入れても同じエラーになります
570 :
nobodyさん :2007/05/06(日) 19:57:07 ID:CCThxWoF
あるサイトからフィルター的に部分部分で表示しようと思っているんだが、 もしサイトが更新されても安定して取得・表示する方法でいいアイデアってないかな? 今はサイトを取得してからeregで特定タグなりを目印にして出力しているんだが…
571 :
nobodyさん :2007/05/06(日) 20:13:39 ID:OoDHPbxz
$a = ($b) ? $c : $d; これってどういう意味? 一応調べたんだけど記号だからうまく調べられなかった
572 :
nobodyさん :2007/05/06(日) 20:17:03 ID:jInvdC5H
三項演算子 マニュアルの演算子のとこ
573 :
nobodyさん :2007/05/06(日) 20:19:18 ID:OoDHPbxz
>>564 $_SERVER['QUERY_STRING']
>>570 >更新されても安定して取得・表示する方法
ない。相手側の勝手だから。RSSとかやってるなら別だけど。
>>565 その辺の選択はアクセス量などに応じて
好きな方でいいと思う。
>>570 そもそも部分部分に表示って
どういう基準で選り分けてんだ
578 :
nobodyさん :2007/05/06(日) 20:35:48 ID:UWEsfuIO
その方がかっこいいからじゃね?
>>569 apache再起動した?
最初からXAMPPなの?別個に入れた後XAMPPも入れたの?
ちなみにいつエラーって言われるのさ?
もう一回最初から手順どおりやって見れ。そのほうが早いよ。
>>564 $_SERVER['PATH_INFO']
$_SERVER環境変数のうちPATH_INFOは、環境によって色々問題あるからね。 一番不安定。俺ならREQUEST_URI使うな。
あるUNIX時間をフォーマットして「分」を出す関数ありませんか?
>>583 「動的URL 静的URL 」 で検索.
めんどくさいから一言でおながい
一言:「IDを出せ」
指図するな!!!
平和だな
, , ./  ̄/  ̄ / _|__ ___|_ ―/ / |/ /| _/ _/ | _/| /\___/ヽ (.`ヽ(`> 、 /'''''' '''''':::::\ `'<`ゝr'フ\ + |(●), 、(●)、.:| + ⊂コ二Lフ^´ ノ, /⌒) | ,,,ノ(、_, )ヽ、,, .::::| ⊂l二L7_ / -ゝ-')´ .+ | `-=ニ=- ' .::::::| + . \_ 、__,.イ\ + \ `ニニ´ .:::/ + (T__ノ Tヽ , -r'⌒! ̄ `":::7ヽ.`- 、 ./| . ヽ¬. / ノ`ー-、ヘ<ー1´| ヽ | :::::::::::::ト、 \ ( ./ヽ \l__,./ i l.ヽ! | .| ::::::::::::::l ヽ `7ー.、‐'´ |\-、 ___________________________ __ │二│三│四│二│三│四│二│三│四│◎│◎│◎│伍│|伍| │萬│萬│萬│萬│萬│萬│萬│萬│萬│◎│◎│◎│萬│|萬|
597 :
nobodyさん :2007/05/07(月) 02:20:03 ID:ey+jINI9
Rails等のフレームワークにあるflush(一回限りのセッション)て どうやって実装すればいいですか?
598 :
nobodyさん :2007/05/07(月) 02:46:59 ID:oQG5Osro
Smarty使い始めたらファイルの量が2倍になって、 20〜30ページも作るとファイルの管理とエディタで切り替えがいい加減だるくなってくるんですが、 皆さんテンプレートやPHPファイルの数が増えても普通にエディタで作ってますか? EmEditorで全部書いてるんですけど、統合環境とか使うと違うのかなぁ。
599 :
597 :2007/05/07(月) 03:34:54 ID:???
register_shutdown_functionを使ってできますた
Smartyとか使ってるカスまだいたのか
使ってない童貞まだいたのか
602 :
nobodyさん :2007/05/07(月) 05:29:17 ID:VG09sLBd
そそ、テンプレートとかモデルとか使ってるとファイル数が増えすぎて逆に管理が大変になったりするんだよね・・・
603 :
nobodyさん :2007/05/07(月) 06:53:03 ID:HuKM0EbB
>>603 var_dump(parse_url('
http://hoge.com/poge/fugo '));
array(3) {
["scheme"]=>
string(4) "http"
["host"]=>
string(8) "hoge.com"
["path"]=>
string(10) "/poge/fugo"
}
すみませんが教えてください。 PHPでPDFを出力したく、フリーのライブラリを探しているのですがなにがお勧めでしょうか? PDFLibは、商用で使う場合有償なのですよね?
pearにあんじゃないの 多分
608 :
nobodyさん :2007/05/07(月) 11:47:12 ID:sGzYZkCO
下記SQLで抽出しようとすると、関係の無い2バイト文字まで出てきてしまいます。 どのようにすればよいでしょうか、よろしくお願いします。 $str="a"; $sql="SELECT * FROM table WHERE field LIKE BINARY '$%str%';";
609 :
nobodyさん :2007/05/07(月) 11:49:26 ID:sGzYZkCO
すみません、間違いました。 訂正 $sql="SELECT * FROM table WHERE field LIKE BINARY '%$str%';";
>>609 バイナリで検索してるんだから当たり前
LIKE BINARY
↓
LIKE
更にフィールドの型がbinary型になっていないかチェック
611 :
nobodyさん :2007/05/07(月) 12:30:58 ID:sGzYZkCO
>>610 ありがとうございます。
LIKE BINARYとしているのは、テキストボックスに入力があった場合に
日本語文字も検索できるようにしているからです。
この場合どうすればよいでしょうか。
よろしくお願いします。
612 :
609 :2007/05/07(月) 13:09:14 ID:sGzYZkCO
preg_matchで調べて2バイト文字を含む時のみBINARY句を入れるようにしたんですが 思うようにいきません。 データベースはMYSQLで検索対象フィールドタイプはtextにしています。
クッキーについて setcookieで同一ページでは問題ないのですが 同じ階層の違うページで if( isset( $HTTP_COOKIE_VARS["vs_pass"] ) ) { $vs_pass = $HTTP_COOKIE_VARS["vs_pass"]; } else{ . . . とやってもからっぽでした。 ドメインやパスか何かを指定しなければならないんでしょうか?
DB側の問題だよね?
618 :
nobodyさん :2007/05/07(月) 14:33:03 ID:V6z/gjwq
すみません、どなたか知恵をかしてください。 PHP5.2.1にて、ダイレクトIO(DIO)関数を使いたいのですが、 ./configure 時に --enable-dio を指定しても DIO が有効になりません。 PECLのサイトに dio がありましたが、ダウンロードしようとすると File Not Found となってしまい、pear install dio 、 pecl install dio でもインストールすることが出来ません。 ググっても同じような症状を解説しているサイトが見つからず、解決策が見つかりません。 どなたかご存知の方がいらっしゃいましたら、アドバイス頂けたらと思います。 よろしくお願いいたします。
文字コード指定すればいいだろ。日本語あるからバイナリて。
620 :
618 :2007/05/07(月) 15:01:20 ID:V6z/gjwq
自己レスです。 CSVにてダウンロード、コンパイルが出来ました。。 お騒がせいたしました。
621 :
nobodyさん :2007/05/07(月) 18:28:01 ID:eAJiAY6Q
すみません。include構文でつまづいています。初心者ですが、おしえてください。 Apache2/htdocs/sampleフォルダにPHPファイルを入れています。include構文で使うふぁいるは Apache2/includeに入れないとだめみたいなんですが、sampleフォルダからだと相対パスはどうなるんでしょうか? ../../include.incとしても駄目でした。他にも色々試したんですがだめでした。
622 :
621 :2007/05/07(月) 18:31:26 ID:eAJiAY6Q
621です。事故解決しました。他の部分のソースが違ってました。。 すみません。
ねこすけgoogle八分にされないかな
624 :
nobodyさん :2007/05/07(月) 22:11:52 ID:i2xtF+k7
ファイルの行数の総数を出す関数ありませんか?
625 :
nobodyさん :2007/05/07(月) 22:46:53 ID:RBHhVsf2
すんまそん。。 PDOでsqliteを操作しようとしています。 selectは問題なくできるのですが、insertができません。。orz コマンドラインからならinsertも出来ます。。 $dbh = new PDO("sqlite:test.db", '', ''); $sql = "INSERT INTO counrty_tbl (country) VALUES ('japan')"; $res = $dbh->query($sql); var_dump($res); でfalseが返ってきてしますうのですが。。どこら編がまずいのでしょうか。 sql文はコマンドラインで試したのと同じなので問題ないともうのですが。。 よろしくおながいします。m(_ _)m
626 :
115 :2007/05/07(月) 22:47:53 ID:???
>>624 単一では、ないんじゃないの?
最後の行が、改行コード行末を持つかどうかでちがう。
$file_array = file('foo/bar/file');
$count = count($file_array);
として、end($file_array);で最後の行の末尾が改行コードあるかどうかをチェックして
$count + 1 するかどうかが必要。
627 :
nobodyさん :2007/05/07(月) 23:01:44 ID:DrdXpO7U
fopenで改行探すだけ
file()だとtextが100MBあったら100MBの配列作ることになるわな
>>625 insertは戻り値無いからPDO->exec使うべ
628 :
625 :2007/05/07(月) 23:16:58 ID:???
>>627 どうもありがとーです!
原因は、、、、dbのアクセス権がよろしくなかったみたいです。。orz
アクセス権を修正したら、execでもqueryでも出来ました。><
しかも、「counrty_tbl」のつづりが間違ってました。。orz
でも、627さんのレスのおかげで、再び希望を持つことが出来、原因を突き止めることが出来ました。本当に助かりました!
629 :
624 :2007/05/07(月) 23:30:11 ID:i2xtF+k7
なんとなくわかった気がします。 私がやりたかったのは、 「ある行で、ある文字が検出されたら、それより上の行を全削除する」ってのをやりたかったんです。
>>613 同じ階層であれば通常は問題ないはずなんだがなぁ〜
なんか特殊なことでもしてる?
単純にクッキーの発行と読み出しだけする
2個のプログラムでも書いて動作確認してみては?
どうでもいいけど $HTTP_COOKIE_VARS はもう古い。
>>629 なんでそれで行数のカウントなんてするんだ?
すみません、本を読みつつ作業してるんですがセッションを使った プログラムがまともに動きません。 買い物カートにモノを入れて、最後のカート内確認画面まで選択情報を セッションで維持して、最後に確定ってやつなんですが、カートの中身がカラなんです。 phpinfoは以下の通りなんですが、これじゃダメなんでしょうか? Session Support enabled Registered save handlers files user sqlite Registered serializer handlers php php_binary wddx Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 On On session.bug_compat_warn On On
ソースに問題があるとは考えないんだ
ソースがなけりゃエスパーの出番だろ
>>633 いやー、ほんについてたCDのソースをそのまま使ってみたんだけど、
それでも動かなかったので…
基本的な設定がおかしいのかと。
ブラウザのクッキーがオンになってないんだよ。
>>635 auto_startがOFFならソース中にsession_start()はあるんだよな?
…という感じで、設定値が正しいかどうかはソースによる。
設定だけ出されても
> Session Support enabled
を見て、使えるかもしれなないね、としか言えない。
save_pathのディレクトリにセッションファイルは生成されてんの?
貴様の3流ソースなんてパクらねえし、探せば似たようなコードがありふれてんだから どうどうと晒せよクズ
晒せだと!? 晒すならお前が晒せよ
ソースもださずに質問するなっ!!!!
頭おかしいのかっ!!ふざけんな!!!
PHP:神の子孫 Perl:漢 asp:いとこ Ruby:ネカマ
>>628 PDO->exec()はほぼSELECT文専用。…というより、コンストラクタコールを
new PDO('sqlite:./test.db',null,null,array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION))
にしとけば何が起きてもすぐ解ると思うよ。
645 :
632 :2007/05/08(火) 08:11:02 ID:???
該当部分だけ抜き出せよ 回答者に対して全部読めとかふざけてんの? どこが関連部分かすらも分かってないからできないんじゃん
抜き出せだぁ!? お前が抜き出せよ
ガタガタいってんじゃねえぞヘボ回答者ども!! おまえらが晒せっていったんだぞクズ度も!!! いいから答えろや!!! あ、ごめんwwwwおまえらレベルひくいんだっけ?wwwwwwwwwwwww
ソースめんどくさいから見ないが、 なんとなくPHPのバージョンが悪いんじゃないかと思う。
2004年のソースか
>>645 肝心の
chap5
が無いけど
それに本のプログラムを勝手に晒すと著作権違反では
原因の切り分けができてない証拠だな
原因の切り分けができるようだったら、そもそも質問しないだろうがw
じゃつまり切り分けしろってことだな
printfとsprintf の違いは何でしょうか? PHPマニュアルでは、 sprintf:フォーマットされた文字列を返す printf:フォーマット済みの文字列を出力する とありますが、意味がよく分かりません。
フォーマットされた値がほしいだけなのに常に出力されたら困るやんか
>>656 早速の返信ありがとうございます。
Cと同じで良かったんですね。どうも、お手数お掛けしました。
本当にわかってるんだかわかってないんだか・・・
>>645 session_start()して$_SESSIONでI/Oしてるから
特に問題はなさそうな気がするけど
phpinfoでsession.save_pathってどこになってる?
そのディレクトリはちゃんと存在する?
660 :
虚弱PHP :2007/05/08(火) 16:15:27 ID:???
>>645 色んなところで$_SESSIONをvar_dumpかprint_rすればどこでデータなくなってるか分かるかと。
FOX★公認!今世紀最大の祭り!!!
俺たちのクリックで日本を一位にしようぜ!!
“30年は日本に手は出せないな”という勝ち方をしたい
http://wwwww.2ch.net/test/read.cgi/news4vip/1178602852/ 1. チリ 136,836,018
2. ポーランド 135,173,390
3. イスラエル 80,308,719
4. ★日本 71,029,997★
5. スロベニア 56,818,986
6. フィンランド 40,275,252
石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった
人間はさらに発展し兵器を使う戦争を始めた
そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・
皇国を勝利へと導くには貴様らの参戦が不可欠である
・戦場
http://www.clickclickclick.com/default.asp ・まとめサイト
http://www33.atwiki.jp/clickvip/ ・mixi
http://mixi.jp/view_community.pl?id=2141035
662 :
nobodyさん :2007/05/08(火) 17:50:46 ID:8RlmlJO8
こんなスレにまで張られるとは
日本人は暇人なんだなって思われるだけだな。
664 :
nobodyさん :2007/05/08(火) 18:48:04 ID:cGr79y4f
今Sn Uploaderを使って UpLoader作成して Upできるようにはなったんだが ブログにリンクはるとアクセスできませんって でるんだが 原因なにかわかりますか? 使ってるレンタルHPは infoseek
それだけじゃ、全然わからん
並みのエスパーではわからん。 スーパーエスパーが必要
すまん PHPじゃなくてPerlでした 質問とりさげます
スーパーエスパーもびっくり
その前に句読点覚えようぜ。頭悪く見える。
スーパーエスパー3でないと分からんな
PHPとかPerlの垣根以前の問題だろうに
673 :
nobodyさん :2007/05/08(火) 20:47:26 ID:T0+r/ZNA
アクセサについて質問なんですが、 これはプロパティとも呼ばれるもので、 クラス内のprivateメンバ変数が、外部からの操作を直接できないように、 間接的にアクセスするための仕組みなようなものという認識であっていますか? Javaの参考サイトや、Wikipediaにはこのようなことが書かれていたのですが、 (自分勝手に解釈してる部分があるので、実際に書かれている意図とは違うかもしれません) 某PHP5の解説サイトでは、 >アクセサとは、未定義のメンバー変数やメソッドに対してアクセスがあった場合、 >あらかじめ用意しておいたメソッドを実行する機能である。 といった説明もあったりして、PHPではアクセサの意味が違うのかな?と思っています。 それとも両者とも正しい説明なのでしょうか? OOPに詳しい方、ぜひこれぞアクセサだという説明をしていただけませんでしょうか? よろしくおねがいします。
__getとか見るべ
675 :
nobodyさん :2007/05/08(火) 20:57:31 ID:zeXB/nU1
ヘッダに付くPHPのバージョン番号を隠す方法を教えて下さい 前にどこかで見た気はするのですが…
すいません PHPを作ってファイルをアップするとき 掲示板はどうしますか? 原因がわかりません・・・
>>673 結論から言うとPHPでは意味が違う。
PHPでいうアクセサはマジックメソッドの__get()及び__set()。
これらは存在しないメンバ変数をコール、
または存在しないメンバ変数に割り当てようとしたときにオートコールされるもの。
んで普通アクセサというとその認識で概ね合っている。
Javaだとアクセサとはいうもののただのメソッド
681 :
680 :2007/05/08(火) 21:27:00 ID:???
ごめん途中で送信しちゃった。 Javaだと構造的にはただのメソッドと変わらないような物らしいから、 C#のプロパティとかがアクセサのイメージとしては一番近いんじゃなかろうか。
__getや__setって本来使うべきものじゃないっしょ?
683 :
673 :2007/05/08(火) 21:49:04 ID:T0+r/ZNA
>>680 どうもお答えありがとうございます。
おかげでモヤモヤがとれました。
イメージが近いとのことなので、早速C#のプロパティについても調べたいと思います。
684 :
nobodyさん :2007/05/08(火) 22:17:43 ID:j3fFuUxd
メソッドのforeachとかによく使う配列があんだけど、 毎回そいつをいちいち書くのだるいから、 define("XYZARR",array("X","Y","Z"))ってやったけどだめだったよ。 $GLOBALS["xyz"]=array(ry とかで参照させるしかねぇのかな?
メンバ変数にすりゃいいじゃない。
クラスって何なのか分かってない悪寒 (ついでに言えばdefineのページくらい見れよ)
687 :
nobodyさん :2007/05/08(火) 22:24:20 ID:j3fFuUxd
>>685 $this->xyz よし、短い。採用します。どうもです。
でもdefineっぽくもっと汎用で使えないかなぁと言ってみます。
まぁ最上位のクラスのプロパティにすればほぼ問題ないだろーけど。
688 :
nobodyさん :2007/05/08(火) 22:26:05 ID:j3fFuUxd
>>686 説明不足すまん。
いろんなクラスのメソッドで使ったりとか、
とにかくいろいろ用途が多いってことなんすよ。
だったらオブジェクト設計の問題じゃん 無理やり定数やらグローバル変数で使いまわすならクラスの意味ないし なんて言ってみるξ゚听)ξ
定数ですむものは定数のほうがいいよ。
>>679 ありがとうございました
「これは全くセキュリティ上の脅威ではなく、サーバ上 で PHP を使用しているかどうかを調べられるようにするものです。」
と書いてるけど、
バージョン固有のセキュリティーホールが発見された時には
それなりの脅威になりますよね?
692 :
nobodyさん :2007/05/08(火) 22:31:43 ID:aq8SRoA2
おまえらってさ日常で笑ったりしてますか?
は?笑わない人っているの?
695 :
nobodyさん :2007/05/08(火) 22:36:39 ID:j3fFuUxd
>>689 俺の勝手なイメージだけどメンバって、オブジェクトのなかで
値をうにょうにょ変えていく存在という感じがする。
initVarとかsetVarとか汎用で作ってさ。
不動なものはもっとdefineみたいにどっしり構えてほしかったのさ。
真面目にやりたいならイメージ正したほうがいいと思うよ 勝手なイメージで開発て
クラス内で使いたいならオブジェクト定数使え。 なんていうか無理してクラス使う必要ないんじゃね?
698 :
nobodyさん :2007/05/08(火) 22:50:05 ID:j3fFuUxd
>>696 そうは言っても不動な値をメンバにすると、
固定された値のくせにオブジェクトの数だけメモリにのっちまうだろ?
やっぱり設計としてどーかと思う。
staticにすりゃできるが お勧めしない ID:j3fFuUxdの気持ちはわかる 匿名関数がカスでアクティベーションできないから、処理を小分けにしにくい
700 :
nobodyさん :2007/05/08(火) 23:15:53 ID:j3fFuUxd
>>699 今staticに変更したけどやっぱりその設計もいろいろとめんどかったです。
以下のうちどの設計が最善でしょうか?
1.arrayぐらい毎回書く
2.毎回メモリにのるけど大した量じゃないしメンバで。
3.$GLOBALSにいれる。めんどくささは1と大差ない気がする。
ちなみにオブジェクト30個ぐらい扱って計算させてます
どのくらいのサイズだよ
702 :
nobodyさん :2007/05/08(火) 23:27:08 ID:j3fFuUxd
>>701 float変数が3つだけです。
3次元座標系の粒子の処理を得意だったPHPで書こうかなーと。
余計なおせっかいかもしれないけど どういうオブジェクト設計になってるのかも教えてくれたほうが適切なアドバイスができる気がする
704 :
nobodyさん :2007/05/08(火) 23:36:46 ID:j3fFuUxd
>>703 デザインパターンとかはわからないんで、長々とありのままを書くと、
とりあえず最上位には二つのクラス。
objectクラスとobjecthandlerクラス。handlerは複数のオブジェクトの処理や、
データファイルから読みだすときに使うクラス。
objectクラスの下にcoordinateクラスがあり、座標の処理をしている。
スカラー倍とか。
複数データの座標処理にはcoordinatehandlerていうクラスもある。
二点の距離や三点の角度などはここ。
で、それらの下にatomクラスとatomhandlerクラスがあって、
粒子の各プロパティもメンバ変数に入る、という設計。
見当違いだったらごめん。
で,定数で使いまわしたいfloat型3つ入ってる配列は?
>>706 foreach(range(1,100) as $i) {
$p = '';
if(! ($i % 3)) $p .= "Fizz";
if(! ($i % 5)) $p .= "Buzz";
print (($p)? $p: $i) . "\n";
}
for ($i=1; $i<=100; $i++) { if ($a = $i % 3 == 0) echo 'Fizz'; if ($b = $i % 5 == 0) echo 'Buzz'; if (!$a && !$b) echo $i; echo '<br/>'; } 最後のやつが厄介だね
for($i =1;$i <= 100 ; $i++){ $str = $i; if($i % 3 == 0) $str = "Fizz"; if($i % 5 == 0) $str = "Buzz"; if($i % 3 == 0 && $i % 5 == 0) $str = "FizzBuzz"; echo "$str<br>\n"; }
効率悪いかきかただな、どいつも もっとシンプルにできると思うのだが
じゃ書けよw 何なんだお前はw
forを使う時点でまちがってるからね 明日答えをかいてやる
シンプルさを追求するのはやめれ
まあヒントくれてやるけどこの場合はwhileつかえよ
とりあえずきさまら3流どもははやくねろw
これを明日とかいうやつが他人を3流呼ばわりってネタだろ
forを選択するおまえらにネタといわれたくないなw
何も言わずにコードだけ貼れば要らんレス付かないのに 要領悪いな
この場合はfor使うのが適切だろ foreachでもいいけど
乗り遅れた。ヘタレですみません。 for ($i = 1; $i <= 100; $i++) {  if ($i % 3 == 0 && $i % 5 == 0) {    echo 'FizzBuzz';  } elseif ($i % 3 == 0) {    echo 'Fizz';  } elseif ($i % 5 == 0) {    echo 'Buzz';  } else {    echo $i;  } }
こんなのはよっぽど変なことしなければどう書こうが誤差の範囲 可読性やスピードに注意を向ければよろし
>>706 そもそも「プログラムが全く書けない応募者」をフィルタするための問題だから
そこに高度さは必要ないだろ…
何で無駄ハック大会みたいになってんだよ
フラグ使うのは邪道? 3と5の倍数判定でそれぞれフラグをセットして、両方がtrueならFizzBuzz
書けない奴が何で応募してきたのかが気になるな というかそもそも本当の話なのか…? 日本でもそんなもんなん?
>>725 日本では英文科出ても英語はなせない、技術系の専攻でもプログラム書けないなんてよく聞くけど。
卒業の厳しいアメリカではそんなことないのかと思っていたが違うんだな。
経験者募集!って一言書けばいいだけじゃね?
730 :
724 :2007/05/09(水) 03:06:16 ID:???
>>706 を条件文と配列だけで書こうと思ったがうまくできなかった。
もし書ける人いたら今後の参考に使いたいからよろしゅう。
誰が見ても分かりやすい素直なプログラム書ければOK オナニープログラマーはいらん
この板見てるのって趣味でやってるオナニープログラマーだけじゃないの?w
>>731 ほい
$nums = range(1,1000);
if ($a = $nums[0] % 3 == 0) echo 'Fizz';
if ($b = $nums[0] % 5 == 0) echo 'Buzz';
if (!$a && !$b) echo $nums[0];
echo '<br/>';
if ($a = $nums[1] % 3 == 0) echo 'Fizz';
if ($b = $nums[1] % 5 == 0) echo 'Buzz';
if (!$a && !$b) echo $nums[1];
echo '<br/>';
if ($a = $nums[2] % 3 == 0) echo 'Fizz';
if ($b = $nums[2] % 5 == 0) echo 'Buzz';
if (!$a && !$b) echo $nums[2];
echo '<br/>';
:
:
以下$num[999]までやればおk
1000に増えててワロタ
range(1,1000)とか無駄にメモリ喰うだけだろバッキャローが 素直になれよ そして四つんばいになれよ
倍数判定で毎回modするより カウンタを何種類か持たせて0判定の方が速そう
それはいいね 速いかとか効率いいかは分からんけど違う手法でやってみるのも面白そうね
作ってはみたけれど、ネタとしても面白くなかった… $expr = ''; for ($i = 1; $i <= 100; $i++) { $expr .= <<< TEXT if (¥$a = $i % 3 == 0) echo 'Fizz'; if (¥$b = $i % 5 == 0) echo 'Buzz'; if (!¥$a && !¥$b) echo $i; echo '<br/>'; TEXT; } eval($expr);
え,それは何のために・・・?
こんなん for ($i = 1; $i <= 100; $i++, $s = ($i % 3 == 0) ? "Fizz" : "", $s .= ($i % 5 == 0) ? "Buzz" : "", $s = ($s != "") ? $s : $i) echo $s."<br>\n";
>>710 >>712 ああ、なるほど。こういう人が
>>706 のリンク先で書かれてる
> 自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。
という現場で使い物にならないバカちんなんだ。
まさかそんな人が…と思ったが実によく理解できた。
>>742 ,743
実は会社で「お前が一番使い物にならない」と言われてんじゃw
>>741 っていうかこんなコード、仕事じゃ使えないだろ。
もうわかったから、実は会社で「お前が一番使い物にならない」と言われてるって
747 :
nobodyさん :2007/05/09(水) 06:43:56 ID:6zAvWwo5
ソースからリンク先アドレスを抽出したいのですが いい方法ないですか?
>>736 いまどき1000個の配列でメモリ気にされてもね
どんだけショボイマシン使ってるんだ
そういう問題じゃないだろう… カウントするだけのために配列作ること自体がセンスない
処理が分かりやすくてバグが出にくいようになってればどっちでもいいよ
751 :
nobodyさん :2007/05/09(水) 08:54:57 ID:MkwX/1Mg
メールボックスのメールにPHPでフラグをつけたいのですがうまくいきません。 現在はまた関数をチェックしてテストしてる段階なのですが、例えば、 1 簡単なスクリプトでヘッダ一覧を取得してみる→既読フラグは0 2 別のスクリプトで本文を取得してみる→オプションを指定しない場合既読フラグがつくはず 3 もう一度ヘッダ取得→既読フラグは0のまま 4 意図的にフラグをつけてみる→imap_setflag_full前後で既読フラグは0→1に変わったのを確認 5 もう一度ヘッダ取得→既読フラグは0のまま(0に戻ってる?) ブラウザからの操作なので履歴が表示されているのかとも疑ったのですが、そうではないようです。 メールボックスがある鯖の設定も関係してるのか・・・一応複数のメールボックスで試したのですが。 上記のような手順でつけたフラグって固定しないもんなんでしょうか。。
>>751 よく分からんけど、切断時に更新処理みたいなのはされてるのかな
753 :
nobodyさん :2007/05/09(水) 09:06:58 ID:izHSsw10
もとのログがサニタイズされたりされなかったりしてるデータを弄るときに htmlspecialchars($str, ENT_QUOTES)かけると < → &lt; → &amp;lt; って当然なっちゃうんだけどサニタイズ済みの時は弄らないにはどうすればいいの?
754 :
751 :2007/05/09(水) 09:40:37 ID:MkwX/1Mg
>>752 明示的な更新はしていません。
オプションで「更新しない」を指定できるのを確認してるので
特に指定しなければ更新されるはずだと思っているのですが・・
>>753 自前で処理するしかないんじゃないですかね。
&で分割して、各要素にhtmlspecialchars()をかけ、&をつけて文字列に戻す、みたいな。
>>754 PHPの処理をPOP3のコマンドの対応を考えてみる。
なにか不足してないか?
まあ、ソースを晒さずにどこまで進むか試してみようw
>>753 エスケープされたログとされていないログが混在しているのなら、
ログにエスケープするという、仕様を変えたほうが
良いと思う
757 :
虚弱PHP :2007/05/09(水) 10:51:14 ID:???
>>753 一番の問題は「もとのログがサニタイズされたりされなかったりしてるデータ」があるってことだね。
教科書通り、高木氏からサニタイズいうなって言われる状態。
htmlspecialchars_decode を使って一度サニタイズ前のデータに戻してから、
htmlspecialcharsすればいいんじゃあるまいか。
758 :
nobodyさん :2007/05/09(水) 12:00:42 ID:QoYhDnaM
cronを使ってメールを定期配信しているのですが、 URLに直接アクセスしたらメールが送信されるわけで いたずらなどされないか心配です。 この場合、連続送信の対応はどうしたらいいのでしょうか? クッキーを発行して制御する方法で良いのでしょうか?
759 :
751 :2007/05/09(水) 12:09:45 ID:MkwX/1Mg
>>755 ありがとうございます。レス遅れてすみません。
しばらく調べていたのですがやはり・・
ソースはあまりに単純なんでアレですが以下です。
お手数おかけしますm(_ _)m
no=1のメールに既読フラグをつけるスクリプト(部分)
$mb = imap_open(MAILBOX, USER, PASS); #接続
imap_setflag_full($mb, 1, "\\Seen"); #1番目のメールに既読フラグ
$ov = imap_fetch_overview($mb, 1); #1番目のメールヘッダ取得
echo $ov[0]->seen; #既読フラグの有無を表示
imap_close($mb); #クローズ
表示は「1」(既読フラグがつけられた)
次にヘッダ一覧取得のスクリプト(部分)
$mb = imap_open(MAILBOX, USER, PASS); #接続
$ov = imap_fetch_overview($mb, 1); #1番目のメールヘッダ取得
foreach($ov as $key => $value)
echo $key . ":" . $value . "\n";
一覧が表示されるが既読フラグ部分は「seen:0」になっている。
これだけです・・
ヘッダやフラグの取得以外に、メールの削除などはうまくできています。
あと今更ですが環境はphp5とwindowsですm(_ _)m
>>758 cronだけで実行するなら、ウェブからアクセスできないところに
スクリプトおきなよ。
>>758 URLにアクセスって
それcronじゃないだろ
>>758 スパム業者の方ですか?
ローカルからのアクセスかどうかをチェックする機能を付け加えるべし。
>>761 どの場所においてもcronなんて使えるわけだが。
CLIは使えないの?
WindowsXPでXAMPPでPHP5でPHP勉強中なのですが、 unlink使うと、Permission deniedエラーがでます。 htdocsに直接ファイルおいて、読み取り専用のチェックも外してるのですが、なぜ解決できないのかわかりません。
766 :
764です :2007/05/09(水) 13:43:38 ID:5TpInCe7
$filepointer = fopen("php_dailylog.dat","a"); $filepointertmp = fopen("php_dailylog.tmp","w"); flock($filepointer, LOCK_SH); flock($filepointertmp,LOCK_EX); fputs($filepointertmp,$time.$dailylog. "\n"); while($row=fgets($filepointer)){ fputs($filepointertmp,$row); } flock($filepointer, LOCK_UN); flock($filepointertmp, LOCK_UN); unlink("php_dailylog.dat"); rename("php_dailylog.tmp","php_dailylog.dat"); fclose("php_dailylog.dat"); こんなかんじです。
fclose($filkepointer); unlink(ry
768 :
764です :2007/05/09(水) 14:04:07 ID:???
>767 ありがとう御座います。 unlinkのエラーは消えたのですが、以降のエラーがでて、鯖が固まってしまいました(ノ_-;) 修行してきます
3つの入力フォームがあるとして、メールを送信する場合なのですが mb_language("Japanese"); mb_internal_encoding("SJIS"); $name = $_POST["name"]; $mail = $_POST["mail"]; $message = $_POST["message"]; $from = "From: " . $name . "<" . $mail . ">"; mb_send_mail($mailto, $subject, $message, $from); これでいいと思うのですが、送信する前に print $from; をしてみると <$mail>が表示されないのです。 送信されたメールの送信元は<$mail>になってるいるのですがそういう仕様なのでしょうか? それと、半角のみの投稿をさせない場合に文字数とバイト数を比較する方法というのを見たのですが if(strlen($message) == mb_strlen($message)){ exit; } とすれば大丈夫でしょうか?
>>769 print $from;で表示されないのはわかりませんが
送信されたメールで$nameが表示されないのは
日本語に対してMIMEエンコーディングしてないからじゃない?
$name = mb_encode_mimeheader($name);
半角チェックはただexit()ってのも冷たい気がするけど
構文的にはそれでもよいのでは。
771 :
761 :2007/05/09(水) 15:05:57 ID:???
>>762 いやいや
cron使ってわざわざhttpサーバにアクセスするのも変じゃない
普通素直にスクリプト起動するだけだからなぜURLにと思ったの
>>771 レンタルサーバならそういう事情もあるでしょ。
public_html以下しか接続許可していないサーバも存在するだろうし。
cronが使えるようなサーバがそんな気の利かない設定するわけないけど。
>>770 エンコードすると中身はISOなんたらかんたらとなって
人が理解できないようなものになるのはこれで正しいですか?
後、exit()だけなのは手っ取り早く1行で抑えたかったのでこの書き方になりました。
win環境でphpからdosコマンドを使いたいのですが、 むりですか?
775 :
774 :2007/05/09(水) 16:32:49 ID:D8ftPzG/
CLIならいけるとおもうんですがどうなんでしょうか? やっぱりlinux上できかできないのかな\\\
>>774 exec()とかで出来るんじゃないの?
win環境詳しくないから知らないけど
`dir`で普通にできたよ
778 :
nobodyさん :2007/05/09(水) 16:51:54 ID:D8ftPzG/
まじっすか、ありがとうございます。 XPのOS再インストールがおわったらためしてみます
試すなり調べてから聞けよ・・w
780 :
爆音で名前が聞こえません :2007/05/09(水) 17:20:39 ID:xxzAywl/
$name[0] = "tanaka tarou"; $name[1] = "satou tarou"; $name[2] = "tanaka zirou"; とします それぞれにログインネーム(氏を使用、同じ苗字は数字で区別)を作成したくて 以下の関数を作成しました function mk_login_name($name){ //forで人数分回す、引数は$name[$i] $split_name = explode(" ", $name); $login_name = $split_name[0]; //スペースで分割して一つ目(氏)をログインネーム候補に $count[$login_name]++; //連想配列でログインネーム候補をカウント echo $count[$login_name]; //カウントのテスト表示 if($count[$login_name] >= 2) //2回目以降のカウントがあった場合には氏の後にカウント数を付ける $login_name = "$login_name"."$count[$login_name]"; return($login_name); } $name[2]が入った時は$count[$login_name]が2になってログイン名がtanaka2になると思ったら カウントテストは全て1でした どこがおかしいのでしょうか?
781 :
753 :2007/05/09(水) 17:30:07 ID:izHSsw10
>>754 >>756-757 ログ読む時に全部デコードして表示時にエンコードするっていう一番の基本線が
確実ですね そうすることにします
ありがとうございました
>>780 1回のリクエストの中でそのカウント方式が完結するなら、関数内の初めの部分に
static $counter = array();
をして、$count[$login_name]++;の部分を
if (isset($count[$login_name])) {
$count[$login_name] = 0;
} else {
$count[$login_name]++;
}
に変える。
>>769 >これでいいと思うのですが、送信する前に print $from; をしてみると
><$mail>が表示されないのです。
単に、HTMLの要素カッコとしてブラウザが認識してるだけでしょ。
>>783 ならないうちはHTMLソース見ないでよくやる失敗だよね
785 :
爆音で名前が聞こえません :2007/05/09(水) 18:30:18 ID:xxzAywl/
>>782 試してみましたがログインネームはtanaka, satou, tanakaでした
for($i = 0; $i <= 2; $i++){
$login_name[$i] = mk_login_name($name[$i]);
}
↑のように人数分関数を動かしてその間中カウントしたいのですが
1回のリクエストの中でそのカウント方式が完結してよいのでしょうか…?
786 :
爆音で名前が聞こえません :2007/05/09(水) 18:36:00 ID:xxzAywl/
>>782 すいません、解決しました
カウント部分は未変更で意図した結果になりました
787 :
782 :2007/05/09(水) 18:38:25 ID:???
スペル間違ってた ×static $counter ○static $count つーか、1回のリクエストの中でカウント方式が完結したら、普通はダメだわな。 どんな仕様・設計にしてるか知らんが。
XAMPPの最新版使って <?php function showString($value, $num, $delim){ for($i=1;$i<=$num;$i++){ print($value.$delim); } } showString('だるまさんが転んだ!',5,<br />'); ?> と入力したら真っ白(エラーなんたらも無し)になったけど Why?
ブラウザのデフォルト文字色が白
for文の前にprintを書いてちゃんと値が渡ってるかどうか確認しる つか<br />'の前に'が無いんだが これが原因だったら2chに書き込む前に5分考えろ
>>790 5分考えたら分かったよ
'が無かったね
そろそろまたID表示強化月間だと思うんだ
795 :
764です :2007/05/09(水) 23:09:58 ID:zHM/pvx9
>>783 なるほど! すっきりしました。
ありがとうございました。
初心者はapache、php、mysql全部インストーラー無しでやってみれと言いたい
>>794 最短解はこの辺?
$i=0;while($i<100)echo(++$i%15?($i%5?($i%3?$i:"Fizz"):"Buzz"):"FizzBuzz")."\n";
1byteでも短くするなら少々反則を入れて
while($i<100)echo(++$i%15?($i%5?($i%3?$i:Fizz):Buzz):FizzBuzz)."\n";
剰余計算なしの手法としてはこの辺りか。
$s = array(0,0,1,0,2,1,0,0,1,2,0,1,0,0,3);
$f = array("%d","Fizz","Buzz","FizzBuzz");
$i = 0;
while($i <100) printf($f[$s[$i%15]]."\n", ++$i);
俺はもうだめかもしれない・・・ ついにオナフォールを買ってしまった・・・ 風俗には今まで全然いったこと無かったのに 何でいきなりオナフォール・・・ まだ風俗の方が健全な気がするぜ!
800 :
799 :2007/05/09(水) 23:26:39 ID:???
誤爆嶋ssssssssssssss うわがああああああ忘れてくれええええええええええええええ
801 :
nobodyさん :2007/05/09(水) 23:27:11 ID:okhokTRP
>>797 インストーラーなんて元々ないんだけど?
あるじゃん
PHPのインストーラは見たことあるけど MySQLとApacheのインストーラなしって Windowsであるの?
あるじゃん
805 :
nobodyさん :2007/05/09(水) 23:39:16 ID:okhokTRP
ドザの話か・・・・
Apache-win用のインストーラー無しは無いぽ ビルドするかmsiを展開できるツール使えばできそうだが
>>799 風俗の前にオナホでも全然おかしくないだろ
むしろ風俗前のレッスンと考えるんだ
808 :
nobodyさん :2007/05/10(木) 00:28:42 ID:i4wrMZ/Q
wikipediaなどでは hogehoge.com/ほげほげ 等、URIに日本語を直接記述していますが、 何故URLエンコードしなくても問題が起こらないのでしょうか?
ブラウザがエンコードしてくれてるんじゃないか?
同上でブラウザがエンコードしてるんだと思う FireFoxだと日本語で入力しても表示されない
>>809 ,811
本当ですね
まさかそんな答えだったとは…
ありがとうございました
813 :
795 :2007/05/10(木) 01:15:59 ID:???
814 :
nobodyさん :2007/05/10(木) 01:23:06 ID:qTUopfwt
>>813 何がしたいの?
URLにリンク貼るだけならwhileいらなくね?
二回目以降って何の二回目以降?
目的がわからないから答えようないよ
phpの中にjavascriptを記述する時のいい方法ないですか? $code = " var a = \"abc\"; "; いちいち"や'に気を遣うのが嫌になりました
816 :
nobodyさん :2007/05/10(木) 01:54:17 ID:qTUopfwt
print <<<EOF EOF;
817 :
nobodyさん :2007/05/10(木) 02:09:35 ID:ucjeMPs6
GETの引数は、普通「&」で区切られますが、
「&」を区切り文字としないで、
GET引数の数を1つに固定…なんて事はできるんでしょうか?
とりあえず.htaccessで以下のように書いて回避しています。
php_value arg_separator.input "\"
"\"にしたのは、RFC2396読んで多分URLには使われないだろう踏んだからなんですが。
(参照元:
http://jbpe.tripod.com/rfcj/rfc2396.ej.sjis.txt )
この回避策に関しての欠点、もしくは他に良い方法などありますでしょうか。
819 :
817 :2007/05/10(木) 03:05:09 ID:ucjeMPs6
>>819 id出してるのは偉い!が説明が回りくどくて理解しにくいよ
print_r($_SERVER)してみれ
>>795 $string = "
http://abc.com/と http://abcd.com/ ";
$string = preg_replace('/(https?|ftp)(:\/\/[[:alnum:]\+\$\;\?\.%,!#~*\/:@&=_-]+)/', '<a href="\\1\\2">\\1\\2</a>', $string);
echo $string;
そんなの使用目的による。 デバッグにしか使わないなら別にアップデートしなくていい。
>>795 FAQを読まない馬鹿はいらない子です。
>>824 MOPBで指摘された致命的なバグの修正版だから、
公開してるならアップデートしておかないとクラックされる可能性が高くなる。
828 :
nobodyさん :2007/05/10(木) 12:03:12 ID:p6e8Tgaw
昨日質問させてもらった
>>751 です。
やはりストリームをクローズしてしまうとフラグはクリアされてしまいます。
オープンしたままであれば維持されているのは確認できたのですが。
明示的にフラグを固定するような関数もないと思いますが
これが通常の動作ということなんでしょうか。
自分がこの質問で書き込みしたのは以下です。
>>751 >>744 >>759
通常の動作なんてものはない。 おまえが設定したとおり、おまえが書いたコードのとおりの結果が生まれるだけ
というか、お前が
>>744 みたいな、えらそうな奴様なのなら
imap_segflag_full関数マニュアルの
User Contributed Notesぐらい読んでこいよ。短い英語ぐらい読めるだろ?
831 :
828 :2007/05/10(木) 13:00:45 ID:p6e8Tgaw
>>829 デフォルトの動作って書けばよかったの?
>>830 レス番はタイプミスです。気づくと思ったんで。
でもありがとう。
832 :
nobodyさん :2007/05/10(木) 13:47:49 ID:AA4DnND/
あぱっちぇ2.0.59でPHPをうごかしたいんですが、RUBYと共存できますか?
Ruby使えるような人が何をアホなことを申しておられるのでしょう。
834 :
nobodyさん :2007/05/10(木) 14:32:51 ID:AA4DnND/
いや、これからぱそこんをはじめたんですけど 友達にRUBYやれっていわれて・・・ 簡単だからできるっていわれたんですけどぼくはPHPがやりたいんです。 でもともだちにそのことを話したらPHPなんてやめろ!っていわれて・・・ RUBYとPHPが共存できれば友達が家にきたときごまかせるのでどうにかできないでしょうか?
自殺したほうがいいよ
そこまで顔色を気にしなきゃ付き合えないような相手が「友達」かどうか 考え直したほうがいいよ。
色んな意味で日本の心の病巣を感じるスレですね
838 :
1 :2007/05/10(木) 15:18:45 ID:???
おれも質問していいかい?
839 :
虚弱PHP :2007/05/10(木) 15:30:00 ID:???
>>828 コマンドのやり取りをダンプしてみたらどうだろう?
通常のメーラーとかと比較。
>>832 できます。JavaともPerlとも…できます。
>>828 PHPコードよりむしろ、メールボックスをSELECTしたときのPermanentflagsの応答とか、
サーバ実装とか、他のIMAPクライアントで同じアカウントにログインしたときに、
問題のメールボックスに永続フラグが立てられるかをチェックしたら?
もうやってたらごめんよ。
841 :
nobodyさん :2007/05/10(木) 18:10:19 ID:AA4DnND/
すいません、phpでライブチャットはつくれますか?
あまりお勧めはしない
843 :
nobodyさん :2007/05/10(木) 18:32:30 ID:W08nRCtO
WindowsサーバでImageMagick使おうと考えています。
(
http://jp2.php.net/manual/ja/ref.imagick.php )
http://jp2.php.net/downloads.php からPECLのDLL落としてインストールし、
phpinfo()やextension_loaded()でImageMagickがロードされていることも確認できるのですが、
各関数を使おうとするとundefined functionと言われます。
念のためget_defined_functions()も見てみましたが、Imagick関数はありませんでした。
インストールしたImagickはバージョン2.0.0-alphaですが、リファレンスの関数は使えないんでしょうか?
どなたかご存知の方教えてください。
ちなみにApacheのバージョンは2.2、PHPは5.2.2です。
マルチ乙
いつも思うんだけど
>>844 みたいなやつって超うざいよね
知らないなら黙ってろっつーの
レスするのは知ってる人だけにしてね
846 :
nobodyさん :2007/05/10(木) 20:02:30 ID:wqFHIkoe
あなたみたいのもうざいですけどね。
847 :
nobodyさん :2007/05/10(木) 20:27:26 ID:Pz7PaIDg
画像でアクセスカウンターもどきを作っています。 それで調べつつ何となく画像の出力として //index.htmlのカウンター表示用ソースとします。 <img src="counter.php"> //仮にcounter.phpのソースとします。 header("Content-type: image/gif"); readfile("0.gif"); みたいな感じで画像は表示できることは分かりました。 それなら、カウント値に応じて0.gifになっているところを桁数・数字にあった画像 にしていけば表示されるだろう、っと思っていたのですが、 この状態でどうやって複数の数字画像を結合してカウンターとして表示させる のかが分かりません。readfileを複数追記すれば良いわけでもないし。。 なにかヒントを教えていただけないでしょうか?
GD使えばいいんじゃね?
849 :
847 :2007/05/10(木) 20:39:12 ID:???
>>848 GDって外部画像の結合出来るんですか?
今やってるのは、DBに登録されているカウント値を
GD生成して出力していますが・・。
php 画像連結で検索すればライブラリが出てくるのでは?
851 :
847 :2007/05/10(木) 20:57:55 ID:???
ありがとうございます。ライブラリを参考にしてみます。
852 :
nobodyさん :2007/05/10(木) 21:30:14 ID:gqRdAlOp
ccessで、サイトにアクセスしたらaccess.phpを実行するような設定ってできないのかな? スクリプトですると、全ページにincludeしなきゃいけないよね
853 :
845 :2007/05/10(木) 21:31:12 ID:???
がたがたいってねえで調べて来いや人力検索ども!!
856 :
nobodyさん :2007/05/10(木) 22:33:33 ID:gqRdAlOp
>>855 そのまま書いてクリックしたら
headerでリファラにLocationされたみたいにアクセスできないwwww
関数に複数の引数を渡して複数の戻り値を得たい場合 function hoge($a,$b){ return($a,$b); } とするとエラーになりますが、引数を配列にするしか無いですか?
return array($a, $b);
859 :
855 :2007/05/10(木) 23:02:56 ID:???
>>856 リダイレクトがループしますから。ていうか、ネタなので試さないでください。
期待してる動作が「全ページでinclude('access.php')と等価」だったら
mod_layout で調べてみて。あと、あなたも俺もスレ違い。
860 :
nobodyさん :2007/05/10(木) 23:04:51 ID:rnaMytAr
質問です、配列の中身をそのまま表示する方法ってありますか?
print_r
>>860 そのままってのがよくわからんが、
print_rとかvar_exportとかvar_dumpとかで構造を見ることはできる。
最近の人力検索はぐだぐだうるさいのが混ざってるな 黙って質問に答えるだけでいいのに・・・
自演組乙
昔から、人力検索にも回答者にもならずぐだぐだうるさいだけのは混ざってる
お前みたいなやつのことだな
このスレの8割がそうだな
どうしたん? 流したいレスがあるん?
今日は大漁ですね
どうして「
>>843 です。どなたか回答かアドバイスをお願いできませんか」と書けないんだろう。
873 :
843 :2007/05/11(金) 00:53:44 ID:x3XoGdaG
一応言っときますが私は843の他に書き込んでません。 ちなみにマルチでもありません。他のどこに書いているのか教えてほしいくらいです。
今年始まって以来の勘違い野郎だなおまえ
875 :
nobodyさん :2007/05/11(金) 04:41:54 ID:uio3xUyZ
セキュリティ対策で質問があります。 誰もがURL(自動判定)、文字列などを投稿できるサイトで アダルトサイトなどの宣伝スパム、海外からのスパムや連続投稿などに対する有効な対策にはどのようなものがあるんでしょうか? 半角のみは禁止、連続投稿には間隔制限を設ける、リンクに飛ぶ前には確認ページを割り込ませる などは 思いつくのですが、日本語含む荒しやアダルトサイトのスパムは、やはり削除人による手作業での削除+アク禁しかないのでしょうか?