2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【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
関連リンク
■本家マニュアル   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://smarty.php.net/
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/


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が出て、メールアドレスまたはパスワードが間違っている旨が…
どうすればちゃんと値を渡せるでしょうか…

6 :nobodyさん:2007/04/27(金) 10:16:14 ID:???
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
自己解決しますた

9 :nobodyさん:2007/04/27(金) 10:53:43 ID:???
( ´_ゝ`)

10 :nobodyさん:2007/04/27(金) 14:59:33 ID:???
var_dump($hoge)
の結果をファイルに保存したいのですがどのようにすれいいでしょうか?

$fp = fopen('hoge.dat', 'w');
fwrite($fp, var_dump($hoge));
こんなイメージです

11 :nobodyさん:2007/04/27(金) 15:23:09 ID:???
>>10
ob_start( )
で出力をバッファにためる
バッファを文字列に出力
文字列を書き込む

12 :nobodyさん:2007/04/27(金) 16:33:36 ID:???
>>10-11
関数があるよ
var_exportで調べてみると幸せになれる

13 :nobodyさん:2007/04/27(金) 17:55:47 ID:???
配列の[X]から[Y]を連結させる関数ってありますか?

例えばこんな感じです。
$hoge =
array('a','b','c','', 'd','e','f')

こんな配列を$hoge['4']の''から前と後でわける
$y$hoge[5].$hoge[6].$hoge[7];


14 :nobodyさん:2007/04/27(金) 18:42:22 ID:???
セッションってさ、
セッションIDをクッキーで保存して、
サーバーがそのIDを参照に値を返すんだよな?

クッキー使えないとセッションつかえねーじゃん!

15 :nobodyさん:2007/04/27(金) 18:44:04 ID:???
>>6
自己解決したならちゃんと書くことあるだろ

16 :nobodyさん:2007/04/27(金) 19:00:50 ID:???
>>14
URLベースとCookieベースがあるよ

17 :nobodyさん:2007/04/27(金) 19:01:34 ID:???
追記。

だがPCコンテンツを実装するなら推奨はURLベース
理由はセッションハイジャックでググればわかるんじゃないかな

18 :nobodyさん:2007/04/27(金) 19:01:34 ID:???
追記。

だがPCコンテンツを実装するなら推奨はURLベース
理由はセッションハイジャックでググればわかるんじゃないかな

19 :nobodyさん:2007/04/27(金) 19:02:02 ID:???
連続POSTすいませんorz

20 :nobodyさん:2007/04/27(金) 19:20:44 ID:???
>>17
URLの方が簡単にID見られるけど

21 :nobodyさん:2007/04/27(金) 19:23:50 ID:???
>>17
逆でしょw

22 :nobodyさん:2007/04/27(金) 19:26:03 ID:???
ああ、ただの書き間違えだ。
PCはCookieベース推奨な

23 :nobodyさん:2007/04/27(金) 19:33:47 ID:???
URLベースにして、毎回ID変えたらどうなのよ
それならハイジャックされないでしょ

それかIPを暗号化したものをIDにしてみたり

24 :nobodyさん:2007/04/27(金) 19:35:21 ID:???
$foo['14']でこの14の数字を抜き出したいんですがどうすればいいでしょうか??
$foo['14']に入っている値じゃなくて$foo['14']から14という数字を抜き出したいんです

25 :nobodyさん:2007/04/27(金) 19:36:20 ID:???
>>13
こっから好きなのを選べ
ttp://www.php.net/manual/ja/ref.array.php

上から二番目とかいいかもな
次からはマニュアル読むか、関数逆引き本でも買えよ

26 :nobodyさん:2007/04/27(金) 19:36:42 ID:???
>>24
foreach

27 :nobodyさん:2007/04/27(金) 19:37:14 ID:???
>>24
>>25を見ろ
ちなみにそこの数字はキーって言う

28 :虚弱PHP:2007/04/27(金) 19:40:32 ID:???
>>24
質問が不明確だね。
値からキーを検索するなら、array_search()。

29 :nobodyさん:2007/04/27(金) 19:46:02 ID:???
>>24
マニュアルの配列関数のところから好きなの選んで使え
というか質問する前にマニュアル見てそれでも分からんかったら質問しろ

30 :nobodyさん:2007/04/27(金) 19:46:07 ID:???
>>25さん
ありがとうです!
ホレました

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はカラッポです。

33 :nobodyさん:2007/04/28(土) 00:41:34 ID:???
>>32
>>10-11

34 :nobodyさん:2007/04/28(土) 00:43:40 ID:???
>>31
・環境によっては意図せずにリクエストごとにIPが変わる可能性がある
・同じNAT内だったりでIPが同じ場合は無意味
を考慮したうえでご利用ください。

35 :nobodyさん:2007/04/28(土) 00:44:49 ID:???
>>32
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc11.2ch.net/test/read.cgi/php/1118799352/


36 :nobodyさん:2007/04/28(土) 02:43:46 ID:???
>>33
意味わからん
答えは$smarty->fetch();

37 :32:2007/04/28(土) 09:26:10 ID:HnvRPjiH
>>36
やりたいことができました。 どうもありがとうございました。

38 :nobodyさん:2007/04/28(土) 10:57:40 ID:???
おまえら
.htaccessのこと何てよんでる?
「ドットエイチティーアクセス」って読んでたんだけど長くね?
もっと短い言い方ないの?

39 :nobodyさん:2007/04/28(土) 11:00:02 ID:???
「ハタッセス」

40 :nobodyさん:2007/04/28(土) 11:03:46 ID:???
>>39
ダサくね?それ
「エイチ・タクセス」のがよくね?

41 :nobodyさん:2007/04/28(土) 11:06:36 ID:???
分散設定ファイルでいいだろ

42 :nobodyさん:2007/04/28(土) 11:47:49 ID:???
あのファイル

43 :nobodyさん:2007/04/28(土) 12:19:47 ID:???
単にエイチティーアクセスだろ。ドットなんていらん。
っていうかスレ違いだ。

44 :nobodyさん:2007/04/28(土) 12:24:00 ID:???
いいだろここ雑談スレじゃん

え?なんだっrわなにすんだやめt

45 :nobodyさん:2007/04/28(土) 13:59:17 ID:???
サイトのページ(4つくらい)を同じphpファイルに書いてそれぞれ別のURLで表示させたいんですけど
書き方を教えてください

46 :45:2007/04/28(土) 14:00:15 ID:RKMxVa9I
ID表示

47 :nobodyさん:2007/04/28(土) 14:00:56 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;
}

こう書きました。

49 :nobodyさん:2007/04/28(土) 16:12:13 ID:???
ほう、それで?

50 :nobodyさん:2007/04/28(土) 16:13:28 ID:???
public static function
という書き順と、
static public function
という書き順、
どちらが一般的ですか?

51 :nobodyさん:2007/04/28(土) 16:16:14 ID:???
>>50
http://jp.php.net/manual/ja/language.oop5.static.php

52 :nobodyさん:2007/04/28(土) 17:10:24 ID:???
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って書いたのは文字列って意味じゃないです。
ちょっと勢いで書いちゃいましたが。数字を入れています。

55 :nobodyさん:2007/04/28(土) 18:14:07 ID:???
>>53
mb系が無いんじゃないの?phpinfoで確認して無いなら入れれ

56 :31:2007/04/28(土) 19:09:02 ID:tgkVshtz
>>同じNAT内だったりでIPが同じ場合は無意味
こっちはわかるけど、それはもう「IDとパスを盗まれたら無意味」というのとそう変わらないと思う。
ログアウトの機能を持たせて、使う人に気をつけてもらうしかないレベルと思うけど。

>>環境によっては意図せずにリクエストごとにIPが変わる可能性がある
そんな環境あるんですか?固定IPじゃないプロバイダとかルーター再起動したりすると変わる事あるけど
リクエストのたびにって・・・。
どんな環境でしょうか?結構あるならなんか対策しなきゃ。

というか、そんなシステムでネットするの禁止。早くIPV6にして全部固定IPにしてくれ。

57 :nobodyさん:2007/04/28(土) 19:22:29 ID:???
>>56
とある携帯網。

58 :nobodyさん:2007/04/28(土) 19:36:15 ID:jQarZsxI
>>55
いれるというのはphp.iniの設定を変えるということでしょうか。
教えてください。

59 :58:2007/04/28(土) 19:46:53 ID:???
自己解決しますた。

60 :nobodyさん:2007/04/28(土) 19:48:43 ID:???
>>58
php.iniのmbstringの設定を変えると良い
たしか、windowsならコメントアウトさせるだけでいけた、リナ糞はしらん

61 :nobodyさん:2007/04/28(土) 20:22:44 ID:???
>>56
マルチパスルーティング

62 :nobodyさん:2007/04/28(土) 23:41:34 ID:hsKT4F0A
標準出力(の出力先)を変数にすることってできますか?(日本語が変かな?)

63 :nobodyさん:2007/04/28(土) 23:44:10 ID:???
>>62
http://www.google.com/search?hl=ja&q=php+%E5%87%BA%E5%8A%9B&lr=

64 :nobodyさん:2007/04/29(日) 00:58:57 ID:D3V82o9R
変数に入れるとかじゃなくれ?

65 :nobodyさん:2007/04/29(日) 01:02:23 ID:???
その日本語は変です。

66 :nobodyさん:2007/04/29(日) 02:23:14 ID:WQ/2F+8H
セッションは出来るみたいだけどクッキーって配列には出来ないの?


67 :nobodyさん:2007/04/29(日) 02:47:41 ID:???
できる

68 :nobodyさん:2007/04/29(日) 06:17:29 ID:???
>>66
$_COOKIE

69 :nobodyさん:2007/04/29(日) 09:55:27 ID:/kWfCH0w
突然ですが、お願いします教えてください。

PHPでCSVファイルを読み込む時に、
「あいうえおかきくけこ」という文字を

あいうえお
かきくけこ

という表示のさせ方を、セルで分割せずにするにはどうすればいいですか?
まだ始めたばかりの素人なんで、まったく分かりません。
どうかよろしくお願いします。

70 :nobodyさん:2007/04/29(日) 10:49:36 ID:???
レン鯖でPHPから送信したメールがあり、そのメールが届いたかどうか(バウンス?)を確認することは可能でしょうか?
できたら方法も知りたいです。

スパムに利用されるから確認できないということもあり得ますかね?

71 :nobodyさん:2007/04/29(日) 11:43:26 ID:???
>>70
ヘッダによる。いずれにせよID出そう。




72 :nobodyさん:2007/04/29(日) 14:09:34 ID:???
>>69
いまいち言いたい事が分からない。
ひとまずID出しましょう。

セルってなに?
テーブルの事?

文字を分割したいって事かな、どういう法則で分割したいかによる。

73 :nobodyさん:2007/04/29(日) 14:24:42 ID:???
セル?名?
梳毛そもう糸を平織りまたは綾織りにした薄手の毛織物。合着用の和服地にする。◇オランダ語の「セルジ(serge)」を「セル地」と解して「地」を略した語。

明鏡国語辞典 (C) Taishukan 2002-2006

74 :nobodyさん:2007/04/29(日) 14:25:52 ID:???
PHPてコンパイルしたほうが早いの?
それともただ中身見えなくするだけ?
includeに使うfunctionファイルだけコンパイルしてみるのってありかな?

75 :74:2007/04/29(日) 14:34:16 ID:???
ここで聞いてもわかるやついないか。
プログラム板逝くか

76 :nobodyさん:2007/04/29(日) 14:36:06 ID:???
そもそもPHPはコンパイルするもんじゃないだろ
ソースはサーバに上げれば見えなくなるだろ

77 :74:2007/04/29(日) 14:48:09 ID:???
>>76
仕事で納期したりすると客に内容バレしたりしない?
オリジナルのfunction詰め合わせが相手に見られるのも何かヤだし


78 :nobodyさん:2007/04/29(日) 14:50:50 ID:???
ID出したら教えてあげる

79 :nobodyさん:2007/04/29(日) 14:52:24 ID:???
>>77
それなら速度とか気にせずコンパイルすればいいんじゃね
実際、コンパイルする前と後じゃどんくらい差が出るんだろう

80 :nobodyさん:2007/04/29(日) 15:04:47 ID:???
74は学生ですね

81 :74:2007/04/29(日) 15:06:15 ID:ZLR/bMbw
>>80
今年卒業しました><;
一応教習生という学生wwwwww



つまりニート

82 :nobodyさん:2007/04/29(日) 15:11:22 ID:???
>>79
普通はコンパイルした方が早い(と言うかしなきゃ動かない)が
PHPの場合元々さらで読むからコンパイルすると逆に遅くなるの?

83 :nobodyさん:2007/04/29(日) 15:12:10 ID:zGQc/Sec
mb_send_mailでメールを送る前にhtmlspecialcharをかましたほうがいいでしょうか?

84 :nobodyさん:2007/04/29(日) 15:38:28 ID:???
Why?

85 :nobodyさん:2007/04/29(日) 15:38:48 ID:???
>>74
"php インタプリタ"
"php 難読化"
でそれぞれググれ

86 :nobodyさん:2007/04/29(日) 15:40:27 ID:???
>>74
ZendGardとかのことか?

下を読めば分かる。読んで分からないなら別の職業を探せ。
http://www.zend.co.jp/products/guard/

87 :nobodyさん:2007/04/29(日) 16:08:43 ID:ZLR/bMbw
>>86
読んでも分からない以前に三行以上読めない

88 :nobodyさん:2007/04/29(日) 16:11:35 ID:???
じゃあマニュアルや参考書を読むなんて無理じゃん
というか途中からID出してるけど本当に本物か?
ネタ臭がキツイわ

89 :nobodyさん:2007/04/29(日) 19:07:50 ID:???
バイナリ化とコンパイルは大分意味が違わね?

90 :nobodyさん:2007/04/29(日) 19:13:05 ID:???
>>82
コードキャッシュとしてコンパイル済み中間コードで
保持する仕組みなら速度は速くなるけどな。
そんな形式で配布・インストールできるシステムは知らん。
一般のバイナリ化の目的は暗号化で速度は低下する。
暗号化+コードキャッシュの組み合わせなら問題なくなるが。

91 :nobodyさん:2007/04/29(日) 19:20:54 ID:???
いちいちコンパイルするのめんどいやん

92 :nobodyさん:2007/04/29(日) 21:27:03 ID:???
配布・インストール時にパッケージとして
バイナリ化する程度ならほとんど変わらんよ

93 :nobodyさん:2007/04/29(日) 22:52:16 ID:o45ltyhE
PHPってインタプリタ言語じゃなくて、自動的にコンパイルされるので
ユーザーは意識しなくてすむ、っていうんじゃなかったっけ?

でA・・なんとかとかは、コンパイルした物をキャッシュするので、処理速度というか、起動?が速くなるとか
PHP6ではデフォの機能になるとかならないとか。

ところでだれか
「PHPプログラマの技量を知りたい時に書いてもらうスクリプト」
っていうのどういうお題だったかわかるサイト知りませんか?
元の、なんとかっていう外人さん?のブログはリンク切れ起こしててもう見れないんですけど。

94 :nobodyさん:2007/04/29(日) 22:58:32 ID:???
もうちょっと中身抑えてから書けよ

95 :nobodyさん:2007/04/29(日) 23:04:58 ID:???
>>90>>93
>86のリンク先に答えが載っているんだが。

96 :nobodyさん:2007/04/29(日) 23:30:55 ID:???
>>86のサンプル画像で使ってるエディタが何気にサクラエディタだ

97 :nobodyさん:2007/04/30(月) 00:00:29 ID:???
そういやみんなはエディタ何つかっとるの?

ウチではvivi -> terapad -> サクラ
会社だと強制秀丸、俺の場合
秀丸は補完機能がないのがなぁ

98 :nobodyさん:2007/04/30(月) 01:45:32 ID:???
>97
β版が使えるなら 結構前から補完機能ついてますよ
(2006/11/28 6.50b1 より/今は7.00b1)
会社方針でβはダメかも ですが

99 :nobodyさん:2007/04/30(月) 01:46:02 ID:???
訂正
7.00b2

100 :nobodyさん:2007/04/30(月) 03:14:13 ID:jiCOQ4J+
新規質問です。
DBではなくファイルベースのPHP構築してますが、
間違ったデータの上書きという不注意への対策は、
通常どのように行うべきなんですか?

101 :nobodyさん:2007/04/30(月) 03:19:32 ID:???
if($hoge = NULL){
write}else{
qawsedrftgyhujikolp};

102 :nobodyさん:2007/04/30(月) 04:01:36 ID:???
>>100
世代管理しておけばいんじゃね

103 :nobodyさん:2007/04/30(月) 06:57:32 ID:???
ダウンロード販売サービスを頼まれたんだけど、osCommerce系みたいなのでダウンロード販売サイト構築できるものってある?
言語は出来ればPHPが良いのですが。
感覚的にはベクターのPCショップみたいな感覚です。

回答キボソ

104 :nobodyさん:2007/04/30(月) 07:01:16 ID:???
このスレは自分で作ることを前提に質問するものです。
よって探してますはスレ違いなので、
http://pc11.2ch.net/test/read.cgi/hp/1166794984/
こちらにでもいってください。

105 :nobodyさん:2007/04/30(月) 07:01:43 ID:2a6Y0d07
switch文のdefaultにheaderでどこかに飛ばす処理を書きました。
このheaderの次にexitは必要でしょうか?

いまはこのように書いてます。
header("Location: $url);
//ここにexit;をいれるべきでしょうか?
break;

106 :nobodyさん:2007/04/30(月) 07:05:46 ID:???
どっちでもいいです

107 :nobodyさん:2007/04/30(月) 08:07:33 ID:qLOaqEyD
携帯サイト作るとき、リンク先に移動する際に
別ページでリファラー書き換えてヘッダーで飛ばしたいのですが
どのように書き換えれば良いのでしょうか?

108 :nobodyさん:2007/04/30(月) 10:39:17 ID:2a6Y0d07
25歳。去年までニートでしたが、今年は独立したいと考えてます。
PHPスクリプトを書く仕事をしている人の一週間のスケジュールをおしえてください。
できれば具体的に教えていただけると助かります。

109 :nobodyさん:2007/04/30(月) 10:42:37 ID:???
>>108
ここは人生相談スレではありません。
SOHOスレあたりにいって聞いてきてください。

110 :nobodyさん:2007/04/30(月) 11:11:41 ID:???
すいませんでした(><)移動してきます

111 :nobodyさん:2007/04/30(月) 11:14:12 ID:???
>>107
なんかすごい釣りにしか見えないんだが

リファラを任意に書き換えるのは無理だぞ
狭い意味でいっているならmod_rewriteとかの範疇かと

112 :nobodyさん:2007/04/30(月) 11:15:40 ID:???
リファラを書き換えはできるだろw

113 :nobodyさん:2007/04/30(月) 11:20:26 ID:???
>>108
月: らき☆すたを2度見したせいで朝会に遅れる
火: 喫煙室で営業さんの愚痴をきいてあげる
水: めずらしく仕事がノッてしまい終電にまにあわず漫喫
木: デザイナの女の子を理論攻めして泣かす
金: 帰ろうと思って支度をしていると、ボスに笑顔で呼ばれる

114 :nobodyさん:2007/04/30(月) 11:27:46 ID:???
できないっすよ、偽装ならできるけど

115 :nobodyさん:2007/04/30(月) 11:29:01 ID:???
パケット書き換えたらできるじゃん

116 :nobodyさん:2007/04/30(月) 11:36:04 ID:???
偽装じゃん

117 :nobodyさん:2007/04/30(月) 11:38:33 ID:???
つかパケット書き換えってなんだよw

118 :nobodyさん:2007/04/30(月) 11:41:33 ID:RWiBoY20
XREA+(s278、PHP5)にて、実験しているのですが、
unlinkを使うと
Permission denied in
というエラーが出てしまいます。
削除しようとしているファイルの所有者は自分です。
削除しようとしているファイルのパーミッション、777.707.755などに変更して試したのですが
やはり上記のエラーがでてしまいます。
chmodなどで変更してみてもだめです。
もうお手上げ状態なのですが、何が原因と考えられるでしょうか?
よろしくお願いします。

119 :nobodyさん:2007/04/30(月) 11:43:52 ID:???
上位ディレクトリ

120 :nobodyさん:2007/04/30(月) 11:46:38 ID:RWiBoY20
>>119
すいませんこんな質問に答えていただきありがとうございました。

121 :nobodyさん:2007/04/30(月) 12:06:52 ID:???
>>108
> 25歳。去年までニートでしたが、今年は独立したいと考えてます。
> PHPスクリプトを書く仕事をしている人の一週間のスケジュールをおしえてください。
> できれば具体的に教えていただけると助かります。

このレスを書いている人はこんなスレにも書いています。
SOHOやフリーでWEB制作してる奴【総合】 2人目
http://pc11.2ch.net/test/read.cgi/hp/1174481142/961

122 :nobodyさん:2007/04/30(月) 12:30:41 ID:???
それがどうしたの?

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
>>121
マルチ見つけたと得意になる前に
>>110を見てみろ

125 :nobodyさん:2007/04/30(月) 12:43:49 ID:???
>>123
>Proxy判定ってアバウトでいいと思いますか?
アバウトにしか出来ないよ。
やりたいことはspam関係でproxyはずすってことだろうと思うから、
前スレ見てproxy等で検索かけたほうが早い


126 :nobodyさん:2007/04/30(月) 12:46:10 ID:???
>>113
それで土曜日はどうなるんですか?

127 :nobodyさん:2007/04/30(月) 12:52:34 ID:xBM5mH9a
>>125
やっぱアバウトになっちゃいますよね。
>やりたいことはspam関係でproxyはずすってことだろうと思うから、
仰るとおりです。spamが多くて・・・
前スレみてきますね。どうもありがとうー

128 :nobodyさん:2007/04/30(月) 13:36:16 ID:???
"         =≡=  ∧_∧   I'm ready.......",
"          / \ (・∀・ )/",
"        〆     ⊂    つ∈≡∋",
"         ||  γ ⌒ヽヽコノ   ||",
"         || .|   |:::|∪〓  ||",
"        ./|\人 _.ノノ _||_  /|\",
"",

129 :nobodyさん:2007/04/30(月) 14:14:50 ID:2a6Y0d07
5.2.2RCバージョン登場あげ
http://ilia.ws/archives/167-5.2.2RC2-Released.html

130 :こんばんは ◆5m18GD4M5g :2007/04/30(月) 17:42:23 ID:???
今CSVのファイルからデータを検索できるように頑張ってるのですが、
なかなかうまくいきません。
以下を某サイトからコピペしてやってるのですが、不安定でなかなか使えるように
なりません。

■たまにまともに検索できる(10回に3回くらいの割合。
■10回に6回くらいは検索ワードが文字化けして反映されない。
例:「lエ..u..アnウ」は0件みつかりました。
■10回に2、3回は検索ワードが空になってもどってきて、データが全件表示される。
例:「」は167件みつかりました


131 :こんばんは ◆5m18GD4M5g :2007/04/30(月) 17:43:07 ID:???
つづき
タグ(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]);
}
}
?>
どこか致命的に間違っている箇所があるのでしょうか?
お願いします。

132 :nobodyさん:2007/04/30(月) 17:48:00 ID:???
>>131
>>1

133 :nobodyさん:2007/04/30(月) 18:08:36 ID:???
>>130

トリップ張れば良いって問題じゃない。


134 :こんばんは:2007/04/30(月) 18:17:30 ID:A+71Ioc2
トリップとID間違えてました ^^;



135 :nobodyさん:2007/04/30(月) 19:05:29 ID:???
>>130
item.csvがEUCじゃねーとか

他に爺的に気になるのは
・$lines=strip_tags($Data[$i]); はlinesじゃなくてlineにしてくれ気持ち悪い
・データはstrip_tagsして入力はhtmlspecialcharsておかしくね

136 :nobodyさん:2007/04/30(月) 19:06:55 ID:???
>>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"]のような方法しかできません。

何かヒントを教えてください。お願いします。

139 :nobodyさん:2007/04/30(月) 19:48:59 ID:???
>>138
日本語でおk

140 :nobodyさん:2007/04/30(月) 19:53:59 ID:YPFQGcFE
質問があります。
PHPとPostgresqlでやっています。
今日データベースを見てみたら、文字コード
がユニコードなんですが、このままで大丈夫
なんでしょうか?
ちなみにPHPのほうはEUC-JPです。


141 :nobodyさん:2007/04/30(月) 20:03:32 ID:???
おまえが大丈夫じゃないからダメです

142 :nobodyさん:2007/04/30(月) 20:11:39 ID:5qEh+XE7
すまそ。ある本をよんでいて以下の構文があります。

$image_in=ImageCreateFromPNG("small_php.PNG");

このsmall_php.PNGというのは、どのフォルダにおけばいいんでしょうか?
Apacheのhtdocsやc:\phpにおいてもだめでした。

書籍にも書いてないので。。この本、結構まとめてあって、重宝するんですが、
初心者には不親切?です。

わかるかた、おしえてください。http://www.e-hon.ne.jp/bec/SA/Detail?refShinCode=0100000000000031444561&Action_id=121&Sza_id=C0です。本は。

143 :nobodyさん:2007/04/30(月) 20:24:14 ID:???
>すまそ。
ふざけてるの?

144 :nobodyさん:2007/04/30(月) 20:24:22 ID:???
>>142
その構文が書いてあるファイルと同じ場所におけばいいでしょう。
PHP以前の問題では?HTMLから始めてください。

145 :nobodyさん:2007/04/30(月) 20:25:13 ID:???
おまえらほんとにやる気あんのか?

146 :nobodyさん:2007/04/30(月) 20:37:18 ID:???
※注意
ここは初心者同士の憩いのオアシスです

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 :nobodyさん:2007/04/30(月) 21:15:54 ID:???
あたりまえだろ

154 :nobodyさん:2007/04/30(月) 21:22:03 ID:???
独り言はチラシの裏に書けよ
ttp://yuukiremix.s33.xrea.com/chirashi/

155 :149=142:2007/04/30(月) 21:22:19 ID:???
>>153
さんくすっす。どうもありがとうございます。胸のつっかえがとれました。ふざけたホームページは本当に
開設しないでほしいですよね?初心者は混乱してしまいます。

みなさん、色々とおしえていただき、ありがとうございました。

156 :nobodyさん:2007/04/30(月) 21:30:53 ID:???
>>151
自己責任の範疇で好きにしたらいいんじゃないですか?

157 :nobodyさん:2007/04/30(月) 21:31:24 ID:???
>>150
UNIXの基礎概念 ASCII
でも読んで、もちつけ

>>151
Shift_JISにするなら
encoding_translationを入れとくと楽かも

158 :nobodyさん:2007/04/30(月) 21:33:53 ID:???
あった。このサイトだ。下の方に
http://www.scollabo.com/banban/php/php_13.html
「また、閲覧者のメモリから画像リソースを解放するために、imagdestroy()関数を利用します」

って書いてある・・ふざけるな!

おじゃましました。

159 :140です。:2007/04/30(月) 21:36:17 ID:YPFQGcFE
どっちでも表示されますよね?
教えてください。


160 :nobodyさん:2007/04/30(月) 21:49:45 ID:???
>>159
あのねぇ。PHP関数にはmb_convert_encodingという関数があって
うまく変換してくれるんです。PHPの設定は本のままにして
DBに入れる前に文字コード変換って言う手がいいとおもいますよ。>>140氏のPHP.iniの設定は
あまりよくないとおもいます。現場でもこの関数を使うことが多々ありますよ。

また、PostgreSQLは、DB毎に使用する文字エンコを指定できます。あるDBはSJISで他はUnicodeで
他はEUCとか。また、一度DBにデータを入れてしまったなら、そのDBの中のデータを他のエンコにするのも
できますし。
CREATE DATABASE name ENCODING=EUC_JP
とすれば、その新規DB(データベースはEUCになります。)

mb_convert参照↓
http://oss.kk-ntc.co.jp/jpug/pukiwiki/pukiwiki.php?PHP%2FDB%A5%A2%A5%AF%A5%BB%A5%B9%A1%CAPostgreSQL%A1%CB

161 :nobodyさん:2007/04/30(月) 21:55:58 ID:???
>うまく変換してくれるんです。
ダウト

162 :nobodyさん:2007/04/30(月) 21:58:25 ID:???
>>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
164さんへ
これのとおりやってうまく表示されましたか?
http://oss.kk-ntc.co.jp/jpug/pukiwiki/pukiwiki.php?PHP%2FDB%A5%A2%A5%AF%A5%BB%A5%B9%A1%CAPostgreSQL%A1%CB
後、本ってなにを買いました?


166 :nobodyさん:2007/04/30(月) 23:15:04 ID:???
>>162
>じゃあ、お前さんがおしえてあげなよ。不親切だな。

×うまく変換してくれるんです。
○条件・設定しだいでは変換してくれることもあります。

迷路に迷い込ませるそっちのほうが不親切だ。


167 :nobodyさん:2007/04/30(月) 23:18:01 ID:???
>>158
宣伝乙

168 :160:2007/05/01(火) 00:43:56 ID:???
本はPHP本なら
http://www.cbook24.com/bm_detail.asp?sku=4839921199
http://www.cbook24.com/bm_detail.asp?sku=4839914397(こっちはMySQLだけど)
がいいとおもうよ。
また、PostgreSQLの本にもPHPとの連携がのっているからそっちのプログラムだけだったら
http://www.cbook24.com/bm_detail.asp?sku=4839914397
http://www.cbook24.com/bm_detail.asp?sku=4798010642
がいいとおもうよ。

僕は 山田祥寛 の本でphp.iniの設定とかしてるけど、本によってまちまちだよ。

こうみると、PHPとかPostgreSQLって初心者向きの本があまりない。。
これじゃ初心者がかわいそうだとおもう。

僕はJavaやC#やってたから、一応すんなりとこれたけど、いきなりのプログラム初心者には
厳しい現実だね。でも、JavaやC#も初心者に丁寧な本はあんまりないんだけどね。実際。

独学でやるには、とにかく根性だよ。



169 :160:2007/05/01(火) 00:46:01 ID:???
とここまで書いたところでいいホームページ発見(作者もPostgreSQLの2番目に紹介した作者です)
http://allabout.co.jp/internet/database/closeup/CU20050320A/
http://allabout.co.jp/internet/database/closeup/CU20050321A/index.htm
2番目ので自分にあうのをえらんでphp.iniを変更してDB側も文字コードを>>160で紹介したものに
あわせてデータベースをつくればOKです。勉強のだんかいならこれで十分です。

また、本によってはグラフィック関係やPDF関係があるのですが、それについては
あらたにphp.iniを変更する(といってもほんの少し)必要があるので、
書籍にしたがってください。ではがんばってください。>>140氏のphp.iniはどうみても
問題があるので、一番下のURLを参考にがんばってください。Windows環境なら
ShiftJIS→ShiftJISでいいとおもいますよ。

postgreSQLでも CREATE DATABESE name ENCODING=WIN
とすればShift_JISになります。


170 :nobodyさん:2007/05/01(火) 01:03:43 ID:1OYzEHDw
PHP&PostgreSQLで作る実用Webシステム
これかいました。
このデータベースはEUC-JPで、プログラムも
EUC-JPですよね。
ってことはPHPの設定もEUC-JPに変えれば表示されるということですよね。
一応php.iniはhttp://www.hizlab.net/app/phppg.html
を見て設定したのですが....


171 :nobodyさん:2007/05/01(火) 01:06:12 ID:???
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に変えました。
まだ、試していないのですが、これで表示されるようになるでしょうか?
これが質問です。
よろしくお願い致します。


173 :nobodyさん:2007/05/01(火) 01:16:14 ID:???
試せよ

174 :nobodyさん:2007/05/01(火) 01:20:11 ID:???
setssion_strat( ) で作られるセッションてクッキーに保存されてるの?
素朴な疑問だけど
サンプルのページ見てクッキークリアしたら初期化されたからそういうことだよね?

175 :nobodyさん:2007/05/01(火) 01:23:50 ID:???
>>174
http://jp.php.net/session

176 :nobodyさん:2007/05/01(火) 01:27:07 ID:???
php5でメールフォームをつくってます。
mb_encode_mimeheader関数の使い方について質問させてください。
この関数で送信者名(ヘッダのFrom)に入力された日本語をMIMEエンコードしようとしています。

前に読んだ書籍では日本語部分にのみこの関数を使用すること、
という記載があったと記憶してるんですが現在確認できません。(マニュアルにも記載なし)
例えば入力された送信者名が「progra民具」さんだったら「
民具」のみ切り分けてMIMEエンコードすること、という説明だったと思います。
テストしている範囲ではそのまま
$fromName = mb_encode_mimeheader("progra民具");
で特に問題なくエンコードできてるんですが・・・
メール送信をすでに実用している方、どのようにされていますか?

177 :nobodyさん:2007/05/01(火) 01:32:05 ID:???
>>176
する必要無し

178 :176:2007/05/01(火) 01:42:45 ID:???
>>177
ありがとうございます!

179 :nobodyさん:2007/05/01(火) 02:21:04 ID:???
おぃおぃ。

メールヘッダーに生の日本語入れるつもりか・・・

180 :nobodyさん:2007/05/01(火) 02:37:50 ID:???
$hogeが1000文字以上だった場合、1000文字から最も近い改行で区切って配列に入れたいのですがどのような方法があるでしょうか?


181 :nobodyさん:2007/05/01(火) 03:30:08 ID:1OYzEHDw
すいません。質問です。
php+postgresqlを使っています。
grant 操作 on クラス to ユーザ;
ってapacheとDBをつなげるときに必要みたいですが、
publicで大丈夫でしょうか?
よろしくお願い致します。


182 :nobodyさん:2007/05/01(火) 03:34:06 ID:???
>>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になる幅が広すぎます。
整数を表す文字列かをうまく調べるにはどうすればいいですか?

184 :nobodyさん:2007/05/01(火) 04:20:05 ID:???
>>183
preg_match('/^[1-9]\d*$/', $string)

185 :nobodyさん:2007/05/01(火) 04:23:10 ID:???
>>184
条件が整数だから
preg_match('/^-?[1-9]¥d*$/', $string)
の方がよくなくね?

186 :nobodyさん:2007/05/01(火) 04:25:09 ID:???
あ、間違った…
'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氏の助言は、
あくまで関数の使い方ことですね。

188 :nobodyさん:2007/05/01(火) 04:39:06 ID:???
>>187
> is_int((int)$num_str)
だと '10 hogehoge' とかも通るんじゃなかたけ?

189 :nobodyさん:2007/05/01(火) 04:45:09 ID:???
あ、たしかに・・・。ゴメリ

190 :nobodyさん:2007/05/01(火) 04:52:53 ID:???
Perlで5MBぐらいのテキストデータのファイルを書き出し読み出ししているものを
PHP+MySQLにするとサーバーへの負荷はどのくらい変わりますか?

アクセスのたびに呼び出す仕様です。

191 :nobodyさん:2007/05/01(火) 05:34:28 ID:???
>>190
データの構造、アプリケーションの振る舞い
作る奴の脳味噌の熟成具合に依存するので
それだけではわからん

192 :181です。:2007/05/01(火) 06:31:19 ID:1OYzEHDw
ではこれはPHP+Postgresql+Apacheで表示させる上
ではgrantは関係ないってことですか?


193 :nobodyさん:2007/05/01(火) 07:47:04 ID:???
全く関係ないしスレ違いです。
grant構文はレン鯖業者のためにあるようなものです。
publicは登録されている全ユーザに同じ権限を与えるものです。
自鯖などで1人で使う場合、自分用に1つ作ればいいんじゃないすか?
知り合いに貸して、その知り合いがDBを使いたいならば、
その知り合いに対してgrant文を実行する感じです。

194 :193:2007/05/01(火) 07:50:16 ID:???
肝心なこと書き忘れてました。
>apacheとDBをつなげるときに必要
必要なのはapacheのconfでモジュール組み込むことじゃないっすかね。

195 :nobodyさん:2007/05/01(火) 11:16:25 ID:???
PHPの通常(?)とバイナリ(?)の違いがわからん
CGIとしての動作ってなんだよ

196 :nobodyさん:2007/05/01(火) 11:55:08 ID:???
>>181
よくあるパターンだと
webアクセス専用にユーザ用意 + 権限設定するから
全く関係ないわけじゃない
とりあえずgrantで何ができるか確認してみたら?

>>195
こんなところか?
ttp://jp.php.net/manual/ja/install.general.php

197 :180:2007/05/01(火) 12:28:23 ID:???
>>182さん
ありがとうございます。
ただそれだと意図した動きになりません。

$hogeは普通の文ですので改行もたくさんあります。
そして1000文字以下の場合もあれば、2000文字以上の場合もあります。
なので見やすいように1000文字単位で区切ろうと思っています。

substr($hoge, $page*1000, 1000)  //$pageは数字

これで1000文字単位の文字は取れるのですが、変な切れ方になるので改行で区切りたいのです。

198 :nobodyさん:2007/05/01(火) 12:33:53 ID:???
>>197
http://php.net/wordwrap
とか
http://php.net/strrpos
とか使ってみれば?日本語でうまくいくのか知らんけど。
それから>>1読んでね

199 :虚弱PHP:2007/05/01(火) 12:49:20 ID:???
>>197
改行でってのは、結構面倒だと思うから、
mb_strwidthでも使えばいいんじゃないかな。

どうしても改行でやりたくて、
うまくいかないならソースplease。

200 :虚弱PHP:2007/05/01(火) 12:52:35 ID:???
まちがった mb_strimwidth()
http://www.php.net/manual/ja/function.mb-strimwidth.php

201 :虚弱PHP:2007/05/01(火) 12:55:03 ID:???
>>183
ctype_digit()じゃだめ?

202 :nobodyさん:2007/05/01(火) 14:55:53 ID:???
>>199
というか、>>197(=>>180)の返事は、>>182の回答を正しく理解してないんじゃないの?

203 :nobodyさん:2007/05/01(火) 15:44:06 ID:???
>>197
1. 文字列aの長さを測る
2. aが1000文字以内ならループブレイク
3. aを添え字0-998までとそれ以降に分ける
4. 前者の末尾に改行をくっつけて配列にぶちこむ
5. aに後者を代入 1に戻る

いや、冗談だけどさ
改行なんてどこに入っててもいいじゃん

204 :nobodyさん:2007/05/01(火) 15:50:18 ID:???
>>201
そんなのがあったのか
マイナス値がヤバそうだが

205 :nobodyさん:2007/05/01(火) 16:40:02 ID:???
プログラミングで出合った問題と、自分が「こうしたい」という問題を
をごっちゃにして、勝手に混乱するよね、この文字切り・改行厨ってのは。
この手の質問、何度見たか。

206 :nobodyさん:2007/05/01(火) 17:27:07 ID:???
>>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';";


209 :nobodyさん:2007/05/01(火) 18:01:12 ID:???
%いらないの?
あと文字コードは何でつか?

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を組んでいる。

これは非常に矛盾です。

212 :nobodyさん:2007/05/01(火) 19:21:54 ID:???
>>211
えーと、それで質問は何?

213 :nobodyさん:2007/05/01(火) 19:44:59 ID:EEwZpxpS
>>212
おねえちゃんがほしいんです!

214 :nobodyさん:2007/05/01(火) 19:54:56 ID:???
>>208についておながいします

215 :nobodyさん:2007/05/01(火) 19:59:17 ID:???
>>214
>>1

216 :214:2007/05/01(火) 20:10:02 ID:???
サーバーはwin2003です

217 :nobodyさん:2007/05/01(火) 20:12:05 ID:???
>>216
>>1

218 :nobodyさん:2007/05/01(火) 20:12:24 ID:???
>>216
>>1

219 :nobodyさん:2007/05/01(火) 20:12:48 ID:???
>>216
>>1

220 :214:2007/05/01(火) 20:17:58 ID:???
mysqlのバックアップとったら空が20MBになった
エロコレクションを削除したら空が5GBになった

削除する時はverupなみの勇気がいる

221 :nobodyさん:2007/05/01(火) 20:39:13 ID:???
>>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先生にはお尋ねしたのですが、分かりませんでした。

223 :nobodyさん:2007/05/01(火) 20:44:21 ID:???
>>222
訳せ
マニュアル読め

224 :nobodyさん:2007/05/01(火) 20:47:09 ID:???
>>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基礎って
試験は、受験制約はあるのかなぁ


227 :nobodyさん:2007/05/01(火) 21:38:47 ID:???
>>226
ス レ 違 い

228 :nobodyさん:2007/05/01(火) 21:50:11 ID:???
>>225
別に>>206>>180向けに書いてませんよw

229 :nobodyさん:2007/05/01(火) 22:16:27 ID:???
>>228
いつものレス番偽造君に釣られる奴も奴だな

230 :nobodyさん:2007/05/01(火) 22:16:57 ID:???
俺俺

231 :nobodyさん:2007/05/01(火) 22:25:19 ID:???
まあある意味スレタイに合致してるよな。このスレの書き込み。
「書き込みやがれ」だから、答えるとは言ってないし。

232 :nobodyさん:2007/05/01(火) 23:00:06 ID:???
>>226
Perlは新規案件減ってるし
どっかの誰かが書いた理解不能なコードの修正とかあるからオススメできない
つか、普通Perl案件で資格なんて考慮されない

今プログラマ案件で一番要望多いのはJava技術者
と、人事の人から聞いたが
デスマーチ案件も多いから気をつけろ

233 :Lisa:2007/05/01(火) 23:02:50 ID:???
     ∧_∧
    ( ?д?)  受けたいんですが、なにか?   
    ハ∨/^ヽ
   ノ::[三ノ :.'、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|


234 :nobodyさん:2007/05/01(火) 23:24:19 ID:???
PHPのスレッドにPerlの話を書く人はプログラミング自体やめた方がいいと思うよ

235 :nobodyさん:2007/05/01(火) 23:48:13 ID:OxYFPqZQ
classについて質問です。

$obj = new hogeHoge("");

とするクラスの実行箇所が、1ファイル上にいくつもある場合、
それだけで負荷がかかかりますよね?class内部の関数を実行していなくても。

ポイントの仕組みなどを作っている時、
ポイント設定テーブルの読込→会員テーブルの読込→
会員ポイント状況の読込→ポイントの付与→ポイントの更新

など、それぞれに応じて異なるテーブル・classを実行する必要があるので、
newする回数がどうしても増えてしまいます。作り方にもよるでしょうが、
なんどもclassを実行する場合、処理の遅れなどは仕方ないのでしょうか?

236 :nobodyさん:2007/05/01(火) 23:51:06 ID:???
>>235
全部functionでいいんじゃね?

237 :nobodyさん:2007/05/01(火) 23:51:39 ID:???
>>235
「気にしない」が正解。

もうちょっと詳しく書くと、そういうことを気にして性能に影響あるかどうかわからないところで
わかりづらいコードを書くよりもまずは綺麗にわかりやすいコードを書くべし。

性能に問題が出てからはじめて性能測定をして最適化を行うなり、
機材の増強を図るなりすればいいのだ。

238 :nobodyさん:2007/05/01(火) 23:53:58 ID:???
$obj = new hogehoge();
すると、$objん中に何はいるのよ

239 :nobodyさん:2007/05/02(水) 01:30:41 ID:???
設計がおかしいんじゃねー?
ポイント云々ならポイント操作関連を一まとめにしてっていうか、
それを一つのデータ型っぽいものにするっていうのがclassの真骨頂なような
それでなければ普通の自作関数かstaticなclassの関数呼び出しにするとか

240 :nobodyさん:2007/05/02(水) 01:40:51 ID:???
してっていうか
っぽいもの

241 :nobodyさん:2007/05/02(水) 02:08:52 ID:???
>>235
それで負荷がかかってどうしようもないなら
オブジェクト設計に問題があるんじゃないか?
アクションメソッドやDAOで抽象化するのは普通。
どう考えてもインスタンス化じゃなくて中身の処理が悪くて実行時間がかかってると予測するが。

242 :nobodyさん:2007/05/02(水) 02:42:07 ID:???
今、DWでPHP書いてるけど
何かおぬぬめのエディタない?

243 :nobodyさん:2007/05/02(水) 02:45:14 ID:???
>>235
その例の場合インスタンスの生成なんかより
DBとの会話のほうがロスが大きそうなので
ストアドプロシージャ使ったほうがいんじゃね

あとなんとなくだが
リファクタリングの本を一通り読んでみることをオススメする

244 :nobodyさん:2007/05/02(水) 02:46:04 ID:???
>>242
Em or Eclipce

245 :nobodyさん:2007/05/02(水) 02:55:47 ID:???
<TAG>
TEST
</TAG>

タグの間の文字列(上の場合TEST)を抜き出したいのですが、
どういった関数を利用するのがベターでしょうか?

246 :nobodyさん:2007/05/02(水) 02:57:06 ID:???
preg_match

247 :nobodyさん:2007/05/02(水) 03:03:38 ID:???
>>242
DWのほうが使いやすいよ。htmlとも連携してるから補完機能も色分けもDWじゃないとだめな俺様

248 :245:2007/05/02(水) 03:44:54 ID:???
>>246
具体的に教えて栗
正規表現苦手ニダ

249 :nobodyさん:2007/05/02(水) 03:54:38 ID:???
preg_match("!<TAG>(.+?)</TAG>!");

250 :nobodyさん:2007/05/02(水) 03:54:43 ID:???
preg_match("/<TAG>((?:(?!<\/TAG>).)*?)<\/TAG>/", $html, $return);

251 :nobodyさん:2007/05/02(水) 03:56:48 ID:???
>>248
preg_matchが正規表現って分かってるなら
大丈夫じゃないか
後は頑張って覚えるだけぽ

252 :nobodyさん:2007/05/02(水) 04:00:30 ID:???
>>249-250
で、どっちが正しいの?

253 :nobodyさん:2007/05/02(水) 04:01:44 ID:???
「!」って何だっけ

254 :nobodyさん:2007/05/02(水) 04:04:41 ID:???
えくすくらめーしょんまーく

255 :245:2007/05/02(水) 04:14:02 ID:???
(.+?)
これで改行も認識されますか?

256 :nobodyさん:2007/05/02(水) 04:16:28 ID:???
>>255
ヒント:s

257 :245:2007/05/02(水) 04:18:39 ID:???
どなたか250の内容を具体的に解説してくれないでしょうかニダ?
意味的には、
((?:(?!<\/TAG>).)*?)
が</TAG>以外、
という感じなのはなんとなくわかりますが、
(が2個続いていたり:や?の役目がよくわからんです。

>>251
正規表現の本5冊ほど持ってますが、
さっぱりです。初めて英語を勉強したとき以上のカルチャーショックです、
呪文です、あれは。

258 :nobodyさん:2007/05/02(水) 04:19:39 ID:???
>>250
最短マッチしてるなら?!はいらないんじゃね?

259 :nobodyさん:2007/05/02(水) 04:20:34 ID:???
マニュアル嫁
?:は後方参照しない
?!は否定
()はグループ化して後方参照

260 :245:2007/05/02(水) 04:20:42 ID:???
>>256
なるほど〜
s修飾子というやつですね、
そのヒントからかなり得るものができた気がします、
ありがとうございます。

261 :nobodyさん:2007/05/02(水) 04:27:00 ID:???
>>257
オライリーの「詳説正規表現」以外は要らない。
1,2,3章の入門編を軽く流したら、4,5章を徹底的に理解すべし。

262 :245:2007/05/02(水) 04:31:02 ID:???
レスありがとうございます、
(?!<\/TAG>) はわかりました
((?:(?!<\/TAG>).)*?) の *?は最短マッチですよね。
?:と(?!<\/TAG>)の後ろのドットの役割が説明聞いてもいまいちわからんですね。。。。

preg_match("/<TAG>(.*)*?<\/TAG>/", $html, $return);
↑これではダメでしょうか?



263 :nobodyさん:2007/05/02(水) 04:35:15 ID:???
質問者はID消すなよ、常識的に考えて

264 :nobodyさん:2007/05/02(水) 04:36:18 ID:???
ドットが分からないとか正規表現のリファレンス1行も読んでないだろ、常識的に考えて

265 :nobodyさん:2007/05/02(水) 05:54:44 ID:???
>>259
(?!hoge)は前方参照否定じゃなかたけ、否定とはちょい違う

>>262
(?!<\/TAG>)(.*?)
て書きたかったんじゃね

>>264
どうしてそこにドットが出るのかがわからない、と聞いているんだろ
常識的に考えて

266 :nobodyさん:2007/05/02(水) 06:23:43 ID:???
文字通りの意味と役割だろ
そんなことも分からないってことは修飾子と構文を正しく理解してないってこと。
その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でした。

269 :nobodyさん:2007/05/02(水) 08:08:14 ID:???
方法はあるけど分かるように説明するの面倒だから全部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']."」";
}
と書いたんですが、何も表示されません なぜでしょう?

271 :nobodyさん:2007/05/02(水) 08:47:05 ID:???
$_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']=""
だからじゃね

274 :nobodyさん:2007/05/02(水) 08:56:00 ID:???
$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
だから「」が表示される
ちゃんと動作してるんじゃね?

277 :nobodyさん:2007/05/02(水) 09:49:23 ID:???
確かにそうですね
勉強します…

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;
に変更したいのですが、どのようにすればいいでしょうか。
ご教授お願いします

279 :nobodyさん:2007/05/02(水) 14:15:26 ID:???
>>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無くしたらいけたりしたんですけどいまいちよくわからないので詳しくわかる人があれば教えていただきたい

281 :nobodyさん:2007/05/02(水) 17:49:41 ID:???
よくわからんけど、requireをやる前と後のHTMLソースを見比べてみたら何かわかるんじゃないの。

282 :nobodyさん:2007/05/02(水) 17:58:46 ID:???
requireした時のファイルに空白とかが混じっててヘッダが
おかしくなってるんだろ

283 :山本山:2007/05/02(水) 18:08:43 ID:???
たしろん


284 :nobodyさん:2007/05/02(水) 18:37:16 ID:QbFzO5vt
DWでPHP使ってるんだけどオヌヌメの開発環境ってある?
フレームワークやらSmartyやらよく聞くがどんなものかわかんなす

285 :nobodyさん:2007/05/02(水) 18:44:51 ID:???
>>284
フレームワークはフレームワーク。
Smartyはテンプレートエンジン。
まず公式サイトでドキュメントを読め。そしてぐぐれ。

286 :nobodyさん:2007/05/02(水) 19:58:22 ID:???
>>284
DW使いが開発環境なんてたいそれたこといってんな。

287 :nobodyさん:2007/05/02(水) 20:00:38 ID:???
DW使いって所詮はデザイナー上がりだろ?
デザイナー上がりって使えない奴多いよね

288 :nobodyさん:2007/05/02(水) 20:21:22 ID:???
ちょっとログいじるために簡単なログイン機能つけたいんだけど
簡単なログイン機能つけるのって初心者には簡単じゃないなw
同じファイルの中でやろうとしたら混乱してきた

289 :nobodyさん:2007/05/02(水) 20:29:14 ID:???
>>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);

291 :nobodyさん:2007/05/02(水) 21:18:47 ID:???
>>288
初心者が簡単にできたらそれ初心者っていうのか?
つか個人的には簡単なログインくらいなら初心者にも作れて当然だと思うけどさ。
思うに今の君に必要なのは初心者がどうのとか難しいとか愚痴ることることではなく
「マニュアルとちゃんと読む」ことと「参考になる書籍/解説Webサイト」を見て学ぶことだと思うぞ。

292 :nobodyさん:2007/05/02(水) 23:29:28 ID:???
>>291
とりあえず深呼吸してからスレタイをよく読むんだ

293 :nobodyさん:2007/05/02(水) 23:30:25 ID:???
それがどうした

294 :nobodyさん:2007/05/02(水) 23:56:44 ID:???
>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
>>284
PHP5以降を使って
Zend Framework http://framework.zend.com/manual/ja/index.html

Smarty http://sunset.freespace.jp/smarty/SmartyManual_2-6-7J_html/
をおすすめする。

てかその質問内容からしてフレームワークとか無理じゃない?
まずはPHPの基礎とSmartyでデザイン部分を分離するところから勉強してみたら?

297 :nobodyさん:2007/05/03(木) 00:26:11 ID:???
つ【最新版】 
http://smarty.m-takagi.org/ 
翻訳者のみなさんマジGJ! 

298 :nobodyさん:2007/05/03(木) 00:31:23 ID:x91D8BN0
PHPでランダムバナーをやりたいけどわからん。
誰か作ってください。
javaはいりません。

299 :nobodyさん:2007/05/03(木) 00:32:06 ID:???
>>298
作るのは構わんが、いくらでだ?

300 :nobodyさん:2007/05/03(木) 00:33:34 ID:B+f7twkm
>>298
簡単過ぎる

で、いくら?

301 :nobodyさん:2007/05/03(木) 00:34:28 ID:???
>>297
おお、サンクス。
ぶくまくった!

302 :nobodyさん:2007/05/03(木) 01:48:24 ID:???
>>298
google adsenceのパクリシステムを作ったはいいが、
GoogleBotとチョソBotしか栗ってくれないプログラムだけどいいか?w

303 :nobodyさん:2007/05/03(木) 01:50:23 ID:???
>>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呼び出していけそうだけど。

307 :nobodyさん:2007/05/03(木) 01:58:23 ID:???
えーと、エラーハンドラ設定した時にtryの範囲を広げたり狭めたりするのは関係あるのか?

308 :nobodyさん:2007/05/03(木) 01:59:11 ID:???
>>306
input type="image"で頑張れ

309 :nobodyさん:2007/05/03(木) 02:00:10 ID:???
>>306
リファラー

310 :nobodyさん:2007/05/03(木) 02:04:16 ID:???
外に飛ぶのも考えたらリファラーじゃ無理だな
ってか外に飛ぶのも含めると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の用途がいまいち理解出来ません。

314 :nobodyさん:2007/05/03(木) 02:50:58 ID:???
>>313
普通は1個の関数でエラーを全部処理なんてしないから。

315 :nobodyさん:2007/05/03(木) 02:54:31 ID:???
>>312
何を面倒がってるのか知らんが普通にスクリプトかませばいいじゃん

>>311 
>>307はスルーかよ
結局勘違いだったってことでいいわけ?

316 :nobodyさん:2007/05/03(木) 04:00:11 ID:0TC0EZ5+
質問です
<?phpだと有効なのに<?=だと無効になってしまいます
php.iniの設定だと思うのですがどのあたりなのかよくわかりません
よろしくお願いします

317 :316:2007/05/03(木) 04:09:20 ID:???
解決しますた。

318 :いつもの人 ◆3Htx6mDqZs :2007/05/03(木) 04:09:34 ID:???
>>312 header()

319 :nobodyさん:2007/05/03(木) 04:11:40 ID:???
>>313
結城センセのリファクタリング入門でも読んでみ
例外処理の仕組があると何故便利なのかわかると思うよ

>>316
ttp://jp.php.net/manual/ja/ini.core.php

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かどうかを判定するのは無理があるでしょうか?

322 :nobodyさん:2007/05/03(木) 07:10:04 ID:???
>>321
JavaScriptで自動的にPHPやCookieなどにアクセスさせるようにして
そのアクセスがあればON、無ければOFFと判定はできるかも。
自動アクセスは単純な手だと画像としてsrc呼び出しなど。
ただ、画像だとブラウザ設定によってJavaScriptがONでも動作しなくなる可能性はある。
その辺はCookieを使う場合も同様。
Ajaxみたいなデータ通信であればそういった不都合は無いかもしれないが
使えるブラウザ自体が限られるかもしれない。

ただ、どんな手法を使うにせよ、判定結果が出るのは最初のPHPの処理が
全て終わって、次のアクセス以降のことになるけどね。

323 :nobodyさん:2007/05/03(木) 07:39:13 ID:???
PHPできると彼女出来ますか?


24歳。おとこ

324 :nobodyさん:2007/05/03(木) 09:25:36 ID:???
一生ニートのあなたには残念ながら・・・

325 :nobodyさん:2007/05/03(木) 10:53:35 ID:???
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を呼びたい
  }
}

327 :nobodyさん:2007/05/03(木) 11:13:20 ID:???
マニュアル読め

328 :nobodyさん:2007/05/03(木) 11:27:39 ID:???
関数まとめとかグローバル変数代用とかの目的でクラス使わないほうがいいよ

329 :nobodyさん:2007/05/03(木) 11:31:11 ID:???
>>326
そういう風にクラス内で共有する変数があるなら普通プロパティにする

330 :nobodyさん:2007/05/03(木) 11:32:29 ID:+5Kuly7D
>>328
同じ内容の変数を別のメソッドでも使いたいだけなのですが、
その場合は、メソッド別に変数を定義するべきでしょうか?
ていうかそういう場面ってありませんか?

331 :nobodyさん:2007/05/03(木) 11:32:33 ID:???
>>328
まとめる為にクラス使ったら
newするのめんどくさくね?

class使わないほうがそのままfunction呼び出せるから便利

332 :nobodyさん:2007/05/03(木) 11:33:54 ID:+5Kuly7D
>>329
どうもありがとうございます。
プロパティの概念はよくわかっていないので、調べてきます。

333 :nobodyさん:2007/05/03(木) 11:35:23 ID:???
>>330
いやそんな基本的なことも分からないってことはオブジェクト設計とかもどこ吹く風っしょ?
まぁ別にいいけど。
プロパティ変数使えばいいともうよ。

334 :nobodyさん:2007/05/03(木) 12:07:27 ID:869V7SM7
PHP5.2でnamespaceもお流れになったから
globalにfunction作りまくるよりはclass使ったほうが良いと思う
newマンドクセならstaticにするべ

335 :nobodyさん:2007/05/03(木) 12:21:03 ID:???
>>331
クラス使う目的は面倒くさいとかそうでないとかではないだろ
インスタンス化が面倒だったらstatic使えば

336 :331:2007/05/03(木) 12:34:04 ID:???
>>335
ごめ、今までクラス使ったことないからわかんない
クラスって何だろう?って思うと、皆はまとめるだけとかいうが、
俺は別に必要性を感じないから使っていない

337 :nobodyさん:2007/05/03(木) 12:38:35 ID:???
>>336
つOOP

338 :nobodyさん:2007/05/03(木) 12:40:48 ID:???
>プログラムの部分的な再利用がしやすくなるなどのメリットがある。
functionあるし、やっぱり必要性を感じない俺は末期wwwwww

339 :nobodyさん:2007/05/03(木) 12:42:34 ID:???
>>338
まだ始まってすらいねーよ

340 :nobodyさん:2007/05/03(木) 12:44:51 ID:???
>>339
まだ20歳だし、勉強していこうと思えばなんとかなるかな?


しかし、2年も独学で勉強していてここまで成長がないのは俺だけでいい

341 :nobodyさん:2007/05/03(木) 12:54:40 ID:???
>>338
デザインパターンについて勉強してみると多分有効性が分かる

342 :nobodyさん:2007/05/03(木) 12:55:15 ID:???
無理してOOPなんて使う必要はない。
趣味でやる場合は特に。
会社に入れば使えるようになるし、
覚えようと思って覚える必要はない。

343 :nobodyさん:2007/05/03(木) 13:00:11 ID:???
>>341
それそれデザインパターン
まえから気になってたんだけど良い本がなかったorz
「PHPのデザインパターン」って本はないのかな・・・?

>>342
今までは趣味でしていたけど、
知り合いのWebデザイン関係の人のコネでPHPを使った簡単な仕事が入るようになった
この場合はもう趣味では済まされなくなるよな・・・

344 :nobodyさん:2007/05/03(木) 13:30:24 ID:???
OOPの話が出るととりあえずデザインパターンって
言う奴はどうかしてると思う

345 :nobodyさん:2007/05/03(木) 13:30:59 ID:???
>>343
お前本当に探したのか?
http://www.amazon.co.jp/dp/4798015164/

346 :nobodyさん:2007/05/03(木) 13:37:19 ID:???
デザパタは、まずはOOPの基礎が理解できてないと読んでもわからない。
よってまずはOOP入門が先。デザパタはその次。

347 :nobodyさん:2007/05/03(木) 13:41:45 ID:???
デザパタを意識しだすのは、結構な分量の糞コードを自分で書いてからだな。
最初はstatic,singletonだけで、クラスに関数まとめるだけでも利便性があるし。

348 :nobodyさん:2007/05/03(木) 13:44:23 ID:???
PHP→OOP→デザパタ

349 :nobodyさん:2007/05/03(木) 13:47:50 ID:???
オブジェクト指向を解説してるWebサイトなんて星の数ほどあるだろ。
理解したいなら真剣に読んでみたら?

手続き指向とはプログラムの設計の考え方が根本的に違うわけで、
便利になるとか不便になるとかいう次元の話ではない。


350 :nobodyさん:2007/05/03(木) 13:49:05 ID:???
ああ、便利・不便だと語弊があるかも。
プログラム作りが楽になるとか面倒になるとかいう話ではないってこと

351 :nobodyさん:2007/05/03(木) 14:10:43 ID:???
cURL関数でHTTPコードを参照するにはどうすればいいんでしょう?

リモートサーバが「404」を返して失敗したとか
「200」を返して成功したとか
の判定をしたいと思ってます。

352 :nobodyさん:2007/05/03(木) 14:26:51 ID:???
>>351
curl_getinfo関数は?

あと>>1読んでね

353 :nobodyさん:2007/05/03(木) 14:32:53 ID:???
>>351
以前はcURL結構使ってたけど使いづらい面が多いので、
PEAR辺りのHTTP接続ライブラリ使ったほうが良いよ。

http://jp2.php.net/manual/ja/function.curl-getinfo.php
CURLINFO_HTTP_CODE

354 :nobodyさん:2007/05/03(木) 14:43:28 ID:???
容量を節約する為に、長い文字列を短くしてDBに格納しようと思っているんですが
md5は日本語何文字程度までなら暗号化→複合が可能なんでしょうか?

355 :nobodyさん:2007/05/03(木) 14:45:02 ID:???
>>354
MD5は不可逆

356 :nobodyさん:2007/05/03(木) 14:45:48 ID:???
>>354
MD5は暗号じゃないし、複合もできない。

357 :354:2007/05/03(木) 14:48:49 ID:eLSTvBdp
oh...
ありがとうございました。

358 :nobodyさん:2007/05/03(木) 14:52:21 ID:???
>>354
まあ、じっくりよんでくれや
ttp://ja.wikipedia.org/wiki/MD5

たんに圧縮したいならbz2関数でも使えば

359 :nobodyさん:2007/05/03(木) 16:54:25 ID:grlGgfbD
PHPとMYSQLで日本語文字のクエリ抽出でつまずいています。
具具って見るとSQLでのマルチバイト文字抽出はPHPが対応していない
ような記事を見かけたのですが、これを補う方法ありませんでしょうか?

360 :nobodyさん:2007/05/03(木) 17:14:31 ID:???
フィールドで抽出してるんだけど、レコード全体の数も入れときたい場合は
どういうSQL文かけばいいでしょうかね?

DBはMySqlです。


361 :nobodyさん:2007/05/03(木) 18:11:50 ID:???
>>359
普通に日本語もできますよ

>>360
PHP関係あんの?

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';";



364 :nobodyさん:2007/05/03(木) 18:31:57 ID:???
文字コードの問題じゃないですか?

365 :359:2007/05/03(木) 18:33:08 ID:grlGgfbD
何度もすいません、更に訂正です
$sql="SELECT * FORM main WHERE fld='%$str%';";


366 :nobodyさん:2007/05/03(木) 18:33:12 ID:???
>>363
上と下で何が違うか分からんけどSQL文の最後のセミコロンっているんだっけ?
あとできるだけ実際のコードを出したほうが解決しやすいと思いますよ

367 :nobodyさん:2007/05/03(木) 18:34:06 ID:???
likeじゃないの?

368 :359:2007/05/03(木) 18:35:23 ID:grlGgfbD
サーバーはwin2003の文字コードはSJISでMYSQLの方がUTF-8です。

369 :nobodyさん:2007/05/03(木) 18:36:28 ID:???
>>368
とりあえず全部utf-8にすればok

370 :nobodyさん:2007/05/03(木) 18:37:36 ID:???
$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様、ありがとうございました。
うまく抽出できるようになりました。


373 :nobodyさん:2007/05/03(木) 19:31:00 ID:???
他の人はどうでもいいのか

374 :nobodyさん:2007/05/03(木) 19:39:13 ID:???
動的ページを作ってます。
外部ファイルなどに、すべてのタイトルや、タイトルの内容を書いたファイルを用意して。

./xxx.php?title=1 の時は
■タイトル1
■タイトル2
■タイトル3
./xxx.php?title=2 の時は
■タイトル1
■タイトル2
  □タイトル2の内容1
  □タイトル2の内容2
■タイトル3

とアドレスによってメニューを変えたいのですが、どんな風に組めばいいのでしょうか?


375 :nobodyさん:2007/05/03(木) 19:44:13 ID:???
<? if ($title == 1) { ?>
■タイトル1
■タイトル2
■タイトル3
<? } else if ($title == 2) { ?>
■タイトル1
■タイトル2
 □タイトル2の内容1
 □タイトル2の内容2
■タイトル3
<? } ?>


376 :nobodyさん:2007/05/03(木) 19:44:49 ID:???
そのままifなりswitchなりで分岐すればいいんじゃ?

377 :nobodyさん:2007/05/03(木) 20:19:34 ID:???
レスありがとうございます。
やはりifで分岐するのがいいんですね。

タイトルの数が多いのでfile()と組み合わせてやってみます〜
file()で開いて書き出すときにifすればいいのかな?
朝まで悩んでみますw

378 :nobodyさん:2007/05/03(木) 20:21:19 ID:???
>>37
fileと組み合わせるってどういう意味?
番号ごとに行で区切ったらその行のデータだけもってくればいいんじゃね?

379 :nobodyさん:2007/05/03(木) 20:23:47 ID:???
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分でできるのでしょうか?

381 :nobodyさん:2007/05/03(木) 20:35:58 ID:???
>>379
呼び出されねーよ

382 :nobodyさん:2007/05/03(木) 20:37:58 ID:???
>>380
if文でできるよ

383 :nobodyさん:2007/05/03(木) 20:41:37 ID:???
まじで?
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

384 :nobodyさん:2007/05/03(木) 20:45:01 ID:???
そりゃ、もし$wが0より大きいか100より小さい場合に処理1を返す、って書いてるんだから
当然そうなるわな

385 :nobodyさん:2007/05/03(木) 20:46:32 ID:???
>>383
orになってるからそれであってるけど、やりたい事とは違うようだな。

386 :nobodyさん:2007/05/03(木) 20:53:55 ID:???
andにしたら出来ました!!
30分無駄な時間をすごしたo... rz

387 :nobodyさん:2007/05/03(木) 20:55:23 ID:???
>>386
>>1

388 :nobodyさん:2007/05/03(木) 20:59:52 ID:4b9rb2Ka
オブジェクト指向の仕組みがわかってない状態なんだけど、

class=functionをグループにしたもの
function=独自関数
__construct=クラスが呼び出されたときに行う処理

こんな感じでいいのかな?

389 :nobodyさん:2007/05/03(木) 21:01:43 ID:???
違う

390 :nobodyさん:2007/05/03(木) 21:04:11 ID:???
全然違う

391 :nobodyさん:2007/05/03(木) 21:15:21 ID:4b9rb2Ka
あれ、おかしいな
本には印鑑にたとえて説明してあった

392 :nobodyさん:2007/05/03(木) 21:21:29 ID:???
印鑑OOPkwskw

393 :nobodyさん:2007/05/03(木) 21:22:37 ID:???
印鑑に例えたら、いんかんだろ

394 :nobodyさん:2007/05/03(木) 21:25:55 ID:4b9rb2Ka
「印鑑」をオブジェクトに見立てる。
彫られた名前、直径、長さなどの属性を「プロパティ」
押すという手続きを「メゾット」

こんな感じで載ってる
(秀和システムの書籍「PHP5逆引き大全500の極意」より)

395 :nobodyさん:2007/05/03(木) 21:30:28 ID:???
押すしかメソッドねーじゃんw

396 :nobodyさん:2007/05/03(木) 21:32:11 ID:???
>>394
また新しいおかしなたとえを考え出したなw
車でアクセルとブレーキがメソッドで、色や馬力がプロパティとかよく見たけど。
日本人向けか?

オブジェクト指向って、本読んで頭で理解してもなかなか使おうと思わないような気がする。
というか、使いどころが解らないと思う。

俺みたいな馬鹿は
>>347の言うとおり、いっぱいコード書いて、「なんかこのコード前も書いたなあ」と何度も思ったりとか
コピペしまくって、後でバグ発見して、全部直すのに手こずって、パニックったりとか
クラスを拡張しすぎて、3000行ぐらいになっちゃって、どこにバグがあるのか解らなくてイライラしたりとか
と言う経験をいっぱいしてやっとOOPを意識するようになった。

とにかく動く物をいっぱい書いてみると良い。
OOPの本をいっぱい読むのもイイ。
あと、OOPで設計されたフレームワークとかのソースを読んでみるのも良い。
(PHPならZendFrameworkあたりが良い)

となんか偉そうに書いてみたけど「デザインパターン」でもいってるように
「OOPを使って再利用可能なプログラムを設計する」のって難しいよね。
でも、出来たときは嬉しい!

397 :nobodyさん:2007/05/03(木) 21:42:56 ID:???
ソフトウェアをモデル化したりモジュール化したりするのに便利なだけであって
趣味でやってるとか個人で完結するプログラムなら別に要らないだろ。
使いどころが解らないなら理解が足りないか必要性がないかのどちらかなわけで。
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:???
なぜかIDでちゃったw。質問じゃないよ。

デザパタは
【GoF】デザインパターン 6
ttp://pc11.2ch.net/test/read.cgi/tech/1141846078/
などで


401 :nobodyさん:2007/05/03(木) 21:55:54 ID:???
>>366
PHPのMySQL関数でクエリを送る場合「いれない」が正解。

1行だけしか送れないので不要という理由もあるけど
説明でわざわざ「いれない」との記述があるので
入れると寧ろどこかで悪影響がある可能性も考えられる。

402 :nobodyさん:2007/05/03(木) 23:48:58 ID:???
オライリーの詳細正規表現の本って
通常のと第2版ってのがあるけどどっちがいいのよ?

403 :nobodyさん:2007/05/04(金) 00:25:28 ID:???
複数(10個ほど)のSubmitを配置し、どのボタンが押されたか知る方法ってありますか?
name属性に"Submit_1"もあれば"Submit_158"もあったり数字の部分は動的に変えています。
なにか方法はありますか?

404 :nobodyさん:2007/05/04(金) 00:26:31 ID:???
>>403
ID

405 :nobodyさん:2007/05/04(金) 00:29:19 ID:???
へ?nameで渡るだろ?

406 :nobodyさん:2007/05/04(金) 00:29:37 ID:7svLyDoe
さっきサーバーにPHP5をインストールしたのですが

$a = substr($a,1,2);

substrが使えません。
なぜ?

407 :nobodyさん:2007/05/04(金) 00:30:52 ID:???
>>406
使えないとは?
エラーが出るの?

408 :406:2007/05/04(金) 00:44:29 ID:???
解決しますた

409 :nobodyさん:2007/05/04(金) 00:51:01 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)とかが取れる


410 :nobodyさん:2007/05/04(金) 01:19:19 ID:???
ID:oManko9x
2chと同じようにこんな感じでユニークなIDを作りたい
uniqidやmd5は小文字しかないのでダメでした。
どうやったら作れますか?

411 :nobodyさん:2007/05/04(金) 01:24:10 ID:???
>>410
ID

412 :nobodyさん:2007/05/04(金) 01:30:41 ID:???
if ( $mailaddress =~ /^(.*)\@(.*)$/ ) { $localpart = $1; $domain = $2; }

perlで上のような構文を見かけたんですが、
phpで似たような構文は可能でしょうか?
それともpreg_match()などの関数を使う必要があるでしょうか?

413 :nobodyさん:2007/05/04(金) 01:35:21 ID:???
>>410
大文字がなきゃだめならランダムで小文字を大文字に変換すれば
>>412
関数使うべし

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が取れます。
あとは適当に切って取りたい桁数にしてあければいいのでは?

418 :nobodyさん:2007/05/04(金) 02:16:52 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は変えれないのです。


420 :nobodyさん:2007/05/04(金) 02:22:08 ID:???
>>416
$_POST['name']['30']に渡ってくるんだろ?
だったらそれのキーを取ればいいじゃん。
まぁ俺だったら面倒だからhidden使うけど。

421 :nobodyさん:2007/05/04(金) 02:28:48 ID:???
>>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

424 :nobodyさん:2007/05/04(金) 05:32:41 ID:???
> 今までtextのサイズを0pxにしていましたがhiddenを今まで知りませんでした。
(;´Д`)

425 :nobodyさん:2007/05/04(金) 05:52:42 ID:???
質問なのにID出さない、かってに自己解決する奴が大杉
自演に必死真面目に答えてる奴もどうかと思うわ

426 :nobodyさん:2007/05/04(金) 06:48:35 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!

429 :nobodyさん:2007/05/04(金) 13:27:04 ID:???
PHPって

HTMLもろくに知らないやつでもできるんだーwww

430 :403:2007/05/04(金) 13:46:28 ID:???
ASP.NETからPHPに挑戦していますwwwwww
HTMLは多少知っている程度でも出来るみたいですねwwww
今はなんとなく書き方が判ったからなんとなく出来てますwwwwwwwww


431 :nobodyさん:2007/05/04(金) 13:47:53 ID:???
そりゃスクリプト言語なんだから知らなくてもできるだろ
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の再コピーを試したのですが全く改善されません。
どなたかアドバイスください。よろしくお願いします。

433 :nobodyさん:2007/05/04(金) 16:38:17 ID:???
・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のスレで質問するように誘導されました。

436 :nobodyさん:2007/05/04(金) 17:00:11 ID:???
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で前述のエラーが出るようになりました。

439 :nobodyさん:2007/05/04(金) 17:23:26 ID:???
>>437
$obj = new test;
$obj->ech("aaa","bbb","ccc");

440 :nobodyさん:2007/05/04(金) 17:23:34 ID:???
>>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で見るべき場所とかありますか?

443 :nobodyさん:2007/05/04(金) 17:36:41 ID:???
>>441
コンストラクタの中でプロパティに代入すれば?

444 :nobodyさん:2007/05/04(金) 17:39:40 ID:???
>>442
Configuration File (php.ini) Path 
extension_dir
mysqliteの段落

445 :nobodyさん:2007/05/04(金) 17:40:32 ID:LLBEYpsm
>>443
サンクス
その方法でやってみます

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
というのはありますけど違いますよね。

447 :nobodyさん:2007/05/04(金) 17:48:39 ID:???
mysqliteってなんだよ

448 :nobodyさん:2007/05/04(金) 17:52:07 ID:???
mysqliteワロタwwwwwwwwww
何で合体してるんだwwwwwwwwww

449 :nobodyさん:2007/05/04(金) 18:02:04 ID:???
フレームワークに、データベース管理が簡単になるようなものとか入ってる?
あとは、会員システムが作りやすくなる補助的なもの

450 :nobodyさん:2007/05/04(金) 18:13:49 ID:???
>>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フォルダー内からコピーし直しました。
再インストールしてみます。



452 :nobodyさん:2007/05/04(金) 18:24:27 ID:???
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

このようなメッセージも確認でき無事にスクリプトも動きました。
アドバイスありがとうございました。

454 :nobodyさん:2007/05/04(金) 18:41:49 ID:???
>>453
> えーとwindowsのsystem32フォルダに以前のバージョンのdllを放置してたのが原因だったようです。
要らん再コピーとか無駄なアレンジを加えたための単なる自爆だな。

455 :453:2007/05/04(金) 18:48:28 ID:???
>要らん再コピー
これはこれで動くようになったという人の話をググって見つけたので試してみました。
要るかどうか判断できなかったので。。
でもそれ以前の問題だったようですね。すいません。

456 :nobodyさん:2007/05/04(金) 18:59:04 ID:???
>>453
いつも思うんだけど、解決に尽力してくれたその他多くの人達はどうでもいいの?

457 :nobodyさん:2007/05/04(金) 19:14:21 ID:???
>>456
アドバイスありがとうって書いてるのに
それ以上の何を望んでるんだろ?

458 :nobodyさん:2007/05/04(金) 19:21:06 ID:???
>>456見たいなのがこのスレを駄目にしている
まぁいまさら遅いか

459 :nobodyさん:2007/05/04(金) 19:31:25 ID:???
このスレだってちょっとマトモに見える時はある。
でも内容自体がくだらないので決して良スレには化けない。
くだ質スレなんてどこもそんな感じ。

460 :nobodyさん:2007/05/04(金) 19:42:29 ID:???
普通の質問スレなんて無いけどね

461 :nobodyさん:2007/05/04(金) 19:54:01 ID:???
前は普通の質問スレもあったけどな

462 :nobodyさん:2007/05/04(金) 20:29:43 ID:???
>>457>>458
礼に無神経な質問者が多いから駄目なんだよ。
言われる前に気を払わないと。
てか453は言われてもシカトだしな。

463 :nobodyさん:2007/05/04(金) 20:38:16 ID:???
なにこいつ

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
エラーの発見・解決をしやすくする方法を教えろ。

467 :nobodyさん:2007/05/04(金) 22:03:51 ID:???
>>466
自分で探せカス

468 :nobodyさん:2007/05/04(金) 22:05:55 ID:???
【PHP】下らねぇ質問はここに書き込みやがれ

そもそもこのタイトルが悪い

このタイトルを変えない限りここは基地外の巣靴であり続ける



469 :nobodyさん:2007/05/04(金) 22:10:33 ID:???
>>468
なんかいその騒動すれば気がすむんだよ

470 :nobodyさん:2007/05/04(金) 22:26:10 ID:???
結局何も変わらないのか……はぁ…。

471 :nobodyさん:2007/05/04(金) 22:43:26 ID:???
>>466
http://pc11.2ch.net/test/read.cgi/php/1158647441/l50

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を使ってるなどという情報も教えていただけたら、と思っています。

474 :nobodyさん:2007/05/04(金) 23:22:56 ID:???
アクセス数が万って1秒間に?

475 :nobodyさん:2007/05/04(金) 23:38:16 ID:???
>>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には入ってないです。


477 :nobodyさん:2007/05/05(土) 00:07:01 ID:???
じゃあ問題を2つにわけなさいよ
.htaccessの書式については
read.phpの冒頭に
var_dump($_GET);を書いてで引数が渡っているかどうかを確認

ここが問題なきゃ後者のfile includeの部分で失敗している。


478 :nobodyさん:2007/05/05(土) 00:18:42 ID:???
phpを勉強しようとローカルサーバでインストールしました。
phpのバージョンは 4.4.7 です。

オブジェクトのメンバへのアクセスが
$dbTbl = new clsDB();
$dbTbl->db2table("hogehoge");
だとNGで
$dbTbl = new clsDB();
$dbTbl.db2table("hogehoge");
だとうまくいきます。

どの資料でも -> でアクセスしているので -> にしたいのですが、
原因は何でしょうか?


479 :nobodyさん:2007/05/05(土) 00:25:48 ID:???
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
が表示できます。
なぜだろう…

481 :nobodyさん:2007/05/05(土) 00:37:22 ID:???
>>434
日本語でおk

482 :nobodyさん:2007/05/05(土) 00:38:17 ID:???
文字列連結になってるだけだし
db2tableってメソッドになってないし

483 :nobodyさん:2007/05/05(土) 00:38:30 ID:???
>>446の人気に嫉妬

484 :nobodyさん:2007/05/05(土) 00:48:35 ID:???
>>480
1.そもそもclsDBクラスでdb2tableメソッドを宣言していない
2.だからドットでアクセスしているというのは勘違い
3.つーかドットでアクセスできないっつってんだろ勝手にPHPコア書き換えんな
4.アクセスの仕方も分からないなら該当部分のマニュアルくらい読もうよ → http://jp.php.net/manual/ja/language.oop.php
5.>>1のルールすら守れないやつは引っ込んでろ

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バージョンアップ記念あげ

488 :nobodyさん:2007/05/05(土) 01:58:52 ID:???
おまえらコンパイル画面でも見て悟りを開け
行く文字のながれは絶えずして、しかも本のソースにあらずってな

489 :nobodyさん:2007/05/05(土) 02:45:33 ID:???
日本語でお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]」の数が定まっていれば簡単ですが、
変化する場合、()の使い方がイマイチわかりません。
どのようにすればよいでしょうか?

492 :nobodyさん:2007/05/05(土) 03:17:45 ID:???
>>491
素直にソース出したほうが早い
なんとなくpreg_match_allのマニュアル読み直すと解決しそうな匂いはする

493 :nobodyさん:2007/05/05(土) 04:04:49 ID:???
正規表現自体間違ってるよ

494 :nobodyさん:2007/05/05(土) 04:09:10 ID:???
>>491
単に改行コードが\r\nなだけじゃ?
初めから終わりまで指定してまうと
その間の全ての文字を考慮しないといけなくなるから
(もちろんそれが必要になる場合もあるけど)
'/TEST ([[:digit:]]+)/'
その場合単にこうしてしまった方がいいと思うけど。

495 :494:2007/05/05(土) 04:13:01 ID:???
ああ違った正規表現の所為でループしてないのね…

496 :nobodyさん:2007/05/05(土) 05:32:40 ID:???
ユーザーからの入力値を正規表現で変換する場合、
入力値に正規表現の特殊文字が含まれているかもしれないですよね?
そんな特殊文字を一括してエスケープする方法はありますか?

497 :nobodyさん:2007/05/05(土) 05:40:53 ID:???
あります。

498 :nobodyさん:2007/05/05(土) 05:47:39 ID:2h7OPxMf
>>1

499 :nobodyさん:2007/05/05(土) 06:49:12 ID:???
>>496
正規表現に変換?
正規表現で置換?

500 :nobodyさん:2007/05/05(土) 08:05:14 ID:???
>>499
正規表現で置換です
preg_quoteってのがあるみたいですね

501 :nobodyさん:2007/05/05(土) 10:29:56 ID:???
ランダムな文字列から全角・半角数字を取り除く方法を教えてください。

例、

こども人口、26年連続減少の1738万人
 ↓
こども人口、年連続減少の万人

502 :nobodyさん:2007/05/05(土) 11:17:37 ID:???
>>498

503 :nobodyさん:2007/05/05(土) 11:20:07 ID:???
>>501
UTF-8ならpreg_replaceでuオプションを付けて、
他のエンコードならmb_ereg_replaceで、
[0-90-9]を指定。

504 :nobodyさん:2007/05/05(土) 11:24:53 ID:???
session.gc_maxlifetimeで設定した時間以下で
セッションが勝手に破棄されることってありますか?
maxのlifetimeという表現が気になります

505 :501:2007/05/05(土) 11:28:20 ID:???
>>503
ありがとう御座います

>>502
分からないなら黙ってれば?

506 :501:2007/05/05(土) 11:50:38 ID:???
なんかレベルひくいよねここ

507 :nobodyさん:2007/05/05(土) 12:13:54 ID:???
ワロタ

508 :nobodyさん:2007/05/05(土) 12:29:09 ID:???
>>500
置換される側なら別にエスケープする必要ないべ

509 :nobodyさん:2007/05/05(土) 13:13:52 ID:???
今日から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再起動するの忘れた。
もしかしてそれのせい?


510 :nobodyさん:2007/05/05(土) 13:21:14 ID:???
>>509
俺がPHPを伝授するスレの前半をよめ

511 :nobodyさん:2007/05/05(土) 13:22:14 ID:???
じゃしろよ

512 :nobodyさん:2007/05/05(土) 14:51:25 ID:???
だから質問者はID出せと何度言ったら。
面白半分に騙る奴が出て来るんだよ馬鹿。

513 :nobodyさん:2007/05/05(土) 15:35:13 ID:KTSUFz5D
include, require, readfile などでファイルを読み込んで出力する際に
ファイルロックはしておく必要があるのでしょうか?

flock は使えないみたいですし…
読み込むだけなら別にロックしなくてもいいんですかね?

514 :nobodyさん:2007/05/05(土) 15:42:13 ID:???
>読み込むだけなら別にロックしなくてもいいんですかね?

そりゃそうだ

515 :513:2007/05/05(土) 15:46:33 ID:???
すいません自己解決しました。
http://nyx.pu1.net/practice/file_ope/file_ope9.html

516 :nobodyさん:2007/05/05(土) 15:54:47 ID:???
「ファイルロックしなきゃ!!」と思う前に
「ファイルロックって何?」って思わないもんなん?

517 :nobodyさん:2007/05/05(土) 16:02:16 ID:???
いや、ファイルロック位知ってます。
読み込むだけなら〜 の部分は readfile などがロックしてるのかと思って書いたものです
急いで書いたため全然違う日本語になってしまいましたが…

518 :nobodyさん:2007/05/05(土) 16:28:34 ID:???
いや明らかに分かってないだろ
日本語も分かってないんじゃね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">

こんな感じに変換したいんですが、うまくいきません。
お力添え御願いします。

520 :nobodyさん:2007/05/05(土) 18:34:55 ID:???
何をやったらうまくいかなかったの?

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);

これで上のパターンはうまくいくのですが
下のパターンがダメです。
正規表現を使えばいいのでしょうが書き方がわかりません。

522 :nobodyさん:2007/05/05(土) 19:06:13 ID:???
>>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>';
これでうまくいきました。有難うございました。

524 :nobodyさん:2007/05/05(土) 20:10:21 ID:???
>>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 :nobodyさん:2007/05/06(日) 00:14:57 ID:???
>>525
あるじゃん
ttp://jp.php.net/manual/ja/function.gzdecode.php
目的に合うかわしらんが

528 :nobodyさん:2007/05/06(日) 01:12:42 ID:???
527はレスの日本語も読めない人

529 :nobodyさん:2007/05/06(日) 01:59:55 ID:mYMYvtVv
複数のウェブアプリを一つのサーバーに入れていて、
各々のウェブアプリのセッションの寿命設定が違う場合、
他のウェブアプリが走らせたガベージコレクションによって
別のウェブアプリのセッションファイルが
目論見より早い段階で掃除されてしまう、
ということはありえるでしょうか?
ありえるとしたら、
アプリごとに、セッションパスを必ず分けなくてはいけない…
ということでしょうか?

530 :nobodyさん:2007/05/06(日) 02:31:53 ID:???
>>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アプリ用の
セッション情報を削除してしまうのは間違いないけど、それは既に
寿命の切れたセッション情報だから問題ないはずだ。

どう?

531 :nobodyさん:2007/05/06(日) 02:58:14 ID:???
>>529
セッションパスとセッション接頭子が全く一緒なら
そりゃ混ぜこぜにされちゃって掃除対象になっちゃうのでは。
session.save_pathかsession.nameのどっちかは
変えとかないといかんのじゃないかな。
うちはセッションルールが異なるアプリの場合、
session.save_pathは一緒だけどsession.nameをそれぞれ変えてる。

532 :nobodyさん:2007/05/06(日) 02:59:20 ID:???
>>529
http://jp.php.net/manual/ja/ref.session.php
> 注意: 異なる値を session.gc_maxlifetime に指定している 別々のスクリプトがセッションデータの保存場所を共有している場合、 一番小さい設定値に達した時点でデータが消去されます。このような場合には、 お互いに session.save_path を使用します。

他のノイズは無視して下さい。

533 :nobodyさん:2007/05/06(日) 03:00:50 ID:???
>>530
その「寿命」の設定が全く異なる場合に、
長命設定のものが短命設定のものに巻き込まれて
削除されてしまうのを心配してるんじゃ?
何を持って
> それは既に寿命の切れたセッション情報だから問題ない
と言ってるんだろう。

534 :nobodyさん:2007/05/06(日) 03:05:01 ID:???
>>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);
とクッキーをセットした場合、セットしたディレクトリのみ有効?
上のディレクトリも有効にする事って出来ない?

536 :nobodyさん:2007/05/06(日) 03:20:24 ID:???
>>533
ガーベジコレクタは寿命の切れたものしか削除
しないだろ?
だったら>>530の言うように寿命がそれぞれ違っ
ても問題ないんじゃない?

537 :529:2007/05/06(日) 03:22:18 ID:???
ご回答ありがとうございました
最低の設定で掃除されてしまうとは・・・
セッションセーブパスを必ず設定することを習慣にした方が
いいかもしれないですね

538 :nobodyさん:2007/05/06(日) 03:27:27 ID:???
>>536
寿命は生成時には決められない、ということでは?
gc_maxlifetimeは文字通りGCに対してだけの設定で、
セッションファイルに「このファイルの寿命はここまで」という属性を
与えるわけではないと。

539 :nobodyさん:2007/05/06(日) 03:39:48 ID:???
>>538
なるほど。いや勉強になった

しかし俺が言うのもあれだがセッション関連の話題は毎スレ出てくるな
まとめをテンプレに入れたほうがいいのかな?

540 :nobodyさん:2007/05/06(日) 03:48:36 ID:???
【PHP】セッションについて語ろう!【PHP】
http://pc11.2ch.net/test/read.cgi/php/1064399467/

541 :nobodyさん:2007/05/06(日) 03:57:09 ID:???
>>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:???
http://hamoblo.com/simple-eye/index.php?type=1&entryId=6
ここのブログによると
実際に代入する段階で警告が出るようです
いずれにしろ検索して出てくる記事の少なさからも
かなりマニアックな機能のようで…。
session.bug_compat_42がデフォルトで1なのがちょっと疑問です
まあ互換性の問題なのでしょうが
PHP5なら0にしておいた方がいい気がします

545 :nobodyさん:2007/05/06(日) 12:39:42 ID:???
おまえは質問しにきたのかお知らせにきたのかハッキリしないやつだな

546 :nobodyさん:2007/05/06(日) 12:51:11 ID:???
まあ下質スレだしな

547 :nobodyさん:2007/05/06(日) 13:41:07 ID:???
質問がらみでわかったことを情報提供するのが何が悪い

548 :nobodyさん:2007/05/06(日) 13:46:15 ID:???
そして無駄なログが増えて続けて2ちゃんでるはデブになってゆく

549 :nobodyさん:2007/05/06(日) 16:09:13 ID:???
だがそれがいい

550 :nobodyさん:2007/05/06(日) 16:16:08 ID:???
うんこ

551 :nobodyさん:2007/05/06(日) 16:52:18 ID:???
>>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でなくてもいいので判断する関数をお願いします。

556 :nobodyさん:2007/05/06(日) 18:43:18 ID:???
$hoge===0

557 :nobodyさん:2007/05/06(日) 19:10:25 ID:???
>>554
ctype_digit()

558 :nobodyさん:2007/05/06(日) 19:11:21 ID:???
って000333はnoなのか。なんでだ。

559 :552:2007/05/06(日) 19:17:43 ID:bSP5KVqH
Webprog板のphp関係下質スレで聞けと誘導されてきたのですが
ここもスレ違いでしょうか

560 :nobodyさん:2007/05/06(日) 19:20:07 ID:???
ならこれくらいしか思いつかない。
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万件ですが。

ただ、この考え方で良いのかどうか不安です。良い知恵をお借り出来ないでしょうか。

562 :nobodyさん:2007/05/06(日) 19:27:13 ID:???
>>560
「0.00333のtypoでした」かもしれない。本人待ちがいいんでない?

563 :nobodyさん:2007/05/06(日) 19:32:08 ID:???
>>561
俺ならアクセス毎に1件登録して
1日1回バッチ処理でユーザ毎の
カウントを集計してログを削除、にする。

アクセス毎にupdateは処理が重いのと、
不具合が出たときに誤集計になりやすい。

564 :nobodyさん:2007/05/06(日) 19:38:24 ID:NIpCxqfr
ちょっと質問

最近URLに(タグと言うべきか)文字が挿入されているサイトをよく見かけますが
これってどのようにURLからデータを取得しているんでしょう?

(ウィキペディア)http://ja.wikipedia.org/wiki/PHP:_Hypertext_Preprocessor
(はてな)http://d.hatena.ne.jp/keyword/PHP
(amazon)http://www.amazon.co.jp/○○
(ニコニコ)http://www.nicovideo.jp/tag/○○

日本語はエンコード・デコードしているのはわかります。

URLに ?test=hogehoge みたいな風になっていれば
$_GETで取得できるのはわかるのですが、どなたか仕組みを知りませんか?

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は禁止する方向でやってます

567 :nobodyさん:2007/05/06(日) 19:41:09 ID:???
>>552
manual読んでもわからないならXAMPPでも入れておけば良いんじゃないかしら。

568 :nobodyさん:2007/05/06(日) 19:45:23 ID:???
>>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
>>572
サンクス!

574 :nobodyさん:2007/05/06(日) 20:31:12 ID:???
>>564
$_SERVER['QUERY_STRING']

575 :nobodyさん:2007/05/06(日) 20:31:58 ID:???
>>570
>更新されても安定して取得・表示する方法
ない。相手側の勝手だから。RSSとかやってるなら別だけど。

576 :nobodyさん:2007/05/06(日) 20:33:11 ID:???
>>565
その辺の選択はアクセス量などに応じて
好きな方でいいと思う。

577 :nobodyさん:2007/05/06(日) 20:35:17 ID:???
>>570
そもそも部分部分に表示って
どういう基準で選り分けてんだ

578 :nobodyさん:2007/05/06(日) 20:35:48 ID:UWEsfuIO
http://***/?hoge=foo
じゃなくて
http://***/?hoge
とか
http://***/hoge
でやってるサイトが多いのは何で?

579 :nobodyさん:2007/05/06(日) 20:37:10 ID:???
その方がかっこいいからじゃね?

580 :nobodyさん:2007/05/06(日) 20:37:24 ID:???
>>578
SEO対策の一環

581 :nobodyさん:2007/05/06(日) 20:40:07 ID:???
>>569
apache再起動した?
最初からXAMPPなの?別個に入れた後XAMPPも入れたの?
ちなみにいつエラーって言われるのさ?
もう一回最初から手順どおりやって見れ。そのほうが早いよ。

582 :nobodyさん:2007/05/06(日) 21:30:55 ID:???
>>564
$_SERVER['PATH_INFO']

583 :nobodyさん:2007/05/06(日) 22:46:11 ID:???
>>582
>>564じゃないが、echo $_SERVER['PATH_INFO']で何も出なかった

http://example.com/hogehogeだったら
http://example.com/hogehoge/index.phpにアクセスされね?
http://example.com/index.phpでhogehoge取得とかできないな

584 :nobodyさん:2007/05/06(日) 22:56:15 ID:???
$_SERVER環境変数のうちPATH_INFOは、環境によって色々問題あるからね。
一番不安定。俺ならREQUEST_URI使うな。


585 :nobodyさん:2007/05/06(日) 22:58:29 ID:???
あるUNIX時間をフォーマットして「分」を出す関数ありませんか?

586 :nobodyさん:2007/05/06(日) 22:59:28 ID:???
>>585
date(s);

587 :nobodyさん:2007/05/06(日) 23:05:09 ID:???
 

588 :nobodyさん:2007/05/06(日) 23:06:51 ID:???
>>586
ありがとうございます。

589 :nobodyさん:2007/05/06(日) 23:41:18 ID:???
>>583
http://example.com/index.php/hogehoge/fugafuga
設定次第で http://example.com/index/hogehoge/fugafuga
とかもできる

590 :nobodyさん:2007/05/06(日) 23:44:27 ID:???
>>589
設定次第とはどんなの?

591 :nobodyさん:2007/05/06(日) 23:46:17 ID:???
>>583 「動的URL 静的URL 」 で検索.

592 :nobodyさん:2007/05/06(日) 23:48:11 ID:???
めんどくさいから一言でおながい

593 :nobodyさん:2007/05/06(日) 23:49:30 ID:???
一言:「IDを出せ」

594 :nobodyさん:2007/05/06(日) 23:51:47 ID:???
指図するな!!!

595 :nobodyさん:2007/05/07(月) 00:05:20 ID:???
平和だな

596 :nobodyさん:2007/05/07(月) 00:44:37 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を使ってできますた

600 :nobodyさん:2007/05/07(月) 03:52:54 ID:???
Smartyとか使ってるカスまだいたのか

601 :nobodyさん:2007/05/07(月) 04:14:46 ID:???
使ってない童貞まだいたのか

602 :nobodyさん:2007/05/07(月) 05:29:17 ID:VG09sLBd
そそ、テンプレートとかモデルとか使ってるとファイル数が増えすぎて逆に管理が大変になったりするんだよね・・・

603 :nobodyさん:2007/05/07(月) 06:53:03 ID:HuKM0EbB
URIからドメイン部分だけ抜き出すにはどうすればいいですか?
http://hoge.com/poge/fugo

hoge.com
みたいな感じです

604 :nobodyさん:2007/05/07(月) 07:10:02 ID:???
>>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"
}


605 :nobodyさん:2007/05/07(月) 07:17:22 ID:???
>>604
ありがとうございました

606 :nobodyさん:2007/05/07(月) 11:00:55 ID:???
すみませんが教えてください。
PHPでPDFを出力したく、フリーのライブラリを探しているのですがなにがお勧めでしょうか?
PDFLibは、商用で使う場合有償なのですよね?

607 :nobodyさん:2007/05/07(月) 11:26:11 ID:???
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%';";


610 :nobodyさん:2007/05/07(月) 12:18:04 ID:???
>>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にしています。

613 :nobodyさん:2007/05/07(月) 13:16:35 ID:???
クッキーについて
setcookieで同一ページでは問題ないのですが
同じ階層の違うページで
if( isset( $HTTP_COOKIE_VARS["vs_pass"] ) ) {
$vs_pass = $HTTP_COOKIE_VARS["vs_pass"];
} else{ . . .
とやってもからっぽでした。

ドメインやパスか何かを指定しなければならないんでしょうか?

614 :nobodyさん:2007/05/07(月) 13:17:17 ID:???
>>607
ライセンス嫁

615 :nobodyさん:2007/05/07(月) 13:19:12 ID:???
まちがえた>>606

616 :nobodyさん:2007/05/07(月) 14:12:45 ID:???
>>608
>>208 >>210

617 :nobodyさん:2007/05/07(月) 14:22:40 ID:???
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 でもインストールすることが出来ません。

ググっても同じような症状を解説しているサイトが見つからず、解決策が見つかりません。
どなたかご存知の方がいらっしゃいましたら、アドバイス頂けたらと思います。
よろしくお願いいたします。

619 :nobodyさん:2007/05/07(月) 14:33:48 ID:???
文字コード指定すればいいだろ。日本語あるからバイナリて。

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です。事故解決しました。他の部分のソースが違ってました。。

すみません。

623 :nobodyさん:2007/05/07(月) 20:07:37 ID:???
ねこすけ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
なんとなくわかった気がします。

私がやりたかったのは、
「ある行で、ある文字が検出されたら、それより上の行を全削除する」ってのをやりたかったんです。

630 :nobodyさん:2007/05/08(火) 01:18:30 ID:???
>>613
同じ階層であれば通常は問題ないはずなんだがなぁ〜
なんか特殊なことでもしてる?
単純にクッキーの発行と読み出しだけする
2個のプログラムでも書いて動作確認してみては?

どうでもいいけど $HTTP_COOKIE_VARS はもう古い。

631 :nobodyさん:2007/05/08(火) 01:21:25 ID:???
>>629
なんでそれで行数のカウントなんてするんだ?

632 :nobodyさん:2007/05/08(火) 03:46:58 ID:???
すみません、本を読みつつ作業してるんですがセッションを使った
プログラムがまともに動きません。
買い物カートにモノを入れて、最後のカート内確認画面まで選択情報を
セッションで維持して、最後に確定ってやつなんですが、カートの中身がカラなんです。
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 :nobodyさん:2007/05/08(火) 04:01:01 ID:???
ソースに問題があるとは考えないんだ

634 :nobodyさん:2007/05/08(火) 04:01:16 ID:???
ソースがなけりゃエスパーの出番だろ

635 :nobodyさん:2007/05/08(火) 04:11:33 ID:???
>>633
いやー、ほんについてたCDのソースをそのまま使ってみたんだけど、
それでも動かなかったので…
基本的な設定がおかしいのかと。

636 :nobodyさん:2007/05/08(火) 04:18:10 ID:???
ブラウザのクッキーがオンになってないんだよ。

637 :nobodyさん:2007/05/08(火) 04:18:22 ID:???
>>635
auto_startがOFFならソース中にsession_start()はあるんだよな?
…という感じで、設定値が正しいかどうかはソースによる。
設定だけ出されても
> Session Support enabled
を見て、使えるかもしれなないね、としか言えない。
save_pathのディレクトリにセッションファイルは生成されてんの?

638 :nobodyさん:2007/05/08(火) 04:25:38 ID:???
貴様の3流ソースなんてパクらねえし、探せば似たようなコードがありふれてんだから
どうどうと晒せよクズ

639 :nobodyさん:2007/05/08(火) 04:35:11 ID:???
晒せだと!?
晒すならお前が晒せよ

640 :nobodyさん:2007/05/08(火) 04:43:03 ID:???
ソースもださずに質問するなっ!!!!

641 :nobodyさん:2007/05/08(火) 04:46:53 ID:???
頭おかしいのかっ!!ふざけんな!!!

642 :nobodyさん:2007/05/08(火) 04:52:30 ID:???
PHP:神の子孫
Perl:漢
asp:いとこ
Ruby:ネカマ

643 :nobodyさん:2007/05/08(火) 04:53:38 ID:???
>>87

>>1の頭に失礼だよ

644 :nobodyさん:2007/05/08(火) 07:32:02 ID:???
>>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:???
ソース見せろとのご意見、ありがとうございました。
http://sakuratan.ddo.jp/uploader/source/date39691.zip がソースです
セッションの問題ということで、複数のファイルから構成されていて量があるため
見るほうの負担になるんじゃないかと思ったんですがヨロシクお願いします。

646 :nobodyさん:2007/05/08(火) 10:45:51 ID:???
該当部分だけ抜き出せよ
回答者に対して全部読めとかふざけてんの?
どこが関連部分かすらも分かってないからできないんじゃん

647 :nobodyさん:2007/05/08(火) 10:55:59 ID:???
抜き出せだぁ!?
お前が抜き出せよ

648 :nobodyさん:2007/05/08(火) 11:02:17 ID:???
ガタガタいってんじゃねえぞヘボ回答者ども!!
おまえらが晒せっていったんだぞクズ度も!!!
いいから答えろや!!!
あ、ごめんwwwwおまえらレベルひくいんだっけ?wwwwwwwwwwwww

649 :nobodyさん:2007/05/08(火) 11:41:50 ID:???
ソースめんどくさいから見ないが、
なんとなくPHPのバージョンが悪いんじゃないかと思う。

650 :nobodyさん:2007/05/08(火) 11:46:45 ID:???
2004年のソースか

651 :nobodyさん:2007/05/08(火) 12:34:19 ID:???
>>645
肝心の
chap5
が無いけど
それに本のプログラムを勝手に晒すと著作権違反では


652 :nobodyさん:2007/05/08(火) 12:55:43 ID:???
原因の切り分けができてない証拠だな

653 :nobodyさん:2007/05/08(火) 13:53:03 ID:???
原因の切り分けができるようだったら、そもそも質問しないだろうがw

654 :nobodyさん:2007/05/08(火) 14:10:32 ID:???
じゃつまり切り分けしろってことだな

655 :nobodyさん:2007/05/08(火) 14:36:56 ID:???
printfとsprintf
の違いは何でしょうか?
PHPマニュアルでは、
sprintf:フォーマットされた文字列を返す
printf:フォーマット済みの文字列を出力する
とありますが、意味がよく分かりません。

656 :nobodyさん:2007/05/08(火) 14:43:43 ID:???
フォーマットされた値がほしいだけなのに常に出力されたら困るやんか

657 :nobodyさん:2007/05/08(火) 14:46:41 ID:???
>>656

早速の返信ありがとうございます。
Cと同じで良かったんですね。どうも、お手数お掛けしました。

658 :nobodyさん:2007/05/08(火) 14:51:18 ID:???
本当にわかってるんだかわかってないんだか・・・

659 :nobodyさん:2007/05/08(火) 15:59:29 ID:???
>>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すればどこでデータなくなってるか分かるかと。

661 :nobodyさん:2007/05/08(火) 16:54:16 ID:???
    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
こんなスレにまで張られるとは

663 :nobodyさん:2007/05/08(火) 18:00:01 ID:???
日本人は暇人なんだなって思われるだけだな。

664 :nobodyさん:2007/05/08(火) 18:48:04 ID:cGr79y4f
>>662
>>663
レスすんなよカス2匹

665 :nobodyさん:2007/05/08(火) 19:07:54 ID:???
今Sn Uploaderを使って
UpLoader作成して
Upできるようにはなったんだが
ブログにリンクはるとアクセスできませんって
でるんだが
原因なにかわかりますか?
使ってるレンタルHPは
infoseek

666 :nobodyさん:2007/05/08(火) 19:11:42 ID:???
それだけじゃ、全然わからん


667 :nobodyさん:2007/05/08(火) 19:17:16 ID:???
並みのエスパーではわからん。
スーパーエスパーが必要

668 :nobodyさん:2007/05/08(火) 19:18:21 ID:???
すまん
PHPじゃなくてPerlでした
質問とりさげます

669 :nobodyさん:2007/05/08(火) 19:28:20 ID:???
スーパーエスパーもびっくり

670 :nobodyさん:2007/05/08(火) 19:39:36 ID:???
その前に句読点覚えようぜ。頭悪く見える。

671 :nobodyさん:2007/05/08(火) 19:39:38 ID:???
スーパーエスパー3でないと分からんな

672 :nobodyさん:2007/05/08(火) 20:01:07 ID:???
PHPとかPerlの垣根以前の問題だろうに

673 :nobodyさん:2007/05/08(火) 20:47:26 ID:T0+r/ZNA
アクセサについて質問なんですが、
これはプロパティとも呼ばれるもので、
クラス内のprivateメンバ変数が、外部からの操作を直接できないように、
間接的にアクセスするための仕組みなようなものという認識であっていますか?

Javaの参考サイトや、Wikipediaにはこのようなことが書かれていたのですが、
(自分勝手に解釈してる部分があるので、実際に書かれている意図とは違うかもしれません)
某PHP5の解説サイトでは、

>アクセサとは、未定義のメンバー変数やメソッドに対してアクセスがあった場合、
>あらかじめ用意しておいたメソッドを実行する機能である。

といった説明もあったりして、PHPではアクセサの意味が違うのかな?と思っています。
それとも両者とも正しい説明なのでしょうか?

OOPに詳しい方、ぜひこれぞアクセサだという説明をしていただけませんでしょうか?
よろしくおねがいします。

674 :nobodyさん:2007/05/08(火) 20:50:16 ID:???
__getとか見るべ

675 :nobodyさん:2007/05/08(火) 20:57:31 ID:zeXB/nU1
ヘッダに付くPHPのバージョン番号を隠す方法を教えて下さい
前にどこかで見た気はするのですが…

676 :nobodyさん:2007/05/08(火) 20:58:01 ID:???
すいません
PHPを作ってファイルをアップするとき
掲示板はどうしますか?
原因がわかりません・・・

677 :nobodyさん:2007/05/08(火) 21:00:35 ID:???
>>676
日本語でおk

678 :nobodyさん:2007/05/08(火) 21:03:25 ID:???
>>676
超質問だな

679 :nobodyさん:2007/05/08(火) 21:08:25 ID:???
>>675
http://jp.php.net/manual/ja/ini.core.php#ini.expose-php

680 :nobodyさん:2007/05/08(火) 21:25:36 ID:???
>>673
結論から言うとPHPでは意味が違う。
PHPでいうアクセサはマジックメソッドの__get()及び__set()。
これらは存在しないメンバ変数をコール、
または存在しないメンバ変数に割り当てようとしたときにオートコールされるもの。

んで普通アクセサというとその認識で概ね合っている。
Javaだとアクセサとはいうもののただのメソッド

681 :680:2007/05/08(火) 21:27:00 ID:???
ごめん途中で送信しちゃった。
Javaだと構造的にはただのメソッドと変わらないような物らしいから、
C#のプロパティとかがアクセサのイメージとしては一番近いんじゃなかろうか。

682 :nobodyさん:2007/05/08(火) 21:46:16 ID:???
__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 とかで参照させるしかねぇのかな?

685 :nobodyさん:2007/05/08(火) 22:18:28 ID:???
メンバ変数にすりゃいいじゃない。

686 :nobodyさん:2007/05/08(火) 22:24:17 ID:???
クラスって何なのか分かってない悪寒

(ついでに言えば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 説明不足すまん。
いろんなクラスのメソッドで使ったりとか、
とにかくいろいろ用途が多いってことなんすよ。

689 :nobodyさん:2007/05/08(火) 22:28:46 ID:???
だったらオブジェクト設計の問題じゃん
無理やり定数やらグローバル変数で使いまわすならクラスの意味ないし
なんて言ってみるξ゚听)ξ

690 :nobodyさん:2007/05/08(火) 22:30:57 ID:???
定数ですむものは定数のほうがいいよ。

691 :nobodyさん:2007/05/08(火) 22:31:12 ID:???
>>679
ありがとうございました
「これは全くセキュリティ上の脅威ではなく、サーバ上 で PHP を使用しているかどうかを調べられるようにするものです。」
と書いてるけど、
バージョン固有のセキュリティーホールが発見された時には
それなりの脅威になりますよね?

692 :nobodyさん:2007/05/08(火) 22:31:43 ID:aq8SRoA2
おまえらってさ日常で笑ったりしてますか?

693 :nobodyさん:2007/05/08(火) 22:33:51 ID:???
は?笑わない人っているの?

694 :nobodyさん:2007/05/08(火) 22:36:30 ID:???
既出だがこれぐらいは読んどけよくずども
http://bugs.php.net/

695 :nobodyさん:2007/05/08(火) 22:36:39 ID:j3fFuUxd
>>689 俺の勝手なイメージだけどメンバって、オブジェクトのなかで
値をうにょうにょ変えていく存在という感じがする。
initVarとかsetVarとか汎用で作ってさ。
不動なものはもっとdefineみたいにどっしり構えてほしかったのさ。

696 :nobodyさん:2007/05/08(火) 22:42:52 ID:???
真面目にやりたいならイメージ正したほうがいいと思うよ
勝手なイメージで開発て

697 :nobodyさん:2007/05/08(火) 22:49:32 ID:???
クラス内で使いたいならオブジェクト定数使え。
なんていうか無理してクラス使う必要ないんじゃね?

698 :nobodyさん:2007/05/08(火) 22:50:05 ID:j3fFuUxd
>>696 そうは言っても不動な値をメンバにすると、
固定された値のくせにオブジェクトの数だけメモリにのっちまうだろ?
やっぱり設計としてどーかと思う。

699 :nobodyさん:2007/05/08(火) 22:55:13 ID:???
staticにすりゃできるが
お勧めしない

ID:j3fFuUxdの気持ちはわかる
匿名関数がカスでアクティベーションできないから、処理を小分けにしにくい

700 :nobodyさん:2007/05/08(火) 23:15:53 ID:j3fFuUxd
>>699 今staticに変更したけどやっぱりその設計もいろいろとめんどかったです。
以下のうちどの設計が最善でしょうか?
1.arrayぐらい毎回書く
2.毎回メモリにのるけど大した量じゃないしメンバで。
3.$GLOBALSにいれる。めんどくささは1と大差ない気がする。

ちなみにオブジェクト30個ぐらい扱って計算させてます

701 :nobodyさん:2007/05/08(火) 23:25:11 ID:???
どのくらいのサイズだよ

702 :nobodyさん:2007/05/08(火) 23:27:08 ID:j3fFuUxd
>>701 float変数が3つだけです。
3次元座標系の粒子の処理を得意だったPHPで書こうかなーと。

703 :nobodyさん:2007/05/08(火) 23:29:35 ID:???
余計なおせっかいかもしれないけど
どういうオブジェクト設計になってるのかも教えてくれたほうが適切なアドバイスができる気がする

704 :nobodyさん:2007/05/08(火) 23:36:46 ID:j3fFuUxd
>>703
デザインパターンとかはわからないんで、長々とありのままを書くと、
とりあえず最上位には二つのクラス。
objectクラスとobjecthandlerクラス。handlerは複数のオブジェクトの処理や、
データファイルから読みだすときに使うクラス。

objectクラスの下にcoordinateクラスがあり、座標の処理をしている。
スカラー倍とか。
複数データの座標処理にはcoordinatehandlerていうクラスもある。
二点の距離や三点の角度などはここ。

で、それらの下にatomクラスとatomhandlerクラスがあって、
粒子の各プロパティもメンバ変数に入る、という設計。

見当違いだったらごめん。

705 :nobodyさん:2007/05/09(水) 00:42:20 ID:???
で,定数で使いまわしたいfloat型3つ入ってる配列は?

706 :nobodyさん:2007/05/09(水) 01:41:53 ID:???
お前等なら、どう書く?

>1から100までの数をプリントするプログラムを書け。
>ただし3の倍数のときは数の代わりに「Fizz」と、
>5の倍数のときは「Buzz」とプリントし、
>3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

どうしてプログラマに・・・プログラムが書けないのか?
http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm

707 :nobodyさん:2007/05/09(水) 01:53:48 ID:???
>>706
foreach(range(1,100) as $i) {
 $p = '';
 if(! ($i % 3)) $p .= "Fizz";
 if(! ($i % 5)) $p .= "Buzz";
 print (($p)? $p: $i) . "\n";
}


708 :nobodyさん:2007/05/09(水) 01:58:17 ID:???
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/>';
}
最後のやつが厄介だね

709 :nobodyさん:2007/05/09(水) 02:01:52 ID:???
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";
}

710 :nobodyさん:2007/05/09(水) 02:21:31 ID:???
効率悪いかきかただな、どいつも

もっとシンプルにできると思うのだが

711 :nobodyさん:2007/05/09(水) 02:26:42 ID:???
じゃ書けよw 何なんだお前はw

712 :nobodyさん:2007/05/09(水) 02:28:08 ID:???
forを使う時点でまちがってるからね
明日答えをかいてやる

713 :nobodyさん:2007/05/09(水) 02:28:27 ID:???
シンプルさを追求するのはやめれ

714 :nobodyさん:2007/05/09(水) 02:28:56 ID:???
まあヒントくれてやるけどこの場合はwhileつかえよ

715 :nobodyさん:2007/05/09(水) 02:29:16 ID:???
>>712
明日て
駄目じゃんw

716 :nobodyさん:2007/05/09(水) 02:29:37 ID:???
とりあえずきさまら3流どもははやくねろw

717 :nobodyさん:2007/05/09(水) 02:30:47 ID:???
これを明日とかいうやつが他人を3流呼ばわりってネタだろ

718 :nobodyさん:2007/05/09(水) 02:31:53 ID:???
forを選択するおまえらにネタといわれたくないなw

719 :nobodyさん:2007/05/09(水) 02:33:33 ID:???
何も言わずにコードだけ貼れば要らんレス付かないのに
要領悪いな

720 :nobodyさん:2007/05/09(水) 02:38:40 ID:???
この場合はfor使うのが適切だろ
foreachでもいいけど

721 :nobodyさん:2007/05/09(水) 02:44:36 ID:???
乗り遅れた。ヘタレですみません。

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;
  }
}

722 :nobodyさん:2007/05/09(水) 02:48:31 ID:???
こんなのはよっぽど変なことしなければどう書こうが誤差の範囲
可読性やスピードに注意を向ければよろし

723 :nobodyさん:2007/05/09(水) 02:50:23 ID:???
>>706
そもそも「プログラムが全く書けない応募者」をフィルタするための問題だから
そこに高度さは必要ないだろ…
何で無駄ハック大会みたいになってんだよ

724 :nobodyさん:2007/05/09(水) 02:51:40 ID:???
フラグ使うのは邪道?
3と5の倍数判定でそれぞれフラグをセットして、両方がtrueならFizzBuzz

725 :nobodyさん:2007/05/09(水) 02:51:42 ID:???
書けない奴が何で応募してきたのかが気になるな
というかそもそも本当の話なのか…?
日本でもそんなもんなん?

726 :nobodyさん:2007/05/09(水) 02:51:53 ID:???
俺からしたら>>707は暗号だ・・・

727 :nobodyさん:2007/05/09(水) 02:59:12 ID:???
>>724
>>708は?

>>710
しばらく考えなきゃ書けない時点であまり価値はないよw

728 :nobodyさん:2007/05/09(水) 03:02:31 ID:???
>>725
日本では英文科出ても英語はなせない、技術系の専攻でもプログラム書けないなんてよく聞くけど。
卒業の厳しいアメリカではそんなことないのかと思っていたが違うんだな。

729 :nobodyさん:2007/05/09(水) 03:05:12 ID:???
経験者募集!って一言書けばいいだけじゃね?

730 :724:2007/05/09(水) 03:06:16 ID:???
>>727
見えてなかったorz

731 :nobodyさん:2007/05/09(水) 03:18:09 ID:???
>>706を条件文と配列だけで書こうと思ったがうまくできなかった。
もし書ける人いたら今後の参考に使いたいからよろしゅう。

732 :nobodyさん:2007/05/09(水) 03:20:33 ID:???
誰が見ても分かりやすい素直なプログラム書ければOK
オナニープログラマーはいらん

733 :nobodyさん:2007/05/09(水) 03:22:33 ID:???
この板見てるのって趣味でやってるオナニープログラマーだけじゃないの?w

734 :nobodyさん:2007/05/09(水) 03:23:28 ID:???
>>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

735 :nobodyさん:2007/05/09(水) 03:25:52 ID:???
1000に増えててワロタ

736 :nobodyさん:2007/05/09(水) 03:28:09 ID:???
range(1,1000)とか無駄にメモリ喰うだけだろバッキャローが
素直になれよ
そして四つんばいになれよ

737 :nobodyさん:2007/05/09(水) 03:31:23 ID:???
倍数判定で毎回modするより
カウンタを何種類か持たせて0判定の方が速そう

738 :nobodyさん:2007/05/09(水) 03:34:25 ID:???
それはいいね
速いかとか効率いいかは分からんけど違う手法でやってみるのも面白そうね

739 :nobodyさん:2007/05/09(水) 03:50:10 ID:???
作ってはみたけれど、ネタとしても面白くなかった…
$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);


740 :nobodyさん:2007/05/09(水) 03:51:09 ID:???
え,それは何のために・・・?

741 :nobodyさん:2007/05/09(水) 05:43:07 ID:???
こんなん

for ($i = 1; $i <= 100; $i++, $s = ($i % 3 == 0) ? "Fizz" : "", $s .= ($i % 5 == 0) ? "Buzz" : "", $s = ($s != "") ? $s : $i) echo $s."<br>\n";

742 :nobodyさん:2007/05/09(水) 05:45:53 ID:???
>>710>>712
ああ、なるほど。こういう人が>>706のリンク先で書かれてる
> 自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。
という現場で使い物にならないバカちんなんだ。
まさかそんな人が…と思ったが実によく理解できた。


743 :nobodyさん:2007/05/09(水) 05:47:30 ID:???
>>741
>>707を無理やり1行で書いただけじゃんww

744 :nobodyさん:2007/05/09(水) 06:07:58 ID:???
>>742,743
実は会社で「お前が一番使い物にならない」と言われてんじゃw

745 :nobodyさん:2007/05/09(水) 06:10:50 ID:???
>>741
っていうかこんなコード、仕事じゃ使えないだろ。

746 :nobodyさん:2007/05/09(水) 06:25:39 ID:???
もうわかったから、実は会社で「お前が一番使い物にならない」と言われてるって

747 :nobodyさん:2007/05/09(水) 06:43:56 ID:6zAvWwo5
ソースからリンク先アドレスを抽出したいのですが
いい方法ないですか?

748 :nobodyさん:2007/05/09(水) 06:53:55 ID:???
>>736
いまどき1000個の配列でメモリ気にされてもね
どんだけショボイマシン使ってるんだ

749 :nobodyさん:2007/05/09(水) 06:58:24 ID:???
そういう問題じゃないだろう…
カウントするだけのために配列作ること自体がセンスない

750 :nobodyさん:2007/05/09(水) 07:34:19 ID:???
処理が分かりやすくてバグが出にくいようになってればどっちでもいいよ

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に戻ってる?)

ブラウザからの操作なので履歴が表示されているのかとも疑ったのですが、そうではないようです。
メールボックスがある鯖の設定も関係してるのか・・・一応複数のメールボックスで試したのですが。
上記のような手順でつけたフラグって固定しないもんなんでしょうか。。

752 :nobodyさん:2007/05/09(水) 09:03:49 ID:???
>>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()をかけ、&をつけて文字列に戻す、みたいな。

755 :nobodyさん:2007/05/09(水) 09:45:30 ID:???
>>754
PHPの処理をPOP3のコマンドの対応を考えてみる。
なにか不足してないか?

まあ、ソースを晒さずにどこまで進むか試してみようw

756 :nobodyさん:2007/05/09(水) 10:15:42 ID:???
>>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

760 :nobodyさん:2007/05/09(水) 12:18:06 ID:???
>>758
cronだけで実行するなら、ウェブからアクセスできないところに
スクリプトおきなよ。

761 :nobodyさん:2007/05/09(水) 12:28:49 ID:???
>>758
URLにアクセスって
それcronじゃないだろ


762 :nobodyさん:2007/05/09(水) 12:33:07 ID:???
>>758
スパム業者の方ですか?
ローカルからのアクセスかどうかをチェックする機能を付け加えるべし。

>>761
どの場所においてもcronなんて使えるわけだが。

763 :nobodyさん:2007/05/09(水) 12:57:38 ID:???
CLIは使えないの?

764 :nobodyさん:2007/05/09(水) 13:31:14 ID:???
WindowsXPでXAMPPでPHP5でPHP勉強中なのですが、

unlink使うと、Permission deniedエラーがでます。

htdocsに直接ファイルおいて、読み取り専用のチェックも外してるのですが、なぜ解決できないのかわかりません。

765 :nobodyさん:2007/05/09(水) 13:38:24 ID:???
>>764
前後のソースちょっとだしてみ

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");
こんなかんじです。

767 :nobodyさん:2007/05/09(水) 13:48:20 ID:???
fclose($filkepointer);
unlink(ry

768 :764です:2007/05/09(水) 14:04:07 ID:???
>767
ありがとう御座います。

unlinkのエラーは消えたのですが、以降のエラーがでて、鯖が固まってしまいました(ノ_-;)

修行してきます

769 :nobodyさん:2007/05/09(水) 14:26:01 ID:???
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; }
とすれば大丈夫でしょうか?

770 :nobodyさん:2007/05/09(水) 14:48:16 ID:???
>>769
print $from;で表示されないのはわかりませんが
送信されたメールで$nameが表示されないのは
日本語に対してMIMEエンコーディングしてないからじゃない?
$name = mb_encode_mimeheader($name);
半角チェックはただexit()ってのも冷たい気がするけど
構文的にはそれでもよいのでは。

771 :761:2007/05/09(水) 15:05:57 ID:???
>>762
いやいや
cron使ってわざわざhttpサーバにアクセスするのも変じゃない
普通素直にスクリプト起動するだけだからなぜURLにと思ったの

772 :nobodyさん:2007/05/09(水) 15:25:38 ID:???
>>771
レンタルサーバならそういう事情もあるでしょ。
public_html以下しか接続許可していないサーバも存在するだろうし。
cronが使えるようなサーバがそんな気の利かない設定するわけないけど。

773 :nobodyさん:2007/05/09(水) 16:27:05 ID:???
>>770
エンコードすると中身はISOなんたらかんたらとなって
人が理解できないようなものになるのはこれで正しいですか?

後、exit()だけなのは手っ取り早く1行で抑えたかったのでこの書き方になりました。

774 :nobodyさん:2007/05/09(水) 16:32:08 ID:???
win環境でphpからdosコマンドを使いたいのですが、
むりですか?

775 :774:2007/05/09(水) 16:32:49 ID:D8ftPzG/
CLIならいけるとおもうんですがどうなんでしょうか?
やっぱりlinux上できかできないのかな\\\

776 :nobodyさん:2007/05/09(水) 16:41:32 ID:???
>>774
exec()とかで出来るんじゃないの?
win環境詳しくないから知らないけど

777 :nobodyさん:2007/05/09(水) 16:45:11 ID:???
`dir`で普通にできたよ

778 :nobodyさん:2007/05/09(水) 16:51:54 ID:D8ftPzG/
まじっすか、ありがとうございます。
XPのOS再インストールがおわったらためしてみます

779 :nobodyさん:2007/05/09(水) 16:55:58 ID:???
試すなり調べてから聞けよ・・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
ログ読む時に全部デコードして表示時にエンコードするっていう一番の基本線が
確実ですね そうすることにします
ありがとうございました

782 :nobodyさん:2007/05/09(水) 17:33:00 ID:???
>>780
1回のリクエストの中でそのカウント方式が完結するなら、関数内の初めの部分に
static $counter = array();
をして、$count[$login_name]++;の部分を
if (isset($count[$login_name])) {
 $count[$login_name] = 0;
} else {
 $count[$login_name]++;
}
に変える。

783 :nobodyさん:2007/05/09(水) 18:02:24 ID:???
>>769
>これでいいと思うのですが、送信する前に print $from; をしてみると
><$mail>が表示されないのです。

単に、HTMLの要素カッコとしてブラウザが認識してるだけでしょ。

784 :nobodyさん:2007/05/09(水) 18:08:18 ID:???
>>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回のリクエストの中でカウント方式が完結したら、普通はダメだわな。
どんな仕様・設計にしてるか知らんが。

788 :nobodyさん:2007/05/09(水) 19:07:52 ID:???
XAMPPの最新版使って

<?php
function showString($value, $num, $delim){
for($i=1;$i<=$num;$i++){
print($value.$delim);
}
}
showString('だるまさんが転んだ!',5,<br />');
?>

と入力したら真っ白(エラーなんたらも無し)になったけど

Why?

789 :nobodyさん:2007/05/09(水) 19:13:30 ID:???
ブラウザのデフォルト文字色が白

790 :nobodyさん:2007/05/09(水) 19:15:26 ID:???
for文の前にprintを書いてちゃんと値が渡ってるかどうか確認しる
つか<br />'の前に'が無いんだが
これが原因だったら2chに書き込む前に5分考えろ


791 :nobodyさん:2007/05/09(水) 19:23:49 ID:???
>>790

5分考えたら分かったよ

'が無かったね

792 :nobodyさん:2007/05/09(水) 19:32:36 ID:???
そろそろまたID表示強化月間だと思うんだ

793 :nobodyさん:2007/05/09(水) 21:52:45 ID:???
>>792
OKブラジャー

794 :nobodyさん:2007/05/09(水) 22:55:53 ID:???
今朝の話題がはてなでも話題に
ttp://b.hatena.ne.jp/entry/http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm

795 :764です:2007/05/09(水) 23:09:58 ID:zHM/pvx9
かなりアフォな質問だと思うのですが、

$string = "http://abc.com/http://abcd.com/";
print(mb_eregi_replace('(http://|https://)[a-z0-9./_\-]+','<a href="\0">\0</a><br/>',$string);
で、http://abcd.com/がリンクされません。二回目以降どうすればいいのでしょうか?

796 :nobodyさん:2007/05/09(水) 23:17:22 ID:???
>>783
なるほど! すっきりしました。
ありがとうございました。

797 :nobodyさん:2007/05/09(水) 23:20:52 ID:???
初心者はapache、php、mysql全部インストーラー無しでやってみれと言いたい

798 :nobodyさん:2007/05/09(水) 23:21:11 ID:???
>>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);

799 :nobodyさん:2007/05/09(水) 23:24:05 ID:???
俺はもうだめかもしれない・・・
ついにオナフォールを買ってしまった・・・
風俗には今まで全然いったこと無かったのに
何でいきなりオナフォール・・・

まだ風俗の方が健全な気がするぜ!

800 :799:2007/05/09(水) 23:26:39 ID:???
誤爆嶋ssssssssssssss
うわがああああああ忘れてくれええええええええええええええ

801 :nobodyさん:2007/05/09(水) 23:27:11 ID:okhokTRP
>>797
インストーラーなんて元々ないんだけど?

802 :nobodyさん:2007/05/09(水) 23:29:36 ID:???
あるじゃん

803 :nobodyさん:2007/05/09(水) 23:33:30 ID:???
PHPのインストーラは見たことあるけど
MySQLとApacheのインストーラなしって
Windowsであるの?

804 :nobodyさん:2007/05/09(水) 23:34:33 ID:???
あるじゃん

805 :nobodyさん:2007/05/09(水) 23:39:16 ID:okhokTRP
ドザの話か・・・・

806 :nobodyさん:2007/05/09(水) 23:55:24 ID:???
Apache-win用のインストーラー無しは無いぽ
ビルドするかmsiを展開できるツール使えばできそうだが

807 :nobodyさん:2007/05/09(水) 23:55:41 ID:???
>>799
風俗の前にオナホでも全然おかしくないだろ
むしろ風俗前のレッスンと考えるんだ

808 :nobodyさん:2007/05/10(木) 00:28:42 ID:i4wrMZ/Q
wikipediaなどでは
hogehoge.com/ほげほげ
等、URIに日本語を直接記述していますが、
何故URLエンコードしなくても問題が起こらないのでしょうか?

809 :nobodyさん:2007/05/10(木) 00:32:52 ID:???
ブラウザがエンコードしてくれてるんじゃないか?

810 :nobodyさん:2007/05/10(木) 00:37:19 ID:???
>>806
あるじゃん
http://brandleadershipmarketing.com/apache/

つかサービス登録してくれてApache Monitor入れてくれるくらいの違いしかないだろが,インストーラ

811 :nobodyさん:2007/05/10(木) 00:38:11 ID:???
同上でブラウザがエンコードしてるんだと思う
FireFoxだと日本語で入力しても表示されない

812 :nobodyさん:2007/05/10(木) 00:43:33 ID:???
>>809,811
本当ですね
まさかそんな答えだったとは…
ありがとうございました

813 :795:2007/05/10(木) 01:15:59 ID:???
自分なりに考えたのですが動きません…
$string = "http://abc.com/http://abcd.com/";
while(mb_eregi('(http://|https://)[a-z0-9./_\-]+',$string)){
$string = mb_eregi_replace('(http://|https://)[a-z0-9./_\-]+','<a
href="\0">\0</a><br/>',$string);


814 :nobodyさん:2007/05/10(木) 01:23:06 ID:qTUopfwt
>>813
何がしたいの?
URLにリンク貼るだけならwhileいらなくね?
二回目以降って何の二回目以降?

目的がわからないから答えようないよ

815 :nobodyさん:2007/05/10(木) 01:50:15 ID:???
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

この回避策に関しての欠点、もしくは他に良い方法などありますでしょうか。

818 :nobodyさん:2007/05/10(木) 02:30:02 ID:???
>>817
?なんのために??

819 :817:2007/05/10(木) 03:05:09 ID:ucjeMPs6
>>818
GET引数に指定したURLをfile_get_contents()で読み取って、
中身を若干加工等して出力しようと考えてます。

イメージはこんな感じ。
http://www.hoge.com/index.php?url=http://www.piyo.com/

例として、以下のような「&」を含んだURLを引数にした場合に
「&」で区切られてしまい、file_get_contents()では
「&」の直前までのパスしか取得できません。

http://www.hoge.com/index.php?url=http://piyo.com/index.php?name=2ch&type=bbs
… echo $_GET['url']; の結果
 理想:http://piyo.com/index.php?name=2ch&type=bbs
 現実:http://piyo.com/index.php?name=2ch

これを、なんとか簡潔に解決できないかなと考えています。

820 :nobodyさん:2007/05/10(木) 03:18:49 ID:???
>>819
どういう実装を想定してるのかわかんないけど。

?url=http%3A%2F%2Fpiyo.example.com%2Findex.php%3Fname%3D2ch%26type%3Dbbs
として渡す。

echo urldecode($_GET['url']); // 'http://piyo.example.com/index.php?name=2ch&type=bbs'

821 :nobodyさん:2007/05/10(木) 04:06:54 ID:???
>>819
id出してるのは偉い!が説明が回りくどくて理解しにくいよ

print_r($_SERVER)してみれ

822 :nobodyさん:2007/05/10(木) 04:44:47 ID:???
>>819
>>820に補足。自分でURLを生成する(a要素のhref属性値に埋め込むなどの)ような場合は、
urlencodeを使うといい。

urlencode('http://www.hoge.com/index.php?url=http://piyo.com/index.php?name=2ch&type=bbs')
→http%3A%2F%2Fwww.hoge.com%2Findex.php%3Furl%3Dhttp%3A%2F%2Fpiyo.com%2Findex.php%3Fname%3D2ch%26type%3Dbbs

これをurldecodeに通してみたらお望みのものが得られる。

もしもブラウザのGETメソッド経由のフォームで得るのであれば、
ブラウザがurlencode相当の処理をしてサーバにリクエストを投げてくるので、
それを適当に処理すればよろしい。

823 :nobodyさん:2007/05/10(木) 05:03:39 ID:???
>>795
$string = "http://abc.com/http://abcd.com/";
$string = preg_replace('/(https?|ftp)(:\/\/[[:alnum:]\+\$\;\?\.%,!#~*\/:@&=_-]+)/', '<a href="\\1\\2">\\1\\2</a>', $string);
echo $string;

824 :nobodyさん:2007/05/10(木) 06:27:37 ID:???
http://journal.mycom.co.jp/news/2007/05/08/008/
迅速なアップデートを! セキュリティ対策が施されたPHP 5.2.2/4.4.7リリース

アップデートが面倒くさいのですが
やはりアップデートすべきでしょうか?

825 :nobodyさん:2007/05/10(木) 06:36:04 ID:???
そんなの使用目的による。
デバッグにしか使わないなら別にアップデートしなくていい。

826 :nobodyさん:2007/05/10(木) 10:36:30 ID:???
>>795
FAQを読まない馬鹿はいらない子です。

>>824
MOPBで指摘された致命的なバグの修正版だから、
公開してるならアップデートしておかないとクラックされる可能性が高くなる。

827 :nobodyさん:2007/05/10(木) 11:11:27 ID:???


828 :nobodyさん:2007/05/10(木) 12:03:12 ID:p6e8Tgaw
昨日質問させてもらった>>751です。
やはりストリームをクローズしてしまうとフラグはクリアされてしまいます。
オープンしたままであれば維持されているのは確認できたのですが。
明示的にフラグを固定するような関数もないと思いますが
これが通常の動作ということなんでしょうか。

自分がこの質問で書き込みしたのは以下です。
>>751 >>744 >>759

829 :nobodyさん:2007/05/10(木) 12:32:25 ID:???
通常の動作なんてものはない。
おまえが設定したとおり、おまえが書いたコードのとおりの結果が生まれるだけ

830 :nobodyさん:2007/05/10(木) 12:43:37 ID:???
というか、お前が>>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と共存できますか?

833 :nobodyさん:2007/05/10(木) 13:50:58 ID:???
Ruby使えるような人が何をアホなことを申しておられるのでしょう。

834 :nobodyさん:2007/05/10(木) 14:32:51 ID:AA4DnND/
いや、これからぱそこんをはじめたんですけど
友達にRUBYやれっていわれて・・・
簡単だからできるっていわれたんですけどぼくはPHPがやりたいんです。
でもともだちにそのことを話したらPHPなんてやめろ!っていわれて・・・
RUBYとPHPが共存できれば友達が家にきたときごまかせるのでどうにかできないでしょうか?

835 :nobodyさん:2007/05/10(木) 14:38:55 ID:???
自殺したほうがいいよ

836 :nobodyさん:2007/05/10(木) 14:57:44 ID:???
そこまで顔色を気にしなきゃ付き合えないような相手が「友達」かどうか
考え直したほうがいいよ。

837 :nobodyさん:2007/05/10(木) 15:03:51 ID:???
色んな意味で日本の心の病巣を感じるスレですね

838 ::2007/05/10(木) 15:18:45 ID:???
おれも質問していいかい?

839 :虚弱PHP:2007/05/10(木) 15:30:00 ID:???
>>828
コマンドのやり取りをダンプしてみたらどうだろう?
通常のメーラーとかと比較。

>>832
できます。JavaともPerlとも…できます。

840 :nobodyさん:2007/05/10(木) 17:14:41 ID:???
>>828
PHPコードよりむしろ、メールボックスをSELECTしたときのPermanentflagsの応答とか、
サーバ実装とか、他のIMAPクライアントで同じアカウントにログインしたときに、
問題のメールボックスに永続フラグが立てられるかをチェックしたら?

もうやってたらごめんよ。


841 :nobodyさん:2007/05/10(木) 18:10:19 ID:AA4DnND/
すいません、phpでライブチャットはつくれますか?

842 :nobodyさん:2007/05/10(木) 18:22:02 ID:???
あまりお勧めはしない


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 :nobodyさん:2007/05/10(木) 18:40:20 ID:???
マルチ乙

845 :nobodyさん:2007/05/10(木) 19:55:34 ID:???
いつも思うんだけど>>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を複数追記すれば良いわけでもないし。。

なにかヒントを教えていただけないでしょうか?

848 :nobodyさん:2007/05/10(木) 20:35:42 ID:???
GD使えばいいんじゃね?

849 :847:2007/05/10(木) 20:39:12 ID:???
>>848
GDって外部画像の結合出来るんですか?
今やってるのは、DBに登録されているカウント値を
GD生成して出力していますが・・。

850 :nobodyさん:2007/05/10(木) 20:51:29 ID:???
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:???
がたがたいってねえで調べて来いや人力検索ども!!

854 :nobodyさん:2007/05/10(木) 21:34:57 ID:???
>>853
こちらへ移動よろ
http://life8.2ch.net/utu/

855 :nobodyさん:2007/05/10(木) 21:51:44 ID:???
>>853
http://life8.2ch.net/test/read.cgi/yume/1178723880/

>>852
DirectoryIndex access.php
RedirectMatch 301 ^/. /

出された要件をそのまま書いたらこうなった。

856 :nobodyさん:2007/05/10(木) 22:33:33 ID:gqRdAlOp
>>855
そのまま書いてクリックしたら
headerでリファラにLocationされたみたいにアクセスできないwwww

857 :nobodyさん:2007/05/10(木) 22:33:49 ID:???
関数に複数の引数を渡して複数の戻り値を得たい場合


function hoge($a,$b){
return($a,$b);
}
とするとエラーになりますが、引数を配列にするしか無いですか?

858 :nobodyさん:2007/05/10(木) 22:39:06 ID:???
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
質問です、配列の中身をそのまま表示する方法ってありますか?

861 :nobodyさん:2007/05/10(木) 23:08:38 ID:???
print_r

862 :nobodyさん:2007/05/10(木) 23:09:27 ID:???
>>860
そのままってのがよくわからんが、
print_rとかvar_exportとかvar_dumpとかで構造を見ることはできる。

863 :nobodyさん:2007/05/10(木) 23:36:14 ID:???
最近の人力検索はぐだぐだうるさいのが混ざってるな
黙って質問に答えるだけでいいのに・・・

864 :nobodyさん:2007/05/10(木) 23:38:24 ID:???
>>863
全く持って同意

865 :nobodyさん:2007/05/10(木) 23:39:18 ID:???
>>863
だな

866 :nobodyさん:2007/05/10(木) 23:57:31 ID:???
自演組乙

867 :nobodyさん:2007/05/11(金) 00:00:32 ID:???
昔から、人力検索にも回答者にもならずぐだぐだうるさいだけのは混ざってる

868 :nobodyさん:2007/05/11(金) 00:26:20 ID:???
お前みたいなやつのことだな

869 :nobodyさん:2007/05/11(金) 00:32:02 ID:???
このスレの8割がそうだな

870 :nobodyさん:2007/05/11(金) 00:44:42 ID:???
どうしたん?
流したいレスがあるん?

871 :nobodyさん:2007/05/11(金) 00:49:16 ID:???
今日は大漁ですね

872 :nobodyさん:2007/05/11(金) 00:51:35 ID:???
どうして「>>843です。どなたか回答かアドバイスをお願いできませんか」と書けないんだろう。

873 :843:2007/05/11(金) 00:53:44 ID:x3XoGdaG
一応言っときますが私は843の他に書き込んでません。
ちなみにマルチでもありません。他のどこに書いているのか教えてほしいくらいです。

874 :nobodyさん:2007/05/11(金) 00:56:24 ID:???
今年始まって以来の勘違い野郎だなおまえ


875 :nobodyさん:2007/05/11(金) 04:41:54 ID:uio3xUyZ
セキュリティ対策で質問があります。

誰もがURL(自動判定)、文字列などを投稿できるサイトで
アダルトサイトなどの宣伝スパム、海外からのスパムや連続投稿などに対する有効な対策にはどのようなものがあるんでしょうか?

半角のみは禁止、連続投稿には間隔制限を設ける、リンクに飛ぶ前には確認ページを割り込ませる などは
思いつくのですが、日本語含む荒しやアダルトサイトのスパムは、やはり削除人による手作業での削除+アク禁しかないのでしょうか?

876 :nobodyさん:2007/05/11(金) 05:05:05 ID:???
>>875
captcha

877 :虚弱PHP:2007/05/11(金) 09:10:52 ID:???
>>855
全ページにインクルードでいいなら、
http://www.php.net/manual/ja/ini.core.php#ini.auto-prepend-file
でできるらしいよ。

878 :nobodyさん:2007/05/11(金) 14:07:48 ID:???
>>875
captchaはユーザ側の負担が高くなるから考えもの。
それらの対策+海外からの投稿遮断+プロキシ遮断。
これだけやれば海外国内からのスパムもほぼなくなる。
あとメジャーなスパム業者はあちこちでリスト化されてるんで、
それを使用してアクセス禁止にしたりする。

879 :nobodyさん:2007/05/11(金) 14:09:24 ID:H2TAWwyN
HTMLとJSとPHPでページを作ろうとしてます。

HTMLでonClick→JSファイルでphpファイルを読み込む→phpで処理→HTMLに表示

ってな流れにしたいわけですがどうも上手くいきません。

JSファイル
function test() {
<script type="text/javascript" src="test.php"></script>
/* ここに document.write("aaa"); って書き込んだ場合は普通に処理された */
}

phpファイル test.php
<?php
header("Content-type: application/x-javascript");
echo "document.write('aaa')";
?>

これだと表示されませんでした。

880 :nobodyさん:2007/05/11(金) 14:18:41 ID:???
そりゃサーバーサイドスクリプトだからな・・・

881 :nobodyさん:2007/05/11(金) 14:22:33 ID:???
>>879
Ajaxでおk

882 :nobodyさん:2007/05/11(金) 14:26:30 ID:???
AjaxってDBと連携できたっけ?

883 :nobodyさん:2007/05/11(金) 14:27:12 ID:H2TAWwyN
>>881
ありがとうございます。
Ajaxの方で聞いてきます。

884 :nobodyさん:2007/05/11(金) 14:29:01 ID:???
>>882
処理はPHPが行ってるんだからできるんじゃない?

885 :nobodyさん:2007/05/11(金) 14:29:21 ID:DseW4RFS
1から12月までの英語の表記を表示したいのですが数字が返ってきます。
どこをいじれば英語表記になるのでしょうか?
for ($i=0; $i<12; $i++)
{

  $date = date('F')+$i;
  echo $date. "<br>";
}

886 :nobodyさん:2007/05/11(金) 14:36:45 ID:DseW4RFS
mktimeつかったらできました。
お騒がせいたしました

887 :nobodyさん:2007/05/11(金) 16:17:35 ID:eSXQ88HV
PHPというかプログラムの作り方について教えて欲しいんですが
Functionとか作って幾つかの処理をしたい場合って
1つのFunctionに引数増やしていくのと
別Functionを作ってネストするのとどちらがスマートだと思いますか?

888 :nobodyさん:2007/05/11(金) 16:18:47 ID:???
処理の内容による

889 :nobodyさん:2007/05/11(金) 16:32:30 ID:???
1function1処理だろ。
いくつかの処理をしたいなら分けろ。

890 :nobodyさん:2007/05/11(金) 17:04:48 ID:???
>>887
何故ネスト?

891 :nobodyさん:2007/05/11(金) 18:03:39 ID:4lY6Zxsp
smartyって覚えなきゃまずいの?
phpの入門書読んでるんだけど基本の理解中にコイツが入り込んできてて
凄い邪魔くさい
データ構造とかをまず理解したいのに

892 :nobodyさん:2007/05/11(金) 18:19:17 ID:???
覚えなくていい。
そんなの真面目に覚えてるやついないから問題ない。

893 :nobodyさん:2007/05/11(金) 18:21:13 ID:???
smartyなんてクズはつかうなw

894 :nobodyさん:2007/05/11(金) 18:24:32 ID:v0UZKGOp
preg_replaceで置換されたかどうか調べるにはどうしたらいいんでしょうか。
PHP5なら$count引数があるようですが、私の環境はPHP4です。

895 :nobodyさん:2007/05/11(金) 18:29:20 ID:???
単独では無理。だから5で、count引数がついた。
preg_match使えば?

896 :nobodyさん:2007/05/11(金) 18:30:53 ID:???
>>859
そうします。
どうもありがとうございました。

897 :nobodyさん:2007/05/11(金) 18:36:34 ID:???
すいません、preg_matchで置換ってできるんでしょうか?

898 :nobodyさん:2007/05/11(金) 18:40:35 ID:???
>>897
マニュアル見れ。
置き換えはreplace系だ。

899 :nobodyさん:2007/05/11(金) 18:57:57 ID:v0UZKGOp
preg_matchで、13個マッチしたのに、$matchesに何も入らない。どうしてだろ。。。

900 :虚弱PHP:2007/05/11(金) 18:59:36 ID:???
>>891
まずくはないけど、覚えてた方がいいよね。
「データ構造とか」ってのがなんなのか気になる。

901 :nobodyさん:2007/05/11(金) 18:59:48 ID:???
パターンの書き方に問題があると思わないのか

902 :nobodyさん:2007/05/11(金) 19:51:00 ID:???
>>900
データ構造ってのは、ヤフーのジャンル>小ジャンルみたいな階層構造の
ことで、今使ってる本に載ってるんです。DBと連動して自動的に一覧を生成する、みたいな。
自分の頭で考えてもできそうなんですけど、一応本を読んでみようとすると、
「これっているのかよ?」って感じのSmartyが組み合わされてるんで妙にソースが
分断されて逆に判りにくいっていう…
無視して仕様部分だけ参考に自分で作ることにしました
PEARは役に立ちそうだから覚えます。。

>>892-893
ありがとうです

903 :nobodyさん:2007/05/11(金) 20:59:33 ID:???
あるひとつのもののつかいかたを覚えるより
フレームワークというの使い方を覚えるようになればなんだっていいんだよ最初は

904 :nobodyさん:2007/05/11(金) 21:17:09 ID:???
Smartyが使われてると分かりにくいのか?
使わなくても結局モデル(各処理)の下にPHP変数加えたHTML書くんじゃね?
echo '<p>なんたら</p>'; とかの方がいいってことか?

905 :nobodyさん:2007/05/11(金) 21:24:54 ID:???
>>904
普通にHTML書くんならEOFで十分じゃね?

906 :nobodyさん:2007/05/11(金) 21:28:02 ID:???
皆PHP使うときどんな開発環境でやってるよ?

907 :nobodyさん:2007/05/11(金) 21:29:33 ID:???
藻前らの作るオナニーページにMVCは不要。

908 :nobodyさん:2007/05/11(金) 21:35:05 ID:0VNNrODg
SQLITE で、主キーをNULLにして作ったデータベースがあるのですが、
主キーを通し番号にしたいですが、やり方が分かりません。

UPDDATEで変更しようにも、WHEREでレコードを指定できないため、
途方に暮れています。
どなたかよろしくお願い致します。

PHPのバージョンは、5.0.4です。

909 :いつもの人 ◆3Htx6mDqZs :2007/05/11(金) 21:43:41 ID:???
integer primary key
もしくは
SELECT * FROM my_table WHERE _ROWID_=10

910 :nobodyさん:2007/05/11(金) 21:45:36 ID:???
楽天がphp+Mysql+Smartyらしいんだけど、やっぱりMVCがっつりやろうと
したら必要なのかね>Smarty 

911 :908:2007/05/11(金) 21:49:51 ID:0VNNrODg
>>909
ROWIDで指定すればいいのですね!
できました、ありがとうございました。

912 :nobodyさん:2007/05/11(金) 21:51:15 ID:???
>>910
そりゃMVCやろうとしてVが無かったらMVCじゃないだろ

913 :nobodyさん:2007/05/11(金) 22:19:31 ID:DseW4RFS
ハローPHP


を表示するだけの機能を搭載したフレームワークを勉強として作りたいのですが

class hello
{
 var hello()
 function hello()
 {
  echo "ハローPHP";
 }
{

これでうまくうごきません。
どこを手直ししたらよろしいのでしょうか?

914 :nobodyさん:2007/05/11(金) 22:21:40 ID:???
new hello()

915 :nobodyさん:2007/05/11(金) 22:21:42 ID:???
var hello() の部分

916 :nobodyさん:2007/05/11(金) 22:23:56 ID:???
class hello
{
function __construct()
{
echo "Hello PHP";
}
}

917 :nobodyさん:2007/05/11(金) 22:43:01 ID:???
フレームワークなんだから一応MVCで。
class Controller{
var $model;
function controller() {
$this->model = new Model;
}
function draw() {
new View($this->model->get_hello());
}
}
class Model{
function Model() {}
function get_hello() {
return 'ハローPHP';
}
}
class View{
function View($arg){
echo '<p>'.$arg.'</p>';
}
}
$fw=new Controller;
$fw->draw();

918 :nobodyさん:2007/05/11(金) 23:25:32 ID:15XrFkFs
$str = "hello";
$str = eregi_replace("ell","",$str);
echo $str;

この場合、「ho」が出力されますが、
この両サイドに英数字が有るばあいは置き換えたくないのです。

$str[1] = "ell";
$str[2] = "hello";
$str[3] = "[ello]";
$str[4] = "[hello]";

この場合に

str1 → 空白
str2 → hello
str3 → []
str4 → [hello]

このようにしたいのですが、どうすれば良いのでしょうか?

919 :nobodyさん:2007/05/11(金) 23:31:37 ID:???
>>918
おれもそれ知りたい。回答おながい

920 :nobodyさん:2007/05/11(金) 23:34:23 ID:???
知りたいならIDだしな

921 :nobodyさん:2007/05/11(金) 23:38:17 ID:DseW4RFS
回答ありがとうございます。
僕にはむずかしくて理解できませんでした。
また入門書からやりなおします。

922 :nobodyさん:2007/05/11(金) 23:43:54 ID:???
>>918
サッパリ意味がわからないのだが、
他のやつが理解してるところを見ると俺の脳ミソが悪いのか?

というわけで意味がいまいちつかめないので適当回答。
いきなり置き換えないで、条件判定してから置き換えする。

923 :nobodyさん:2007/05/11(金) 23:49:49 ID:???
str3がなぜ[]なのか、わからんなw

924 :nobodyさん:2007/05/11(金) 23:59:40 ID:???
>>918
preg_replace('/(?<![a-zA-Z0-9])ell(?![a-zA-Z0-9])|(?<![a-zA-Z0-9])ell(?=[a-zA-Z0-9])|(?<=[a-zA-Z0-9])ell(?![a-zA-Z0-9])/', '', $dest);

汚いがな

925 :nobodyさん:2007/05/12(土) 00:05:56 ID:???
おとなしく条件文はさんだほうが可読性が増すんじゃね

926 :nobodyさん:2007/05/12(土) 00:07:15 ID:???
すいません。
ホント下らない質問なのですが、incude関数はファイルを読み込む場合
include "http://localhost/test.php";
じゃなく、
include "/foo/var/test.php";
とやるのが正しい書き方でしょうか。。


927 :nobodyさん:2007/05/12(土) 00:11:23 ID:???
いいえ。

928 :nobodyさん:2007/05/12(土) 00:11:36 ID:???
>>926
includeにURIなんか指定するな
相対パスか絶対パスかは好きにしろ

929 :nobodyさん:2007/05/12(土) 00:17:38 ID:???
プログラミングは動けばいいんだよ


930 :nobodyさん:2007/05/12(土) 00:21:11 ID:???
まぁ細かいコーディングに最初は拘らないほうが吉かもね。
なかなか進まないから。

931 :926:2007/05/12(土) 00:21:38 ID:???
みなさんレスありがとうございます。
>>928
やはりそうですか。
どおりでURIで指定してると読み込めないことがあるな、と思ってました。。

932 :nobodyさん:2007/05/12(土) 00:35:22 ID:???
>>831
マニュアルのincludeの例16-7 HTTP経由のinclude()付近読めばいいんじゃね。

933 :nobodyさん:2007/05/12(土) 00:43:56 ID:tRCRbJ5X
すみません。直接PHPコーディングとは関係ないんですが、求人案件に
PHPのが何件かあるので、応募してみようか迷っているんですが、携帯の絵文字が
むずかしいみたいですね。私は、携帯のプログラムを組んだことないから
できれば組みたくないんですが、携帯のプログラムは避けてとおれないのですかね?

場合によっては、.NET案件に応募しようかとおもいます。

934 :nobodyさん:2007/05/12(土) 00:48:16 ID:???
>>933
別にー
やらん人は一生やらんよ >携帯向け

935 :nobodyさん:2007/05/12(土) 00:50:51 ID:???
「組んだことないから」で避けるような人は
プログラマなんてやめた方がいいと思うよ。
組んだことがあって面倒だったから避ける、ならまだしも。

936 :nobodyさん:2007/05/12(土) 00:51:25 ID:???
「組んだことないから組んでみたい」な俺は?

937 :nobodyさん:2007/05/12(土) 00:54:07 ID:???
>>935
君は趣味と仕事の境界線がわかってないね。
現実がわかってない。

938 :933:2007/05/12(土) 01:00:54 ID:???
>>934ありがとうございます!そんなんなら、応募してみます!
勇気がでました。ありがとうございました。

>>935
いや。他の言語開発の際、めちゃくちゃ振り回されて、もうこりごりなんですよ。
一応、やりました。C++で。。

939 :nobodyさん:2007/05/12(土) 01:03:16 ID:???
>>937
>>935じゃねぇけど、やったことないから駄目ですは駄目だろ
どういうところで働いてんだ?

940 :nobodyさん:2007/05/12(土) 01:11:37 ID:???
自分の得意分野で金がとれるならそれでいいじゃん
倫理的な部分はいらない。金になるかならないか、それだけでいいじゃん

941 :nobodyさん:2007/05/12(土) 01:13:12 ID:???
責任所在にもよるな
学生の頃、知り合いの運送会社の鯖を遊びで感覚管理して
数日メール鯖止まった時はヤクザみたいな連中が家まできた

942 :nobodyさん:2007/05/12(土) 01:18:17 ID:???
>>937はSOHOかなんかか?

943 :nobodyさん:2007/05/12(土) 01:25:45 ID:???
>>939
いやーそういう意図でいったんじゃないんだよ。
>「組んだことないから」で避けるような人は
これにたいしてのレスだったんだが、
避けないで無理に受けて、返って迷惑かかったら本末転倒だということを言いたかった訳だ。

944 :nobodyさん:2007/05/12(土) 01:33:01 ID:???
いってる意味がわかりません。
言い訳はみにくいよ

945 :nobodyさん:2007/05/12(土) 01:34:01 ID:???
オブジェクトの中のオブジェクトを一発で多次元配列に変換するいい方法はありませんか?
$hoge = (array)$hoge;
だと一番上しか変換してくれないようなので。

946 :nobodyさん:2007/05/12(土) 01:34:47 ID:???
ID
ID
ID
ID
ID

947 :nobodyさん:2007/05/12(土) 01:34:59 ID:???
文字列1を1文字ずつに分解する関数作ったんだが
何かいい関数名ないかな・・・

948 :nobodyさん:2007/05/12(土) 01:36:52 ID:???
>>947
StringsResolvesOne

949 :nobodyさん:2007/05/12(土) 01:38:42 ID:???
>>948
略してstr_resoneにするわ、サンクス

950 :nobodyさん:2007/05/12(土) 01:38:57 ID:gNRiELWw
失礼w

オブジェクトの中のオブジェクトを一発で多次元配列に変換するいい方法はありませんか?
$hoge = (array)$hoge;
だと一番上しか変換してくれないようなので。

#でも回線不安定だからすぐID変わるよw

951 :nobodyさん:2007/05/12(土) 01:47:07 ID:???
get_object_vars

952 :nobodyさん:2007/05/12(土) 01:52:58 ID:???
$str="hoge";
echo $str[1];

953 :nobodyさん:2007/05/12(土) 02:18:36 ID:gNRiELWw
ありがとうございます。

$hoge = simplexml_load_file($url) or die("error");
$hoge = get_object_vars($hoge);
var_dump($hoge);

やっぱりobjectが残ってしまうようです。

954 :nobodyさん:2007/05/12(土) 02:22:13 ID:???
エラーのとき
die();かexit();か皆どっち使う?

955 :nobodyさん:2007/05/12(土) 02:24:22 ID:???
die();

一文字短いから。

956 :nobodyさん:2007/05/12(土) 02:24:23 ID:???
どっちも使わん。特にdieは嫌い。

957 :nobodyさん:2007/05/12(土) 02:27:50 ID:???
>>953
ああ、だめか。
でもあなたの必要とするsimplexml_load_fileのobjectのアレイ化って
manual のUser Contributed Notesに書いてあるじゃん。

958 :nobodyさん:2007/05/12(土) 02:57:24 ID:SOvCLEsb
すいません、php5.2.2でmysql5.1を使いたいのですが、
phpinfoでmysqlの欄が表示されません。
php.iniでphp_mysql.dllの行のコメントは取り除いております。
どなたか解決方法ご存知でしたらご教授願います

959 :nobodyさん:2007/05/12(土) 02:58:32 ID:???
>>958
Configuration File (php.ini) Pathが、編集したphp.iniになってる?

960 :nobodyさん:2007/05/12(土) 03:03:18 ID:???
はい、なってます。
apacheの設定ファイルにphpディレクトリのphp.iniを読み込むようにしてます。


961 :nobodyさん:2007/05/12(土) 03:06:15 ID:???
Apache再起動してみた?

962 :nobodyさん:2007/05/12(土) 03:06:18 ID:???
パス通してないんだろ

963 :nobodyさん:2007/05/12(土) 03:16:20 ID:SOvCLEsb
phpのインストールディレクトリへパスとおしてOSを再起動したら動きました。
問題はlibmysql.dllでした。
深夜にもかかわらず、助けていただきありがとうございました。

964 :nobodyさん:2007/05/12(土) 03:22:52 ID:???
良かった良かった

965 :nobodyさん:2007/05/12(土) 03:28:28 ID:???
extension_dirの指定が相対でパスが通ってなかったのが原因だろうな
libmysql.dllは関係ないはず

966 :953:2007/05/12(土) 03:36:04 ID:gNRiELWw
公式のマニュアルじゃないマニュアル見てたんでUser Contributed Notesに気づきませんでした。

User Contributed Notesのスクリプトで問題なく配列に納めることができました。
ありがとうございました。

967 :nobodyさん:2007/05/12(土) 03:38:43 ID:???
ttp://zapanet.info/phpdoc/ref.mysql.html

968 :nobodyさん:2007/05/12(土) 03:40:34 ID:???
非公式のマニュアル掲載サイトへはどんどんクレームいれてつぶしていきやしょう

969 :nobodyさん:2007/05/12(土) 04:14:12 ID:???
非公式のマニュアルって、軽さから昔は使ってたけど
今じゃ本家の方だな。見やすいし。

大体、古いまま放置してるの多すぎだろ・・・非公式・・・

970 :nobodyさん:2007/05/12(土) 04:17:13 ID:???
やっぱり公式のじゃないと信用できなくて怖い

971 :nobodyさん:2007/05/12(土) 04:24:25 ID:X8KuBgRV
日に500〜1000もググから現れては広告踏んでくれて
いい小遣いになってるので更新しなくてもいいの思うこのごろ。


972 :nobodyさん:2007/05/12(土) 04:33:26 ID:???
古いだの信用できないだのはともかく、なんでわざわざ潰さないといけないんだよ。
ていうかヘルプファイルみんなDLしてないの?

973 :nobodyさん:2007/05/12(土) 05:12:19 ID:???
User Notesがないマヌアルなんて

974 :nobodyさん:2007/05/12(土) 05:16:24 ID:???
UserNotesこそ信用できない俺ガイル

975 :nobodyさん:2007/05/12(土) 08:22:34 ID:uqNjkBgI
PHPMyAdminで外部キーを作成するにはどうしたらいいですか?
DBをINNODBにしてもそれらしき項目があらわれません。
MySQLはMySQL 4.0.26です

976 :nobodyさん:2007/05/12(土) 12:03:39 ID:???
素人はXAMPPでも使っておけ

977 :nobodyさん:2007/05/12(土) 12:08:19 ID:IYoFhhU9
空メシステム作りたいんですが、
まず何から勉強すれば良いですか?

また、空メが使えるレンタル鯖って少ないですか?

978 :nobodyさん:2007/05/12(土) 12:18:56 ID:???
まずきみはwinのパソコンでローカルでサーバとメールサーバをたてることからはじめろ
話はそれからだ

979 :nobodyさん:2007/05/12(土) 12:20:44 ID:IYoFhhU9
>>978
メールサーバーは何でもおk?
「自宅鯖で行こう」サイトではArGoMailが推奨されてるんだが・・・
http://www.y-kit.jp/saba/

980 :nobodyさん:2007/05/12(土) 12:22:59 ID:X8KuBgRV
また踏み台が増えそうでうれしい^^v

981 :nobodyさん:2007/05/12(土) 12:29:01 ID:???
>>979
xmailがおすすめ

982 :nobodyさん:2007/05/12(土) 12:33:20 ID:S9RD2o7R
ずぶの素人です。何から手つければ良いすか?(OSはW2k)
きのう軽い気持ちで最新版のApacheインスコとphpダウソしたけど、
なんかphp関連サイトで旧ver.のセットアップ手順を参考に.iniファイルとか
いぢってみたけどうまくいかず(かなり無謀だなと思った)結局アンインスコ。
XAMPPも試してインスコして、.dllふぁいるが見つからないとか表示が出たものの、
一応apacheとか動いてて、ブラウザでlocalhostも見れるし、
でためしにphpエディタで簡単な.phpふぁいる(echoで表示するやつ)を作ったけど
ファイルの保存のしかたとか場所が悪いのかなんか知らんけど
うまくゆかずこれも今はアンインスコ…
そんなんできのう朝から晩まで1日費やしたんですが、
私はこれからどうすればいいですか?

983 :nobodyさん:2007/05/12(土) 12:35:34 ID:IYoFhhU9
>>981
有難う御座います
DLしてみたところ、バイナリでした

どのように使うか参考になるサイトか何かあれば教えてもらってもいいですか?

984 :nobodyさん:2007/05/12(土) 12:39:02 ID:???
なんでもかんでも聞くなクズ

985 :nobodyさん:2007/05/12(土) 12:39:33 ID:IYoFhhU9
>>984
いやいや、こっちだって探してるよ

986 :nobodyさん:2007/05/12(土) 12:39:52 ID:???
>>982
あきらめろ

987 :nobodyさん:2007/05/12(土) 12:42:26 ID:Cpiw5Nv2
>>981
xmailダウンロードしてみたけど、イマイチ使い方がわからんね

988 :nobodyさん:2007/05/12(土) 12:48:46 ID:???
むりにつかわなくてもいいけどwinで空メやるならxmailしか選択肢がなかったはず

989 :nobodyさん:2007/05/12(土) 12:51:08 ID:X8KuBgRV
ドザって自分で何もしらべないのだな・・・・
昔どこかのスレで、「自分でやって失敗すると嫌なので誰か試してくれ」とかほざいてたドザいたな。

990 :nobodyさん:2007/05/12(土) 12:54:00 ID:???
ttp://www.redout.net/data/osietekun.html

991 :nobodyさん:2007/05/12(土) 12:55:47 ID:IYoFhhU9
>>988
MySQL+PHPMyAdminみたいに
xmail+XMailCFGって考えればおk?

CGIで動かすからCGIの環境作らなくてはorz

992 :nobodyさん:2007/05/12(土) 13:02:41 ID:???
>>982
とりえあず公式マニュアル読むべし

993 :nobodyさん:2007/05/12(土) 13:05:18 ID:???
べし

994 :nobodyさん:2007/05/12(土) 13:06:50 ID:???
↑蔑視

995 :nobodyさん:2007/05/12(土) 14:03:34 ID:???
punycodeのエンコード・デコードが
簡単なライブラリなかとでしょうか。

996 :nobodyさん:2007/05/12(土) 14:33:45 ID:???
nai

997 :nobodyさん:2007/05/12(土) 15:52:19 ID:???
998が次スレを立てる
999が次スレの誘導
1000は俺がとる

998 :nobodyさん:2007/05/12(土) 16:46:21 ID:???
立てたよ。

999 :nobodyさん:2007/05/12(土) 16:46:42 ID:???
で、誘導。

【PHP】下らねぇ質問はここに書き込みやがれ 46
http://pc11.2ch.net/test/read.cgi/php/1178955837/

1000 :999:2007/05/12(土) 16:47:13 ID:???
1000も俺が取ってやるw

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

240 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)