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

このエントリーをはてなブックマークに追加
1nobodyさん
まず読め→【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カテゴリ)の各スレで
2nobodyさん: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/
3nobodyさん: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プログラムとして実行された結果になる。
4nobodyさん: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に保存?
 → 好きにしてください
5nobodyさん: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が出て、メールアドレスまたはパスワードが間違っている旨が…
どうすればちゃんと値を渡せるでしょうか…
6nobodyさん: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メソッドでデータを送ります。
なぜでしょうか?
76:2007/04/27(金) 10:16:44 ID:w1Tyd60P
ID出し忘れました。
8nobodyさん:2007/04/27(金) 10:23:54 ID:w1Tyd60P
自己解決しますた
9nobodyさん:2007/04/27(金) 10:53:43 ID:???
( ´_ゝ`)
10nobodyさん:2007/04/27(金) 14:59:33 ID:???
var_dump($hoge)
の結果をファイルに保存したいのですがどのようにすれいいでしょうか?

$fp = fopen('hoge.dat', 'w');
fwrite($fp, var_dump($hoge));
こんなイメージです
11nobodyさん:2007/04/27(金) 15:23:09 ID:???
>>10
ob_start( )
で出力をバッファにためる
バッファを文字列に出力
文字列を書き込む
12nobodyさん:2007/04/27(金) 16:33:36 ID:???
>>10-11
関数があるよ
var_exportで調べてみると幸せになれる
13nobodyさん: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];
14nobodyさん:2007/04/27(金) 18:42:22 ID:???
セッションってさ、
セッションIDをクッキーで保存して、
サーバーがそのIDを参照に値を返すんだよな?

クッキー使えないとセッションつかえねーじゃん!
15nobodyさん:2007/04/27(金) 18:44:04 ID:???
>>6
自己解決したならちゃんと書くことあるだろ
16nobodyさん:2007/04/27(金) 19:00:50 ID:???
>>14
URLベースとCookieベースがあるよ
17nobodyさん:2007/04/27(金) 19:01:34 ID:???
追記。

だがPCコンテンツを実装するなら推奨はURLベース
理由はセッションハイジャックでググればわかるんじゃないかな
18nobodyさん:2007/04/27(金) 19:01:34 ID:???
追記。

だがPCコンテンツを実装するなら推奨はURLベース
理由はセッションハイジャックでググればわかるんじゃないかな
19nobodyさん:2007/04/27(金) 19:02:02 ID:???
連続POSTすいませんorz
20nobodyさん:2007/04/27(金) 19:20:44 ID:???
>>17
URLの方が簡単にID見られるけど
21nobodyさん:2007/04/27(金) 19:23:50 ID:???
>>17
逆でしょw
22nobodyさん:2007/04/27(金) 19:26:03 ID:???
ああ、ただの書き間違えだ。
PCはCookieベース推奨な
23nobodyさん:2007/04/27(金) 19:33:47 ID:???
URLベースにして、毎回ID変えたらどうなのよ
それならハイジャックされないでしょ

それかIPを暗号化したものをIDにしてみたり
24nobodyさん:2007/04/27(金) 19:35:21 ID:???
$foo['14']でこの14の数字を抜き出したいんですがどうすればいいでしょうか??
$foo['14']に入っている値じゃなくて$foo['14']から14という数字を抜き出したいんです
25nobodyさん:2007/04/27(金) 19:36:20 ID:???
>>13
こっから好きなのを選べ
ttp://www.php.net/manual/ja/ref.array.php

上から二番目とかいいかもな
次からはマニュアル読むか、関数逆引き本でも買えよ
26nobodyさん:2007/04/27(金) 19:36:42 ID:???
>>24
foreach
27nobodyさん:2007/04/27(金) 19:37:14 ID:???
>>24
>>25を見ろ
ちなみにそこの数字はキーって言う
28虚弱PHP:2007/04/27(金) 19:40:32 ID:???
>>24
質問が不明確だね。
値からキーを検索するなら、array_search()。
29nobodyさん:2007/04/27(金) 19:46:02 ID:???
>>24
マニュアルの配列関数のところから好きなの選んで使え
というか質問する前にマニュアル見てそれでも分からんかったら質問しろ
30nobodyさん:2007/04/27(金) 19:46:07 ID:???
>>25さん
ありがとうです!
ホレました
31nobodyさん:2007/04/27(金) 22:39:05 ID:8D0fnv57
>>23
セッションを使った認証のときの話だけど
ログインしたときのIPアドレスをセッションに保存しといて
IP変わったらまたログイン画面に飛ばしてるけど、あんまり意味ない?
32nobodyさん: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はカラッポです。
33nobodyさん:2007/04/28(土) 00:41:34 ID:???
34nobodyさん:2007/04/28(土) 00:43:40 ID:???
>>31
・環境によっては意図せずにリクエストごとにIPが変わる可能性がある
・同じNAT内だったりでIPが同じ場合は無意味
を考慮したうえでご利用ください。
35nobodyさん:2007/04/28(土) 00:44:49 ID:???
>>32
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc11.2ch.net/test/read.cgi/php/1118799352/
36nobodyさん:2007/04/28(土) 02:43:46 ID:???
>>33
意味わからん
答えは$smarty->fetch();
3732:2007/04/28(土) 09:26:10 ID:HnvRPjiH
>>36
やりたいことができました。 どうもありがとうございました。
38nobodyさん:2007/04/28(土) 10:57:40 ID:???
おまえら
.htaccessのこと何てよんでる?
「ドットエイチティーアクセス」って読んでたんだけど長くね?
もっと短い言い方ないの?
39nobodyさん:2007/04/28(土) 11:00:02 ID:???
「ハタッセス」
40nobodyさん:2007/04/28(土) 11:03:46 ID:???
>>39
ダサくね?それ
「エイチ・タクセス」のがよくね?
41nobodyさん:2007/04/28(土) 11:06:36 ID:???
分散設定ファイルでいいだろ
42nobodyさん:2007/04/28(土) 11:47:49 ID:???
あのファイル
43nobodyさん:2007/04/28(土) 12:19:47 ID:???
単にエイチティーアクセスだろ。ドットなんていらん。
っていうかスレ違いだ。
44nobodyさん:2007/04/28(土) 12:24:00 ID:???
いいだろここ雑談スレじゃん

え?なんだっrわなにすんだやめt
45nobodyさん:2007/04/28(土) 13:59:17 ID:???
サイトのページ(4つくらい)を同じphpファイルに書いてそれぞれ別のURLで表示させたいんですけど
書き方を教えてください
4645:2007/04/28(土) 14:00:15 ID:RKMxVa9I
ID表示
47nobodyさん: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;
}
4845:2007/04/28(土) 16:07:29 ID:RKMxVa9I
>>47
それなぜかうまく動きませんでしたローカルだと動くんですが・・・

switch($hoge){
case 1:
 echo <<<PAGE
 ページ1の内容
 PAGE;
 break;
default:
 echo <<<INDEX
 インデックスの内容
 INDEX;
 break;
}

こう書きました。
49nobodyさん:2007/04/28(土) 16:12:13 ID:???
ほう、それで?
50nobodyさん:2007/04/28(土) 16:13:28 ID:???
public static function
という書き順と、
static public function
という書き順、
どちらが一般的ですか?
51nobodyさん:2007/04/28(土) 16:16:14 ID:???
52nobodyさん:2007/04/28(土) 17:10:24 ID:???
public static function ですかね。あざーす。
53nobodyさん:2007/04/28(土) 17:58:04 ID:jQarZsxI
mb_convert_kana関数を使おうとしたんですが、undefined function と出てしまいました。
4.3.7バージョンで、$string =mb_convert_kana($string,'a');
って書いてるんですが。
54nobodyさん:2007/04/28(土) 18:02:39 ID:jQarZsxI
stringって書いたのは文字列って意味じゃないです。
ちょっと勢いで書いちゃいましたが。数字を入れています。
55nobodyさん:2007/04/28(土) 18:14:07 ID:???
>>53
mb系が無いんじゃないの?phpinfoで確認して無いなら入れれ
5631:2007/04/28(土) 19:09:02 ID:tgkVshtz
>>同じNAT内だったりでIPが同じ場合は無意味
こっちはわかるけど、それはもう「IDとパスを盗まれたら無意味」というのとそう変わらないと思う。
ログアウトの機能を持たせて、使う人に気をつけてもらうしかないレベルと思うけど。

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

というか、そんなシステムでネットするの禁止。早くIPV6にして全部固定IPにしてくれ。
57nobodyさん:2007/04/28(土) 19:22:29 ID:???
>>56
とある携帯網。
58nobodyさん:2007/04/28(土) 19:36:15 ID:jQarZsxI
>>55
いれるというのはphp.iniの設定を変えるということでしょうか。
教えてください。
5958:2007/04/28(土) 19:46:53 ID:???
自己解決しますた。
60nobodyさん:2007/04/28(土) 19:48:43 ID:???
>>58
php.iniのmbstringの設定を変えると良い
たしか、windowsならコメントアウトさせるだけでいけた、リナ糞はしらん
61nobodyさん:2007/04/28(土) 20:22:44 ID:???
>>56
マルチパスルーティング
62nobodyさん:2007/04/28(土) 23:41:34 ID:hsKT4F0A
標準出力(の出力先)を変数にすることってできますか?(日本語が変かな?)
63nobodyさん:2007/04/28(土) 23:44:10 ID:???
64nobodyさん:2007/04/29(日) 00:58:57 ID:D3V82o9R
変数に入れるとかじゃなくれ?
65nobodyさん:2007/04/29(日) 01:02:23 ID:???
その日本語は変です。
66nobodyさん:2007/04/29(日) 02:23:14 ID:WQ/2F+8H
セッションは出来るみたいだけどクッキーって配列には出来ないの?
67nobodyさん:2007/04/29(日) 02:47:41 ID:???
できる
68nobodyさん:2007/04/29(日) 06:17:29 ID:???
>>66
$_COOKIE
69nobodyさん:2007/04/29(日) 09:55:27 ID:/kWfCH0w
突然ですが、お願いします教えてください。

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

あいうえお
かきくけこ

という表示のさせ方を、セルで分割せずにするにはどうすればいいですか?
まだ始めたばかりの素人なんで、まったく分かりません。
どうかよろしくお願いします。
70nobodyさん:2007/04/29(日) 10:49:36 ID:???
レン鯖でPHPから送信したメールがあり、そのメールが届いたかどうか(バウンス?)を確認することは可能でしょうか?
できたら方法も知りたいです。

スパムに利用されるから確認できないということもあり得ますかね?
71nobodyさん:2007/04/29(日) 11:43:26 ID:???
>>70
ヘッダによる。いずれにせよID出そう。


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

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

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

明鏡国語辞典 (C) Taishukan 2002-2006
74nobodyさん:2007/04/29(日) 14:25:52 ID:???
PHPてコンパイルしたほうが早いの?
それともただ中身見えなくするだけ?
includeに使うfunctionファイルだけコンパイルしてみるのってありかな?
7574:2007/04/29(日) 14:34:16 ID:???
ここで聞いてもわかるやついないか。
プログラム板逝くか
76nobodyさん:2007/04/29(日) 14:36:06 ID:???
そもそもPHPはコンパイルするもんじゃないだろ
ソースはサーバに上げれば見えなくなるだろ
7774:2007/04/29(日) 14:48:09 ID:???
>>76
仕事で納期したりすると客に内容バレしたりしない?
オリジナルのfunction詰め合わせが相手に見られるのも何かヤだし
78nobodyさん:2007/04/29(日) 14:50:50 ID:???
ID出したら教えてあげる
79nobodyさん:2007/04/29(日) 14:52:24 ID:???
>>77
それなら速度とか気にせずコンパイルすればいいんじゃね
実際、コンパイルする前と後じゃどんくらい差が出るんだろう
80nobodyさん:2007/04/29(日) 15:04:47 ID:???
74は学生ですね
8174:2007/04/29(日) 15:06:15 ID:ZLR/bMbw
>>80
今年卒業しました><;
一応教習生という学生wwwwww



つまりニート
82nobodyさん:2007/04/29(日) 15:11:22 ID:???
>>79
普通はコンパイルした方が早い(と言うかしなきゃ動かない)が
PHPの場合元々さらで読むからコンパイルすると逆に遅くなるの?
83nobodyさん:2007/04/29(日) 15:12:10 ID:zGQc/Sec
mb_send_mailでメールを送る前にhtmlspecialcharをかましたほうがいいでしょうか?
84nobodyさん:2007/04/29(日) 15:38:28 ID:???
Why?
85nobodyさん:2007/04/29(日) 15:38:48 ID:???
>>74
"php インタプリタ"
"php 難読化"
でそれぞれググれ
86nobodyさん:2007/04/29(日) 15:40:27 ID:???
>>74
ZendGardとかのことか?

下を読めば分かる。読んで分からないなら別の職業を探せ。
http://www.zend.co.jp/products/guard/
87nobodyさん:2007/04/29(日) 16:08:43 ID:ZLR/bMbw
>>86
読んでも分からない以前に三行以上読めない
88nobodyさん:2007/04/29(日) 16:11:35 ID:???
じゃあマニュアルや参考書を読むなんて無理じゃん
というか途中からID出してるけど本当に本物か?
ネタ臭がキツイわ
89nobodyさん:2007/04/29(日) 19:07:50 ID:???
バイナリ化とコンパイルは大分意味が違わね?
90nobodyさん:2007/04/29(日) 19:13:05 ID:???
>>82
コードキャッシュとしてコンパイル済み中間コードで
保持する仕組みなら速度は速くなるけどな。
そんな形式で配布・インストールできるシステムは知らん。
一般のバイナリ化の目的は暗号化で速度は低下する。
暗号化+コードキャッシュの組み合わせなら問題なくなるが。
91nobodyさん:2007/04/29(日) 19:20:54 ID:???
いちいちコンパイルするのめんどいやん
92nobodyさん:2007/04/29(日) 21:27:03 ID:???
配布・インストール時にパッケージとして
バイナリ化する程度ならほとんど変わらんよ
93nobodyさん:2007/04/29(日) 22:52:16 ID:o45ltyhE
PHPってインタプリタ言語じゃなくて、自動的にコンパイルされるので
ユーザーは意識しなくてすむ、っていうんじゃなかったっけ?

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

ところでだれか
「PHPプログラマの技量を知りたい時に書いてもらうスクリプト」
っていうのどういうお題だったかわかるサイト知りませんか?
元の、なんとかっていう外人さん?のブログはリンク切れ起こしててもう見れないんですけど。
94nobodyさん:2007/04/29(日) 22:58:32 ID:???
もうちょっと中身抑えてから書けよ
95nobodyさん:2007/04/29(日) 23:04:58 ID:???
>>90>>93
>86のリンク先に答えが載っているんだが。
96nobodyさん:2007/04/29(日) 23:30:55 ID:???
>>86のサンプル画像で使ってるエディタが何気にサクラエディタだ
97nobodyさん:2007/04/30(月) 00:00:29 ID:???
そういやみんなはエディタ何つかっとるの?

ウチではvivi -> terapad -> サクラ
会社だと強制秀丸、俺の場合
秀丸は補完機能がないのがなぁ
98nobodyさん:2007/04/30(月) 01:45:32 ID:???
>97
β版が使えるなら 結構前から補完機能ついてますよ
(2006/11/28 6.50b1 より/今は7.00b1)
会社方針でβはダメかも ですが
99nobodyさん:2007/04/30(月) 01:46:02 ID:???
訂正
7.00b2
100nobodyさん:2007/04/30(月) 03:14:13 ID:jiCOQ4J+
新規質問です。
DBではなくファイルベースのPHP構築してますが、
間違ったデータの上書きという不注意への対策は、
通常どのように行うべきなんですか?
101nobodyさん:2007/04/30(月) 03:19:32 ID:???
if($hoge = NULL){
write}else{
qawsedrftgyhujikolp};
102nobodyさん:2007/04/30(月) 04:01:36 ID:???
>>100
世代管理しておけばいんじゃね
103nobodyさん:2007/04/30(月) 06:57:32 ID:???
ダウンロード販売サービスを頼まれたんだけど、osCommerce系みたいなのでダウンロード販売サイト構築できるものってある?
言語は出来ればPHPが良いのですが。
感覚的にはベクターのPCショップみたいな感覚です。

回答キボソ
104nobodyさん:2007/04/30(月) 07:01:16 ID:???
このスレは自分で作ることを前提に質問するものです。
よって探してますはスレ違いなので、
http://pc11.2ch.net/test/read.cgi/hp/1166794984/
こちらにでもいってください。
105nobodyさん:2007/04/30(月) 07:01:43 ID:2a6Y0d07
switch文のdefaultにheaderでどこかに飛ばす処理を書きました。
このheaderの次にexitは必要でしょうか?

いまはこのように書いてます。
header("Location: $url);
//ここにexit;をいれるべきでしょうか?
break;
106nobodyさん:2007/04/30(月) 07:05:46 ID:???
どっちでもいいです
107nobodyさん:2007/04/30(月) 08:07:33 ID:qLOaqEyD
携帯サイト作るとき、リンク先に移動する際に
別ページでリファラー書き換えてヘッダーで飛ばしたいのですが
どのように書き換えれば良いのでしょうか?
108nobodyさん:2007/04/30(月) 10:39:17 ID:2a6Y0d07
25歳。去年までニートでしたが、今年は独立したいと考えてます。
PHPスクリプトを書く仕事をしている人の一週間のスケジュールをおしえてください。
できれば具体的に教えていただけると助かります。
109nobodyさん:2007/04/30(月) 10:42:37 ID:???
>>108
ここは人生相談スレではありません。
SOHOスレあたりにいって聞いてきてください。
110nobodyさん:2007/04/30(月) 11:11:41 ID:???
すいませんでした(><)移動してきます
111nobodyさん:2007/04/30(月) 11:14:12 ID:???
>>107
なんかすごい釣りにしか見えないんだが

リファラを任意に書き換えるのは無理だぞ
狭い意味でいっているならmod_rewriteとかの範疇かと
112nobodyさん:2007/04/30(月) 11:15:40 ID:???
リファラを書き換えはできるだろw
113nobodyさん:2007/04/30(月) 11:20:26 ID:???
>>108
月: らき☆すたを2度見したせいで朝会に遅れる
火: 喫煙室で営業さんの愚痴をきいてあげる
水: めずらしく仕事がノッてしまい終電にまにあわず漫喫
木: デザイナの女の子を理論攻めして泣かす
金: 帰ろうと思って支度をしていると、ボスに笑顔で呼ばれる
114nobodyさん:2007/04/30(月) 11:27:46 ID:???
できないっすよ、偽装ならできるけど
115nobodyさん:2007/04/30(月) 11:29:01 ID:???
パケット書き換えたらできるじゃん
116nobodyさん:2007/04/30(月) 11:36:04 ID:???
偽装じゃん
117nobodyさん:2007/04/30(月) 11:38:33 ID:???
つかパケット書き換えってなんだよw
118nobodyさん:2007/04/30(月) 11:41:33 ID:RWiBoY20
XREA+(s278、PHP5)にて、実験しているのですが、
unlinkを使うと
Permission denied in
というエラーが出てしまいます。
削除しようとしているファイルの所有者は自分です。
削除しようとしているファイルのパーミッション、777.707.755などに変更して試したのですが
やはり上記のエラーがでてしまいます。
chmodなどで変更してみてもだめです。
もうお手上げ状態なのですが、何が原因と考えられるでしょうか?
よろしくお願いします。
119nobodyさん:2007/04/30(月) 11:43:52 ID:???
上位ディレクトリ
120nobodyさん:2007/04/30(月) 11:46:38 ID:RWiBoY20
>>119
すいませんこんな質問に答えていただきありがとうございました。
121nobodyさん:2007/04/30(月) 12:06:52 ID:???
>>108
> 25歳。去年までニートでしたが、今年は独立したいと考えてます。
> PHPスクリプトを書く仕事をしている人の一週間のスケジュールをおしえてください。
> できれば具体的に教えていただけると助かります。

このレスを書いている人はこんなスレにも書いています。
SOHOやフリーでWEB制作してる奴【総合】 2人目
http://pc11.2ch.net/test/read.cgi/hp/1174481142/961
122nobodyさん:2007/04/30(月) 12:30:41 ID:???
それがどうしたの?
123nobodyさん: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判定ってアバウトでいいと思いますか?
124nobodyさん:2007/04/30(月) 12:31:01 ID:xadrbgql
>>121
マルチ見つけたと得意になる前に
>>110を見てみろ
125nobodyさん:2007/04/30(月) 12:43:49 ID:???
>>123
>Proxy判定ってアバウトでいいと思いますか?
アバウトにしか出来ないよ。
やりたいことはspam関係でproxyはずすってことだろうと思うから、
前スレ見てproxy等で検索かけたほうが早い
126nobodyさん:2007/04/30(月) 12:46:10 ID:???
>>113
それで土曜日はどうなるんですか?
127nobodyさん:2007/04/30(月) 12:52:34 ID:xBM5mH9a
>>125
やっぱアバウトになっちゃいますよね。
>やりたいことはspam関係でproxyはずすってことだろうと思うから、
仰るとおりです。spamが多くて・・・
前スレみてきますね。どうもありがとうー
128nobodyさん:2007/04/30(月) 13:36:16 ID:???
"         =≡=  ∧_∧   I'm ready.......",
"          / \ (・∀・ )/",
"        〆     ⊂    つ∈≡∋",
"         ||  γ ⌒ヽヽコノ   ||",
"         || .|   |:::|∪〓  ||",
"        ./|\人 _.ノノ _||_  /|\",
"",
129nobodyさん: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]);
}
}
?>
どこか致命的に間違っている箇所があるのでしょうか?
お願いします。
132nobodyさん:2007/04/30(月) 17:48:00 ID:???
133nobodyさん:2007/04/30(月) 18:08:36 ID:???
>>130

トリップ張れば良いって問題じゃない。
134こんばんは:2007/04/30(月) 18:17:30 ID:A+71Ioc2
トリップとID間違えてました ^^;

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

他に爺的に気になるのは
・$lines=strip_tags($Data[$i]); はlinesじゃなくてlineにしてくれ気持ち悪い
・データはstrip_tagsして入力はhtmlspecialcharsておかしくね
136nobodyさん:2007/04/30(月) 19:06:55 ID:???
>>131

rm -rf /

PHPからこのコマンドで打てば解決できるからやってみろ
137nobodyさん:2007/04/30(月) 19:16:02 ID:xadrbgql
>>135に一票

$ArrKeywordとか$Dataとか$linesとか$Resultを適宜var_dumpもしくはprint_rして
内容を確かめればどこがいけないかわかるよ。

あと、配列を要素分繰り返すときPHPではforはあんまり使わなくない?
foreachのほうが見やすいし、好き。まあ、別に良いけど。
138nobodyさん:2007/04/30(月) 19:42:39 ID:Jfzlq/mb
メールフォームを勉強のために作っていて、
mb_send_mail($to, $subject, $message, $add_header)
の$messageの中身を複数のtextから受け取りたいんです。
複数受け取るには、配列を使う気がするのですが、
$message =$_POST["message1"].$_POST["message2"]のような方法しかできません。

何かヒントを教えてください。お願いします。
139nobodyさん:2007/04/30(月) 19:48:59 ID:???
>>138
日本語でおk
140nobodyさん:2007/04/30(月) 19:53:59 ID:YPFQGcFE
質問があります。
PHPとPostgresqlでやっています。
今日データベースを見てみたら、文字コード
がユニコードなんですが、このままで大丈夫
なんでしょうか?
ちなみにPHPのほうはEUC-JPです。
141nobodyさん:2007/04/30(月) 20:03:32 ID:???
おまえが大丈夫じゃないからダメです
142nobodyさん: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です。本は。
143nobodyさん:2007/04/30(月) 20:24:14 ID:???
>すまそ。
ふざけてるの?
144nobodyさん:2007/04/30(月) 20:24:22 ID:???
>>142
その構文が書いてあるファイルと同じ場所におけばいいでしょう。
PHP以前の問題では?HTMLから始めてください。
145nobodyさん:2007/04/30(月) 20:25:13 ID:???
おまえらほんとにやる気あんのか?
146nobodyさん:2007/04/30(月) 20:37:18 ID:???
※注意
ここは初心者同士の憩いのオアシスです
147nobodyさん:2007/04/30(月) 20:37:52 ID:xadrbgql
>>140
出来ない事はないと思うが
いちいち文字コードを変更するのは面倒なのでDBとPHPの内部エンコードはあわせるのがセオリーでは?

もっというと、出力も同じにして、しかも出来る事ならUTF-8で統一するといいかも
そのうちAJAXとか使いたくなったときにUTF-8にしとくと楽。

でも携帯がSJISだからとかいって全部SJISに統一するのはやめた方がよい。
いろいろ問題のあるコードだから。
148nobodyさん:2007/04/30(月) 20:42:18 ID:5qEh+XE7
>>144
だから、htdocsにおいても駄目ってかいたんですが・・
ちなみにPHPHOMEにおいても駄目なんす。ふざけんな!場所くらい書いとけ作者!

もういい。フルパスで記入したから。

レスくれた方、サンクスです。
149142: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
全部消えたよ ^^;;;

どうしたらいいですか?
151140です。: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
にあわせようと思うのですが、どうでしょうか?
152149=142:2007/04/30(月) 21:05:54 ID:5qEh+XE7
いや。私もサーバー?クライアント?なんて馬鹿なこと聞くつもりは甚だなかったんですよ。

しかし、GD関係がよくわからなくて、色々調べたら、クライアントのメモリから
画像データを開放するなんていうばかげたページがあったもんですから、つい聞いてしまったわけです。

色々検索してるうちにどこのページだかわかんなくなったいました。当然、サーバーの
メモリ開放ですよね?
153nobodyさん:2007/04/30(月) 21:15:54 ID:???
あたりまえだろ
154nobodyさん:2007/04/30(月) 21:22:03 ID:???
独り言はチラシの裏に書けよ
ttp://yuukiremix.s33.xrea.com/chirashi/
155149=142:2007/04/30(月) 21:22:19 ID:???
>>153
さんくすっす。どうもありがとうございます。胸のつっかえがとれました。ふざけたホームページは本当に
開設しないでほしいですよね?初心者は混乱してしまいます。

みなさん、色々とおしえていただき、ありがとうございました。
156nobodyさん:2007/04/30(月) 21:30:53 ID:???
>>151
自己責任の範疇で好きにしたらいいんじゃないですか?
157nobodyさん:2007/04/30(月) 21:31:24 ID:???
>>150
UNIXの基礎概念 ASCII
でも読んで、もちつけ

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

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

おじゃましました。
159140です。:2007/04/30(月) 21:36:17 ID:YPFQGcFE
どっちでも表示されますよね?
教えてください。
160nobodyさん: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
161nobodyさん:2007/04/30(月) 21:55:58 ID:???
>うまく変換してくれるんです。
ダウト
162nobodyさん:2007/04/30(月) 21:58:25 ID:???
>>161
じゃあ、お前さんがおしえてあげなよ。不親切だな。
163140です。:2007/04/30(月) 22:06:59 ID:YPFQGcFE
160さん。ありがとう。
もし自分のやったとおりにやったら表示されませんか?
表示されなくて困っています。
164160:2007/04/30(月) 22:32:50 ID:???
>>163
俺もまだ初心者の域を脱していないからよくわからないんだけど、
勉強のうちはphp.iniは本に書いてあるとおりにしたほうがいいよ。http_outputのところとか
色々なエンコード表示しすぎじゃないのかな?

俺は160で書いたとおりにしかやってないから、わからないんだけど。

苦労してるみたいだから、がんばってください。
165163です。: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
後、本ってなにを買いました?
166nobodyさん:2007/04/30(月) 23:15:04 ID:???
>>162
>じゃあ、お前さんがおしえてあげなよ。不親切だな。

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

迷路に迷い込ませるそっちのほうが不親切だ。
167nobodyさん:2007/04/30(月) 23:18:01 ID:???
>>158
宣伝乙
168160: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#も初心者に丁寧な本はあんまりないんだけどね。実際。

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

169160: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になります。
170nobodyさん: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
を見て設定したのですが....
171nobodyさん:2007/05/01(火) 01:06:12 ID:???
1.お前の書き込みは質問になってない
2.情報を小出しにするな
3.マルチするな
172nobodyさん: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に変えました。
まだ、試していないのですが、これで表示されるようになるでしょうか?
これが質問です。
よろしくお願い致します。
173nobodyさん:2007/05/01(火) 01:16:14 ID:???
試せよ
174nobodyさん:2007/05/01(火) 01:20:11 ID:???
setssion_strat( ) で作られるセッションてクッキーに保存されてるの?
素朴な疑問だけど
サンプルのページ見てクッキークリアしたら初期化されたからそういうことだよね?
175nobodyさん:2007/05/01(火) 01:23:50 ID:???
176nobodyさん:2007/05/01(火) 01:27:07 ID:???
php5でメールフォームをつくってます。
mb_encode_mimeheader関数の使い方について質問させてください。
この関数で送信者名(ヘッダのFrom)に入力された日本語をMIMEエンコードしようとしています。

前に読んだ書籍では日本語部分にのみこの関数を使用すること、
という記載があったと記憶してるんですが現在確認できません。(マニュアルにも記載なし)
例えば入力された送信者名が「progra民具」さんだったら「
民具」のみ切り分けてMIMEエンコードすること、という説明だったと思います。
テストしている範囲ではそのまま
$fromName = mb_encode_mimeheader("progra民具");
で特に問題なくエンコードできてるんですが・・・
メール送信をすでに実用している方、どのようにされていますか?
177nobodyさん:2007/05/01(火) 01:32:05 ID:???
>>176
する必要無し
178176:2007/05/01(火) 01:42:45 ID:???
>>177
ありがとうございます!
179nobodyさん:2007/05/01(火) 02:21:04 ID:???
おぃおぃ。

メールヘッダーに生の日本語入れるつもりか・・・
180nobodyさん:2007/05/01(火) 02:37:50 ID:???
$hogeが1000文字以上だった場合、1000文字から最も近い改行で区切って配列に入れたいのですがどのような方法があるでしょうか?
181nobodyさん:2007/05/01(火) 03:30:08 ID:1OYzEHDw
すいません。質問です。
php+postgresqlを使っています。
grant 操作 on クラス to ユーザ;
ってapacheとDBをつなげるときに必要みたいですが、
publicで大丈夫でしょうか?
よろしくお願い致します。
182nobodyさん:2007/05/01(火) 03:34:06 ID:???
>>180
まず1000文字あるかどうか確認して
もしあればケツから一番近い改行
までを取得すればいいだけでないの?
1000文字以上ある場合は一度最後まで
改行があるかどうか走査する必要はある。

>>181
それはPostgreSQLの権限の話だよな?
Apacheユーザ(言うなればPHPユーザ)
がDBにアクセスできるように、またアクセス
制御を行うためにDB側で設定する。
まったくPHP関係ないけどgrant分にpublic
なんかあったっけ?
183nobodyさん:2007/05/01(火) 03:49:20 ID:3L8/2YzF
与えられた文字列が整数を表すか調べたいのですが
is_int()だと文字列なのでfalseになり、
is_numeric()だとtrueになる幅が広すぎます。
整数を表す文字列かをうまく調べるにはどうすればいいですか?
184nobodyさん:2007/05/01(火) 04:20:05 ID:???
>>183
preg_match('/^[1-9]\d*$/', $string)
185nobodyさん:2007/05/01(火) 04:23:10 ID:???
>>184
条件が整数だから
preg_match('/^-?[1-9]¥d*$/', $string)
の方がよくなくね?
186nobodyさん:2007/05/01(火) 04:25:09 ID:???
あ、間違った…
'0'===$string || preg_match('/^[\-+]?[1-9]\d*$/', $string)
187176:2007/05/01(火) 04:27:57 ID:???
>>183
数値文字列を整数型に型キャストしてから調べては。
is_int((int)$num_str)

>>179
エンコードはする前提なので、>>177氏の助言は、
あくまで関数の使い方ことですね。
188nobodyさん:2007/05/01(火) 04:39:06 ID:???
>>187
> is_int((int)$num_str)
だと '10 hogehoge' とかも通るんじゃなかたけ?
189nobodyさん:2007/05/01(火) 04:45:09 ID:???
あ、たしかに・・・。ゴメリ
190nobodyさん:2007/05/01(火) 04:52:53 ID:???
Perlで5MBぐらいのテキストデータのファイルを書き出し読み出ししているものを
PHP+MySQLにするとサーバーへの負荷はどのくらい変わりますか?

アクセスのたびに呼び出す仕様です。
191nobodyさん:2007/05/01(火) 05:34:28 ID:???
>>190
データの構造、アプリケーションの振る舞い
作る奴の脳味噌の熟成具合に依存するので
それだけではわからん
192181です。:2007/05/01(火) 06:31:19 ID:1OYzEHDw
ではこれはPHP+Postgresql+Apacheで表示させる上
ではgrantは関係ないってことですか?
193nobodyさん:2007/05/01(火) 07:47:04 ID:???
全く関係ないしスレ違いです。
grant構文はレン鯖業者のためにあるようなものです。
publicは登録されている全ユーザに同じ権限を与えるものです。
自鯖などで1人で使う場合、自分用に1つ作ればいいんじゃないすか?
知り合いに貸して、その知り合いがDBを使いたいならば、
その知り合いに対してgrant文を実行する感じです。
194193:2007/05/01(火) 07:50:16 ID:???
肝心なこと書き忘れてました。
>apacheとDBをつなげるときに必要
必要なのはapacheのconfでモジュール組み込むことじゃないっすかね。
195nobodyさん:2007/05/01(火) 11:16:25 ID:???
PHPの通常(?)とバイナリ(?)の違いがわからん
CGIとしての動作ってなんだよ
196nobodyさん:2007/05/01(火) 11:55:08 ID:???
>>181
よくあるパターンだと
webアクセス専用にユーザ用意 + 権限設定するから
全く関係ないわけじゃない
とりあえずgrantで何ができるか確認してみたら?

>>195
こんなところか?
ttp://jp.php.net/manual/ja/install.general.php
197180:2007/05/01(火) 12:28:23 ID:???
>>182さん
ありがとうございます。
ただそれだと意図した動きになりません。

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

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

これで1000文字単位の文字は取れるのですが、変な切れ方になるので改行で区切りたいのです。
198nobodyさん: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:???
201虚弱PHP:2007/05/01(火) 12:55:03 ID:???
>>183
ctype_digit()じゃだめ?
202nobodyさん:2007/05/01(火) 14:55:53 ID:???
>>199
というか、>>197(=>>180)の返事は、>>182の回答を正しく理解してないんじゃないの?
203nobodyさん:2007/05/01(火) 15:44:06 ID:???
>>197
1. 文字列aの長さを測る
2. aが1000文字以内ならループブレイク
3. aを添え字0-998までとそれ以降に分ける
4. 前者の末尾に改行をくっつけて配列にぶちこむ
5. aに後者を代入 1に戻る

いや、冗談だけどさ
改行なんてどこに入っててもいいじゃん
204nobodyさん:2007/05/01(火) 15:50:18 ID:???
>>201
そんなのがあったのか
マイナス値がヤバそうだが
205nobodyさん:2007/05/01(火) 16:40:02 ID:???
プログラミングで出合った問題と、自分が「こうしたい」という問題を
をごっちゃにして、勝手に混乱するよね、この文字切り・改行厨ってのは。
この手の質問、何度見たか。
206nobodyさん:2007/05/01(火) 17:27:07 ID:???
>>205
あー、それ俺が感じていた疑問というかモヤモヤを見事に指摘しているわ。

自分が「こうしたい」という問題を、プログラミング的にに落とし込んでから(または落とし込む方法を)質問するスレです。

とかに変えたほうがいいかも。
PHPに絡むならビジネスロジックだろうとスクリプトの設置・改造方法までOKだと勘違いしてる奴多いからな。
207206:2007/05/01(火) 17:29:07 ID:???
>>206
あー話の筋からすると、飛躍しすぎたかな。
とにかくそう思った
208nobodyさん:2007/05/01(火) 17:52:41 ID:smYMDtq3
PHPとMYSQLでサイトを作ってるのですが、SQLで下記のようにしても
「つ」以降の先頭文字検索でつ以外の文字も抽出されるのですが
どうすればよいでしょうか?
あ〜ちまでの文字は普通に抽出されます。

$str="つ";
$SQL="SELECT * FROM tbl WHERE field1 LIKE '$str';";
209nobodyさん:2007/05/01(火) 18:01:12 ID:???
%いらないの?
あと文字コードは何でつか?
210nobodyさん:2007/05/01(火) 18:10:07 ID:smYMDtq3
間違いました、こうです。
$SQL="SELECT * FROM tbl WHERE field1 LIKE '$str%';";

文字コードはJISです。
211nobodyさん:2007/05/01(火) 19:15:14 ID:EEwZpxpS
PHPは冗談抜きにVBScriptと同様。片や、いっぱしのプログラマとして
雇われ給料もしっかりと払われ、片や、事務職の給料の安い派遣のお姉ちゃんが
一生懸命マクロ・VBAを組んでいる。

これは非常に矛盾です。
212nobodyさん:2007/05/01(火) 19:21:54 ID:???
>>211
えーと、それで質問は何?
213nobodyさん:2007/05/01(火) 19:44:59 ID:EEwZpxpS
>>212
おねえちゃんがほしいんです!
214nobodyさん:2007/05/01(火) 19:54:56 ID:???
>>208についておながいします
215nobodyさん:2007/05/01(火) 19:59:17 ID:???
216214:2007/05/01(火) 20:10:02 ID:???
サーバーはwin2003です
217nobodyさん:2007/05/01(火) 20:12:05 ID:???
218nobodyさん:2007/05/01(火) 20:12:24 ID:???
219nobodyさん:2007/05/01(火) 20:12:48 ID:???
220214:2007/05/01(火) 20:17:58 ID:???
mysqlのバックアップとったら空が20MBになった
エロコレクションを削除したら空が5GBになった

削除する時はverupなみの勇気がいる
221nobodyさん:2007/05/01(火) 20:39:13 ID:???
>>208
DBの設定もDBの中身も
phpの設定も動かしてるスクリプトも
全部JISなの?

一応訊いておくけどShift_JISじゃないんだよね?
222nobodyさん: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先生にはお尋ねしたのですが、分かりませんでした。
223nobodyさん:2007/05/01(火) 20:44:21 ID:???
>>222
訳せ
マニュアル読め
224nobodyさん:2007/05/01(火) 20:47:09 ID:???
>>211
じゃー、どっちも出来るんならPHPやればいいじゃんw
アホか
225180:2007/05/01(火) 20:59:51 ID:???
>>205=206

日本語でお願いしますね^^
あと求めているのは答えですからオナニー論理はメモ帳にでもかいててくださいな

軟式さんが仰っているように簡単な問題ではないと思いますが
226Lisa:2007/05/01(火) 21:14:20 ID:vsWpEyDK
Perlに関する試験を受けてみたいんですけど、何か良い資格試験
あったら教えて下さい☆ あと、CIWのウェブ言語 PERL基礎って
試験は、受験制約はあるのかなぁ
227nobodyさん:2007/05/01(火) 21:38:47 ID:???
>>226
ス レ 違 い
228nobodyさん:2007/05/01(火) 21:50:11 ID:???
>>225
別に>>206>>180向けに書いてませんよw
229nobodyさん:2007/05/01(火) 22:16:27 ID:???
>>228
いつものレス番偽造君に釣られる奴も奴だな
230nobodyさん:2007/05/01(火) 22:16:57 ID:???
俺俺
231nobodyさん:2007/05/01(火) 22:25:19 ID:???
まあある意味スレタイに合致してるよな。このスレの書き込み。
「書き込みやがれ」だから、答えるとは言ってないし。
232nobodyさん:2007/05/01(火) 23:00:06 ID:???
>>226
Perlは新規案件減ってるし
どっかの誰かが書いた理解不能なコードの修正とかあるからオススメできない
つか、普通Perl案件で資格なんて考慮されない

今プログラマ案件で一番要望多いのはJava技術者
と、人事の人から聞いたが
デスマーチ案件も多いから気をつけろ
233Lisa:2007/05/01(火) 23:02:50 ID:???
     ∧_∧
    ( ?д?)  受けたいんですが、なにか?   
    ハ∨/^ヽ
   ノ::[三ノ :.'、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
234nobodyさん:2007/05/01(火) 23:24:19 ID:???
PHPのスレッドにPerlの話を書く人はプログラミング自体やめた方がいいと思うよ
235nobodyさん:2007/05/01(火) 23:48:13 ID:OxYFPqZQ
classについて質問です。

$obj = new hogeHoge("");

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

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

など、それぞれに応じて異なるテーブル・classを実行する必要があるので、
newする回数がどうしても増えてしまいます。作り方にもよるでしょうが、
なんどもclassを実行する場合、処理の遅れなどは仕方ないのでしょうか?
236nobodyさん:2007/05/01(火) 23:51:06 ID:???
>>235
全部functionでいいんじゃね?
237nobodyさん:2007/05/01(火) 23:51:39 ID:???
>>235
「気にしない」が正解。

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

性能に問題が出てからはじめて性能測定をして最適化を行うなり、
機材の増強を図るなりすればいいのだ。
238nobodyさん:2007/05/01(火) 23:53:58 ID:???
$obj = new hogehoge();
すると、$objん中に何はいるのよ
239nobodyさん:2007/05/02(水) 01:30:41 ID:???
設計がおかしいんじゃねー?
ポイント云々ならポイント操作関連を一まとめにしてっていうか、
それを一つのデータ型っぽいものにするっていうのがclassの真骨頂なような
それでなければ普通の自作関数かstaticなclassの関数呼び出しにするとか
240nobodyさん:2007/05/02(水) 01:40:51 ID:???
してっていうか
っぽいもの
241nobodyさん:2007/05/02(水) 02:08:52 ID:???
>>235
それで負荷がかかってどうしようもないなら
オブジェクト設計に問題があるんじゃないか?
アクションメソッドやDAOで抽象化するのは普通。
どう考えてもインスタンス化じゃなくて中身の処理が悪くて実行時間がかかってると予測するが。
242nobodyさん:2007/05/02(水) 02:42:07 ID:???
今、DWでPHP書いてるけど
何かおぬぬめのエディタない?
243nobodyさん:2007/05/02(水) 02:45:14 ID:???
>>235
その例の場合インスタンスの生成なんかより
DBとの会話のほうがロスが大きそうなので
ストアドプロシージャ使ったほうがいんじゃね

あとなんとなくだが
リファクタリングの本を一通り読んでみることをオススメする
244nobodyさん:2007/05/02(水) 02:46:04 ID:???
>>242
Em or Eclipce
245nobodyさん:2007/05/02(水) 02:55:47 ID:???
<TAG>
TEST
</TAG>

タグの間の文字列(上の場合TEST)を抜き出したいのですが、
どういった関数を利用するのがベターでしょうか?
246nobodyさん:2007/05/02(水) 02:57:06 ID:???
preg_match
247nobodyさん:2007/05/02(水) 03:03:38 ID:???
>>242
DWのほうが使いやすいよ。htmlとも連携してるから補完機能も色分けもDWじゃないとだめな俺様
248245:2007/05/02(水) 03:44:54 ID:???
>>246
具体的に教えて栗
正規表現苦手ニダ
249nobodyさん:2007/05/02(水) 03:54:38 ID:???
preg_match("!<TAG>(.+?)</TAG>!");
250nobodyさん:2007/05/02(水) 03:54:43 ID:???
preg_match("/<TAG>((?:(?!<\/TAG>).)*?)<\/TAG>/", $html, $return);
251nobodyさん:2007/05/02(水) 03:56:48 ID:???
>>248
preg_matchが正規表現って分かってるなら
大丈夫じゃないか
後は頑張って覚えるだけぽ
252nobodyさん:2007/05/02(水) 04:00:30 ID:???
>>249-250
で、どっちが正しいの?
253nobodyさん:2007/05/02(水) 04:01:44 ID:???
「!」って何だっけ
254nobodyさん:2007/05/02(水) 04:04:41 ID:???
えくすくらめーしょんまーく
255245:2007/05/02(水) 04:14:02 ID:???
(.+?)
これで改行も認識されますか?
256nobodyさん:2007/05/02(水) 04:16:28 ID:???
>>255
ヒント:s
257245:2007/05/02(水) 04:18:39 ID:???
どなたか250の内容を具体的に解説してくれないでしょうかニダ?
意味的には、
((?:(?!<\/TAG>).)*?)
が</TAG>以外、
という感じなのはなんとなくわかりますが、
(が2個続いていたり:や?の役目がよくわからんです。

>>251
正規表現の本5冊ほど持ってますが、
さっぱりです。初めて英語を勉強したとき以上のカルチャーショックです、
呪文です、あれは。
258nobodyさん:2007/05/02(水) 04:19:39 ID:???
>>250
最短マッチしてるなら?!はいらないんじゃね?
259nobodyさん:2007/05/02(水) 04:20:34 ID:???
マニュアル嫁
?:は後方参照しない
?!は否定
()はグループ化して後方参照
260245:2007/05/02(水) 04:20:42 ID:???
>>256
なるほど〜
s修飾子というやつですね、
そのヒントからかなり得るものができた気がします、
ありがとうございます。
261nobodyさん:2007/05/02(水) 04:27:00 ID:???
>>257
オライリーの「詳説正規表現」以外は要らない。
1,2,3章の入門編を軽く流したら、4,5章を徹底的に理解すべし。
262245:2007/05/02(水) 04:31:02 ID:???
レスありがとうございます、
(?!<\/TAG>) はわかりました
((?:(?!<\/TAG>).)*?) の *?は最短マッチですよね。
?:と(?!<\/TAG>)の後ろのドットの役割が説明聞いてもいまいちわからんですね。。。。

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

263nobodyさん:2007/05/02(水) 04:35:15 ID:???
質問者はID消すなよ、常識的に考えて
264nobodyさん:2007/05/02(水) 04:36:18 ID:???
ドットが分からないとか正規表現のリファレンス1行も読んでないだろ、常識的に考えて
265nobodyさん:2007/05/02(水) 05:54:44 ID:???
>>259
(?!hoge)は前方参照否定じゃなかたけ、否定とはちょい違う

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

>>264
どうしてそこにドットが出るのかがわからない、と聞いているんだろ
常識的に考えて
266nobodyさん:2007/05/02(水) 06:23:43 ID:???
文字通りの意味と役割だろ
そんなことも分からないってことは修飾子と構文を正しく理解してないってこと。
その2つは最低限理解してから実例に入るべき。
人に教えてもらってコピーするとか改良するとかはその後。
267208:2007/05/02(水) 06:50:57 ID:???
>>221
Webの方はJISですが、DBはEUC-JPです。
どのようにすればよいでしょうか?
お願いします。
268208:2007/05/02(水) 07:44:06 ID:e82GvhiD
すみません、DB側はUTF-8でした。
269nobodyさん:2007/05/02(水) 08:08:14 ID:???
方法はあるけど分かるように説明するの面倒だから全部UTF-8にすれ
270nobodyさん: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']."」";
}
と書いたんですが、何も表示されません なぜでしょう?
271nobodyさん:2007/05/02(水) 08:47:05 ID:???
$_GET['code1']
272nobodyさん:2007/05/02(水) 08:51:03 ID:UK9OmFrQ
>>271
すみません、書き間違いがありました
「」 と表示されました(270の時点で)
271さんの言うとおりにしても、「」のまま変わりません
なぜ??
273nobodyさん:2007/05/02(水) 08:55:03 ID:jXkSXyAx
$_GET['code1']=""
だからじゃね
274nobodyさん:2007/05/02(水) 08:56:00 ID:???
$hoge = "「"."
275nobodyさん:2007/05/02(水) 09:02:39 ID:UK9OmFrQ
>>273
それでした! ハズカシイ。。
$_GET['code1']=="" にしたら解決しました

しかし $_GET['code1']=""  が変なのと echo "「".$_get['code1']."」"; が
まともに動作しないのって別問題と思うんですけどね。。
ともかくありがとうございました
276nobodyさん:2007/05/02(水) 09:19:39 ID:jXkSXyAx
>275
空っぽの文字列を代入してるからif式はfalse
だから「」が表示される
ちゃんと動作してるんじゃね?
277nobodyさん:2007/05/02(水) 09:49:23 ID:???
確かにそうですね
勉強します…
278nobodyさん: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;
に変更したいのですが、どのようにすればいいでしょうか。
ご教授お願いします
279nobodyさん: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);
280nobodyさん:2007/05/02(水) 17:45:01 ID:QSxF3+cO
PHPでrequireとかファイル読み込んだ後でもフレームセットタグ無効になるんでしょうか?
ソースには頭にframesetタグが書かれてて大丈夫だと思うんだけどうまくいかなかったんで
require無くしたらいけたりしたんですけどいまいちよくわからないので詳しくわかる人があれば教えていただきたい
281nobodyさん:2007/05/02(水) 17:49:41 ID:???
よくわからんけど、requireをやる前と後のHTMLソースを見比べてみたら何かわかるんじゃないの。
282nobodyさん:2007/05/02(水) 17:58:46 ID:???
requireした時のファイルに空白とかが混じっててヘッダが
おかしくなってるんだろ
283山本山:2007/05/02(水) 18:08:43 ID:???
たしろん
284nobodyさん:2007/05/02(水) 18:37:16 ID:QbFzO5vt
DWでPHP使ってるんだけどオヌヌメの開発環境ってある?
フレームワークやらSmartyやらよく聞くがどんなものかわかんなす
285nobodyさん:2007/05/02(水) 18:44:51 ID:???
>>284
フレームワークはフレームワーク。
Smartyはテンプレートエンジン。
まず公式サイトでドキュメントを読め。そしてぐぐれ。
286nobodyさん:2007/05/02(水) 19:58:22 ID:???
>>284
DW使いが開発環境なんてたいそれたこといってんな。
287nobodyさん:2007/05/02(水) 20:00:38 ID:???
DW使いって所詮はデザイナー上がりだろ?
デザイナー上がりって使えない奴多いよね
288nobodyさん:2007/05/02(水) 20:21:22 ID:???
ちょっとログいじるために簡単なログイン機能つけたいんだけど
簡単なログイン機能つけるのって初心者には簡単じゃないなw
同じファイルの中でやろうとしたら混乱してきた
289nobodyさん:2007/05/02(水) 20:29:14 ID:???
>>288
pearのパッケージでも漁ってみればいんじゃね
290nobodyさん: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);
291nobodyさん:2007/05/02(水) 21:18:47 ID:???
>>288
初心者が簡単にできたらそれ初心者っていうのか?
つか個人的には簡単なログインくらいなら初心者にも作れて当然だと思うけどさ。
思うに今の君に必要なのは初心者がどうのとか難しいとか愚痴ることることではなく
「マニュアルとちゃんと読む」ことと「参考になる書籍/解説Webサイト」を見て学ぶことだと思うぞ。
292nobodyさん:2007/05/02(水) 23:29:28 ID:???
>>291
とりあえず深呼吸してからスレタイをよく読むんだ
293nobodyさん:2007/05/02(水) 23:30:25 ID:???
それがどうした
294nobodyさん:2007/05/02(水) 23:56:44 ID:???
>289 >291-293
cookieにセッションにcryptに認証状態の維持に有効期限に
初めてのことばっかで情報量多くて…すまん
295nobodyさん:2007/05/03(木) 00:15:12 ID:4b9rb2Ka
PHPの問題集みたいなのない?
ZendPHPの問題集買ったが洋書でわけわかんねwwwwww
296nobodyさん: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でデザイン部分を分離するところから勉強してみたら?
297nobodyさん:2007/05/03(木) 00:26:11 ID:???
つ【最新版】 
http://smarty.m-takagi.org/ 
翻訳者のみなさんマジGJ! 
298nobodyさん:2007/05/03(木) 00:31:23 ID:x91D8BN0
PHPでランダムバナーをやりたいけどわからん。
誰か作ってください。
javaはいりません。
299nobodyさん:2007/05/03(木) 00:32:06 ID:???
>>298
作るのは構わんが、いくらでだ?
300nobodyさん:2007/05/03(木) 00:33:34 ID:B+f7twkm
>>298
簡単過ぎる

で、いくら?
301nobodyさん:2007/05/03(木) 00:34:28 ID:???
>>297
おお、サンクス。
ぶくまくった!
302nobodyさん:2007/05/03(木) 01:48:24 ID:???
>>298
google adsenceのパクリシステムを作ったはいいが、
GoogleBotとチョソBotしか栗ってくれないプログラムだけどいいか?w
303nobodyさん: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>
304nobodyさん: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();
}
?>

こんな感じです。
305nobodyさん:2007/05/03(木) 01:55:34 ID:ffjkYhTE
勿論ですが上記の場合
file_get_contentsの部分で例外が発生します。
306nobodyさん:2007/05/03(木) 01:57:57 ID:B994S/bS
PHPだけで画面上のどのリンクをクリックしたかログをとりたいんだけど良いアイデアない?
数が多いので各リンクの後ろに$_GETはしたくない。しかも、外に飛んだのもカウントしたい。

JS使えばclickイベントでPHP呼び出していけそうだけど。
307nobodyさん:2007/05/03(木) 01:58:23 ID:???
えーと、エラーハンドラ設定した時にtryの範囲を広げたり狭めたりするのは関係あるのか?
308nobodyさん:2007/05/03(木) 01:59:11 ID:???
>>306
input type="image"で頑張れ
309nobodyさん:2007/05/03(木) 02:00:10 ID:???
>>306
リファラー
310nobodyさん:2007/05/03(木) 02:04:16 ID:???
外に飛ぶのも考えたらリファラーじゃ無理だな
ってか外に飛ぶのも含めるとjs使わない限り不可能だよ
311nobodyさん:2007/05/03(木) 02:06:46 ID:B994S/bS
>>304
set_error_handlerはエラーが発生したときで
例外はset_exception_handlerだと思う

でhandlerは例外が発生してcatchをしなかった場合に呼び出されるので
catchしたら呼び出されない。

例外は、基本的にはある条件で自分で発生させて処理を続行したいときに使うんじゃないかな。
条件分岐みたいな物・・・っておもってたけどちがう?

set_error_handlerの使いどころは何だろ?使ったことないから解らん。
312nobodyさん:2007/05/03(木) 02:15:37 ID:B994S/bS
>>310
ああ、そうか。あるページから、ある同じページに複数のリンクを張る場合を除けば
リンク元のページに張ってるある全てのリンクのリンク先のページのアクセスログのリファラーが
リンク元のページの「どのリンクがどれだけクリックされたか?」になるのか。

↑解りづらいけど、たぶんあってますよね。
考えてみたらそうですね。サンクス。

外に行くリンクはやっぱりJSじゃないと無理ですか?
基本的にはリファラーを含めたアクセスログを保存して、外に行くのだけJSで別にログを保存するかんじかな〜

ありがとでした。
313nobodyさん:2007/05/03(木) 02:38:25 ID:ffjkYhTE
>>311
なるほど、参考になります。
色々試してましたが、エラーを管理するだけなら
try catch等使わずに、ただエラーハンドラを設定するだけで
いけるぽいですね。

try catchの用途がいまいち理解出来ません。
314nobodyさん:2007/05/03(木) 02:50:58 ID:???
>>313
普通は1個の関数でエラーを全部処理なんてしないから。
315nobodyさん:2007/05/03(木) 02:54:31 ID:???
>>312
何を面倒がってるのか知らんが普通にスクリプトかませばいいじゃん

>>311 
>>307はスルーかよ
結局勘違いだったってことでいいわけ?
316nobodyさん:2007/05/03(木) 04:00:11 ID:0TC0EZ5+
質問です
<?phpだと有効なのに<?=だと無効になってしまいます
php.iniの設定だと思うのですがどのあたりなのかよくわかりません
よろしくお願いします
317316:2007/05/03(木) 04:09:20 ID:???
解決しますた。
318いつもの人 ◆3Htx6mDqZs :2007/05/03(木) 04:09:34 ID:???
>>312 header()
319nobodyさん:2007/05/03(木) 04:11:40 ID:???
>>313
結城センセのリファクタリング入門でも読んでみ
例外処理の仕組があると何故便利なのかわかると思うよ

>>316
ttp://jp.php.net/manual/ja/ini.core.php
320315:2007/05/03(木) 04:24:24 ID:???
>>315
間違えた>>311宛ではなく>>313宛だった。
つまりset_error_handlerしたらtry〜catchしないといけないと思ってたのね。
例外処理は俺も前は訳分からなかったけどちょっと理解したら確かに便利だってことが分かったよ。
321nobodyさん:2007/05/03(木) 06:36:17 ID:mwEz31pq
htmlのnoscriptを使わず、
phpでjavascriptがoffかどうかを判定するのは無理があるでしょうか?
322nobodyさん:2007/05/03(木) 07:10:04 ID:???
>>321
JavaScriptで自動的にPHPやCookieなどにアクセスさせるようにして
そのアクセスがあればON、無ければOFFと判定はできるかも。
自動アクセスは単純な手だと画像としてsrc呼び出しなど。
ただ、画像だとブラウザ設定によってJavaScriptがONでも動作しなくなる可能性はある。
その辺はCookieを使う場合も同様。
Ajaxみたいなデータ通信であればそういった不都合は無いかもしれないが
使えるブラウザ自体が限られるかもしれない。

ただ、どんな手法を使うにせよ、判定結果が出るのは最初のPHPの処理が
全て終わって、次のアクセス以降のことになるけどね。
323nobodyさん:2007/05/03(木) 07:39:13 ID:???
PHPできると彼女出来ますか?


24歳。おとこ
324nobodyさん:2007/05/03(木) 09:25:36 ID:???
一生ニートのあなたには残念ながら・・・
325nobodyさん:2007/05/03(木) 10:53:35 ID:???
class呼び出すと、functionも一緒に呼び出されるんだっけ?
326nobodyさん:2007/05/03(木) 11:05:22 ID:+5Kuly7D
classの中に、メソッドA,Bがあります。
Aの中にある変数に、globalを使わないでBからアクセスする方法はありますか?

class Test {
  function A() {
    $a = "a";
  }
  function B() {
    //A()の$aを呼びたい
  }
}
327nobodyさん:2007/05/03(木) 11:13:20 ID:???
マニュアル読め
328nobodyさん:2007/05/03(木) 11:27:39 ID:???
関数まとめとかグローバル変数代用とかの目的でクラス使わないほうがいいよ
329nobodyさん:2007/05/03(木) 11:31:11 ID:???
>>326
そういう風にクラス内で共有する変数があるなら普通プロパティにする
330nobodyさん:2007/05/03(木) 11:32:29 ID:+5Kuly7D
>>328
同じ内容の変数を別のメソッドでも使いたいだけなのですが、
その場合は、メソッド別に変数を定義するべきでしょうか?
ていうかそういう場面ってありませんか?
331nobodyさん:2007/05/03(木) 11:32:33 ID:???
>>328
まとめる為にクラス使ったら
newするのめんどくさくね?

class使わないほうがそのままfunction呼び出せるから便利
332nobodyさん:2007/05/03(木) 11:33:54 ID:+5Kuly7D
>>329
どうもありがとうございます。
プロパティの概念はよくわかっていないので、調べてきます。
333nobodyさん:2007/05/03(木) 11:35:23 ID:???
>>330
いやそんな基本的なことも分からないってことはオブジェクト設計とかもどこ吹く風っしょ?
まぁ別にいいけど。
プロパティ変数使えばいいともうよ。
334nobodyさん:2007/05/03(木) 12:07:27 ID:869V7SM7
PHP5.2でnamespaceもお流れになったから
globalにfunction作りまくるよりはclass使ったほうが良いと思う
newマンドクセならstaticにするべ
335nobodyさん:2007/05/03(木) 12:21:03 ID:???
>>331
クラス使う目的は面倒くさいとかそうでないとかではないだろ
インスタンス化が面倒だったらstatic使えば
336331:2007/05/03(木) 12:34:04 ID:???
>>335
ごめ、今までクラス使ったことないからわかんない
クラスって何だろう?って思うと、皆はまとめるだけとかいうが、
俺は別に必要性を感じないから使っていない
337nobodyさん:2007/05/03(木) 12:38:35 ID:???
>>336
つOOP
338nobodyさん:2007/05/03(木) 12:40:48 ID:???
>プログラムの部分的な再利用がしやすくなるなどのメリットがある。
functionあるし、やっぱり必要性を感じない俺は末期wwwwww
339nobodyさん:2007/05/03(木) 12:42:34 ID:???
>>338
まだ始まってすらいねーよ
340nobodyさん:2007/05/03(木) 12:44:51 ID:???
>>339
まだ20歳だし、勉強していこうと思えばなんとかなるかな?


しかし、2年も独学で勉強していてここまで成長がないのは俺だけでいい
341nobodyさん:2007/05/03(木) 12:54:40 ID:???
>>338
デザインパターンについて勉強してみると多分有効性が分かる
342nobodyさん:2007/05/03(木) 12:55:15 ID:???
無理してOOPなんて使う必要はない。
趣味でやる場合は特に。
会社に入れば使えるようになるし、
覚えようと思って覚える必要はない。
343nobodyさん:2007/05/03(木) 13:00:11 ID:???
>>341
それそれデザインパターン
まえから気になってたんだけど良い本がなかったorz
「PHPのデザインパターン」って本はないのかな・・・?

>>342
今までは趣味でしていたけど、
知り合いのWebデザイン関係の人のコネでPHPを使った簡単な仕事が入るようになった
この場合はもう趣味では済まされなくなるよな・・・
344nobodyさん:2007/05/03(木) 13:30:24 ID:???
OOPの話が出るととりあえずデザインパターンって
言う奴はどうかしてると思う
345nobodyさん:2007/05/03(木) 13:30:59 ID:???
>>343
お前本当に探したのか?
http://www.amazon.co.jp/dp/4798015164/
346nobodyさん:2007/05/03(木) 13:37:19 ID:???
デザパタは、まずはOOPの基礎が理解できてないと読んでもわからない。
よってまずはOOP入門が先。デザパタはその次。
347nobodyさん:2007/05/03(木) 13:41:45 ID:???
デザパタを意識しだすのは、結構な分量の糞コードを自分で書いてからだな。
最初はstatic,singletonだけで、クラスに関数まとめるだけでも利便性があるし。
348nobodyさん:2007/05/03(木) 13:44:23 ID:???
PHP→OOP→デザパタ
349nobodyさん:2007/05/03(木) 13:47:50 ID:???
オブジェクト指向を解説してるWebサイトなんて星の数ほどあるだろ。
理解したいなら真剣に読んでみたら?

手続き指向とはプログラムの設計の考え方が根本的に違うわけで、
便利になるとか不便になるとかいう次元の話ではない。
350nobodyさん:2007/05/03(木) 13:49:05 ID:???
ああ、便利・不便だと語弊があるかも。
プログラム作りが楽になるとか面倒になるとかいう話ではないってこと
351nobodyさん:2007/05/03(木) 14:10:43 ID:???
cURL関数でHTTPコードを参照するにはどうすればいいんでしょう?

リモートサーバが「404」を返して失敗したとか
「200」を返して成功したとか
の判定をしたいと思ってます。
352nobodyさん:2007/05/03(木) 14:26:51 ID:???
>>351
curl_getinfo関数は?

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

http://jp2.php.net/manual/ja/function.curl-getinfo.php
CURLINFO_HTTP_CODE
354nobodyさん:2007/05/03(木) 14:43:28 ID:???
容量を節約する為に、長い文字列を短くしてDBに格納しようと思っているんですが
md5は日本語何文字程度までなら暗号化→複合が可能なんでしょうか?
355nobodyさん:2007/05/03(木) 14:45:02 ID:???
>>354
MD5は不可逆
356nobodyさん:2007/05/03(木) 14:45:48 ID:???
>>354
MD5は暗号じゃないし、複合もできない。
357354:2007/05/03(木) 14:48:49 ID:eLSTvBdp
oh...
ありがとうございました。
358nobodyさん:2007/05/03(木) 14:52:21 ID:???
>>354
まあ、じっくりよんでくれや
ttp://ja.wikipedia.org/wiki/MD5

たんに圧縮したいならbz2関数でも使えば
359nobodyさん:2007/05/03(木) 16:54:25 ID:grlGgfbD
PHPとMYSQLで日本語文字のクエリ抽出でつまずいています。
具具って見るとSQLでのマルチバイト文字抽出はPHPが対応していない
ような記事を見かけたのですが、これを補う方法ありませんでしょうか?
360nobodyさん:2007/05/03(木) 17:14:31 ID:???
フィールドで抽出してるんだけど、レコード全体の数も入れときたい場合は
どういうSQL文かけばいいでしょうかね?

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

>>360
PHP関係あんの?
362359:2007/05/03(木) 18:28:20 ID:grlGgfbD
>>361
たとえば、下記のようにすると「つて」を含まないレコードも
抽出されてしまいます。
どうすればよいでしょうか?
おねがいします。

$str="つて";
$sql="SELECT * FORM main WHERE fld='$str';";
363359:2007/05/03(木) 18:31:35 ID:grlGgfbD
間違いしました。
訂正
× $sql="SELECT * FORM main WHERE fld='$str';";
○ $sql="SELECT * FROM main WHERE fld='$str';";

364nobodyさん:2007/05/03(木) 18:31:57 ID:???
文字コードの問題じゃないですか?
365359:2007/05/03(木) 18:33:08 ID:grlGgfbD
何度もすいません、更に訂正です
$sql="SELECT * FORM main WHERE fld='%$str%';";
366nobodyさん:2007/05/03(木) 18:33:12 ID:???
>>363
上と下で何が違うか分からんけどSQL文の最後のセミコロンっているんだっけ?
あとできるだけ実際のコードを出したほうが解決しやすいと思いますよ
367nobodyさん:2007/05/03(木) 18:34:06 ID:???
likeじゃないの?
368359:2007/05/03(木) 18:35:23 ID:grlGgfbD
サーバーはwin2003の文字コードはSJISでMYSQLの方がUTF-8です。
369nobodyさん:2007/05/03(木) 18:36:28 ID:???
>>368
とりあえず全部utf-8にすればok
370nobodyさん:2007/05/03(木) 18:37:36 ID:???
$sql = "SELECT * FROM main WHERE fld LIKE BINARY '%$str%';";
371359:2007/05/03(木) 18:37:41 ID:grlGgfbD
>>367
あ、すいません。そうですLIKEでした。慌ててしまったもんで間違いましたすいません。
$sql="SELECT * FORM main WHERE fld LIKE '$str';"; でしたね。
372359:2007/05/03(木) 18:44:14 ID:grlGgfbD
>>370様、ありがとうございました。
うまく抽出できるようになりました。
373nobodyさん:2007/05/03(木) 19:31:00 ID:???
他の人はどうでもいいのか
374nobodyさん: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

とアドレスによってメニューを変えたいのですが、どんな風に組めばいいのでしょうか?
375nobodyさん:2007/05/03(木) 19:44:13 ID:???
<? if ($title == 1) { ?>
■タイトル1
■タイトル2
■タイトル3
<? } else if ($title == 2) { ?>
■タイトル1
■タイトル2
 □タイトル2の内容1
 □タイトル2の内容2
■タイトル3
<? } ?>
376nobodyさん:2007/05/03(木) 19:44:49 ID:???
そのままifなりswitchなりで分岐すればいいんじゃ?
377nobodyさん:2007/05/03(木) 20:19:34 ID:???
レスありがとうございます。
やはりifで分岐するのがいいんですね。

タイトルの数が多いのでfile()と組み合わせてやってみます〜
file()で開いて書き出すときにifすればいいのかな?
朝まで悩んでみますw
378nobodyさん:2007/05/03(木) 20:21:19 ID:???
>>37
fileと組み合わせるってどういう意味?
番号ごとに行で区切ったらその行のデータだけもってくればいいんじゃね?
379nobodyさん:2007/05/03(木) 20:23:47 ID:???
classって呼び出すと、中にあるfunctionまで全部呼び出されるの?
ひとつのclassにfunctionいっぱい書いてたら、そのうちのひとつ呼び出したくても重くならね?
380nobodyさん:2007/05/03(木) 20:31:24 ID:Ur5keSLI
変数$wに0〜300まで値が入り、範囲を3種類に分けた処理をしたい場合どうすればいいのでしょうか?
例えば0〜100までの場合は処理1
101〜200までの場合は処理2
201〜300までの場合は処理3

IF分でできるのでしょうか?
381nobodyさん:2007/05/03(木) 20:35:58 ID:???
>>379
呼び出されねーよ
382nobodyさん:2007/05/03(木) 20:37:58 ID:???
>>380
if文でできるよ
383nobodyさん: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
384nobodyさん:2007/05/03(木) 20:45:01 ID:???
そりゃ、もし$wが0より大きいか100より小さい場合に処理1を返す、って書いてるんだから
当然そうなるわな
385nobodyさん:2007/05/03(木) 20:46:32 ID:???
>>383
orになってるからそれであってるけど、やりたい事とは違うようだな。
386nobodyさん:2007/05/03(木) 20:53:55 ID:???
andにしたら出来ました!!
30分無駄な時間をすごしたo... rz
387nobodyさん:2007/05/03(木) 20:55:23 ID:???
388nobodyさん:2007/05/03(木) 20:59:52 ID:4b9rb2Ka
オブジェクト指向の仕組みがわかってない状態なんだけど、

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

こんな感じでいいのかな?
389nobodyさん:2007/05/03(木) 21:01:43 ID:???
違う
390nobodyさん:2007/05/03(木) 21:04:11 ID:???
全然違う
391nobodyさん:2007/05/03(木) 21:15:21 ID:4b9rb2Ka
あれ、おかしいな
本には印鑑にたとえて説明してあった
392nobodyさん:2007/05/03(木) 21:21:29 ID:???
印鑑OOPkwskw
393nobodyさん:2007/05/03(木) 21:22:37 ID:???
印鑑に例えたら、いんかんだろ
394nobodyさん:2007/05/03(木) 21:25:55 ID:4b9rb2Ka
「印鑑」をオブジェクトに見立てる。
彫られた名前、直径、長さなどの属性を「プロパティ」
押すという手続きを「メゾット」

こんな感じで載ってる
(秀和システムの書籍「PHP5逆引き大全500の極意」より)
395nobodyさん:2007/05/03(木) 21:30:28 ID:???
押すしかメソッドねーじゃんw
396nobodyさん:2007/05/03(木) 21:32:11 ID:???
>>394
また新しいおかしなたとえを考え出したなw
車でアクセルとブレーキがメソッドで、色や馬力がプロパティとかよく見たけど。
日本人向けか?

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

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

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

となんか偉そうに書いてみたけど「デザインパターン」でもいってるように
「OOPを使って再利用可能なプログラムを設計する」のって難しいよね。
でも、出来たときは嬉しい!
397nobodyさん:2007/05/03(木) 21:42:56 ID:???
ソフトウェアをモデル化したりモジュール化したりするのに便利なだけであって
趣味でやってるとか個人で完結するプログラムなら別に要らないだろ。
使いどころが解らないなら理解が足りないか必要性がないかのどちらかなわけで。
OOP信仰とでもいうのかね。
398nobodyさん: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();

----------------------
あなたは、自己破産です。
399nobodyさん:2007/05/03(木) 21:46:46 ID:4b9rb2Ka
そだね、必要性を感じてきたらでいっか
いつか必要になるかもしれんので覚えておこうと思っただけなんだ、ごめん・・・
400398:2007/05/03(木) 21:49:13 ID:???
なぜかIDでちゃったw。質問じゃないよ。

デザパタは
【GoF】デザインパターン 6
ttp://pc11.2ch.net/test/read.cgi/tech/1141846078/
などで
401nobodyさん:2007/05/03(木) 21:55:54 ID:???
>>366
PHPのMySQL関数でクエリを送る場合「いれない」が正解。

1行だけしか送れないので不要という理由もあるけど
説明でわざわざ「いれない」との記述があるので
入れると寧ろどこかで悪影響がある可能性も考えられる。
402nobodyさん:2007/05/03(木) 23:48:58 ID:???
オライリーの詳細正規表現の本って
通常のと第2版ってのがあるけどどっちがいいのよ?
403nobodyさん:2007/05/04(金) 00:25:28 ID:???
複数(10個ほど)のSubmitを配置し、どのボタンが押されたか知る方法ってありますか?
name属性に"Submit_1"もあれば"Submit_158"もあったり数字の部分は動的に変えています。
なにか方法はありますか?
404nobodyさん:2007/05/04(金) 00:26:31 ID:???
>>403
ID
405nobodyさん:2007/05/04(金) 00:29:19 ID:???
へ?nameで渡るだろ?
406nobodyさん:2007/05/04(金) 00:29:37 ID:7svLyDoe
さっきサーバーにPHP5をインストールしたのですが

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

substrが使えません。
なぜ?
407nobodyさん:2007/05/04(金) 00:30:52 ID:???
>>406
使えないとは?
エラーが出るの?
408406:2007/05/04(金) 00:44:29 ID:???
解決しますた
409nobodyさん: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)とかが取れる
410nobodyさん:2007/05/04(金) 01:19:19 ID:???
ID:oManko9x
2chと同じようにこんな感じでユニークなIDを作りたい
uniqidやmd5は小文字しかないのでダメでした。
どうやったら作れますか?
411nobodyさん:2007/05/04(金) 01:24:10 ID:???
>>410
ID
412nobodyさん:2007/05/04(金) 01:30:41 ID:???
if ( $mailaddress =~ /^(.*)\@(.*)$/ ) { $localpart = $1; $domain = $2; }

perlで上のような構文を見かけたんですが、
phpで似たような構文は可能でしょうか?
それともpreg_match()などの関数を使う必要があるでしょうか?
413nobodyさん:2007/05/04(金) 01:35:21 ID:???
>>410
大文字がなきゃだめならランダムで小文字を大文字に変換すれば
>>412
関数使うべし
414410:2007/05/04(金) 01:56:19 ID:???
だからどうやるのかPHPでおしえてよ
415nobodyさん: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']); }
これだけでいい?
416403: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もやってみましたがダメみたいです。
どうやれば取得できるのでしょうか?
417403:2007/05/04(金) 02:15:16 ID:???
質問ばかりでもアレなので・・・
>>410
echo md5(uniqid(mt_rand(), TRUE));
とすれば32桁のユニークなIDが取れます。
あとは適当に切って取りたい桁数にしてあければいいのでは?
418nobodyさん:2007/05/04(金) 02:16:52 ID:???
>>410
IPとか絡めてDESハッシュにしたら。

>>415
Undefined indexになるからよくない。

>>416
<input type="submit" name="send" value="120" />
ではダメなん?
419403:2007/05/04(金) 02:21:09 ID:???
>>418
それが出来ると一番簡単なのですが、「訂正」とか「削除」という表記のボタンなのでvalueは変えれないのです。
420nobodyさん:2007/05/04(金) 02:22:08 ID:???
>>416
$_POST['name']['30']に渡ってくるんだろ?
だったらそれのキーを取ればいいじゃん。
まぁ俺だったら面倒だからhidden使うけど。
421nobodyさん:2007/05/04(金) 02:28:48 ID:???
>>419
そうなると
key($_POST['send'])
かな。
422403:2007/05/04(金) 02:35:19 ID:???
>>420
取れました!!
$_POSTの後に何も書かなかったのがダメだったのですね
['name']と入れたら取得できました。
夜分にお騒がせしました。

今までtextのサイズを0pxにしていましたがhiddenを今まで知りませんでした。
便利そうですね。早速使って見ます。
423nobodyさん:2007/05/04(金) 02:44:24 ID:4Tv/1S6h
>418
Undefined indexだけなら実用上問題ないか
thx
424nobodyさん:2007/05/04(金) 05:32:41 ID:???
> 今までtextのサイズを0pxにしていましたがhiddenを今まで知りませんでした。
(;´Д`)
425nobodyさん:2007/05/04(金) 05:52:42 ID:???
質問なのにID出さない、かってに自己解決する奴が大杉
自演に必死真面目に答えてる奴もどうかと思うわ
426nobodyさん:2007/05/04(金) 06:48:35 ID:???
お前のほうがどうかと思うわ
427409:2007/05/04(金) 07:00:45 ID:???
自演かどうか別として
>>422
hiddenなんか使ってもあなたのやりたいことは、無理。
form要素をsubmit分使うなら別だけど、それなら、もともとの質問>>403と合わない。
428nobodyさん:2007/05/04(金) 11:05:02 ID:/O1lAt+h
wicketだ、wicket!
429nobodyさん:2007/05/04(金) 13:27:04 ID:???
PHPって

HTMLもろくに知らないやつでもできるんだーwww
430403:2007/05/04(金) 13:46:28 ID:???
ASP.NETからPHPに挑戦していますwwwwww
HTMLは多少知っている程度でも出来るみたいですねwwww
今はなんとなく書き方が判ったからなんとなく出来てますwwwwwwwww
431nobodyさん:2007/05/04(金) 13:47:53 ID:???
そりゃスクリプト言語なんだから知らなくてもできるだろ
HTML使わないケースもあるし
432nobodyさん: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の再コピーを試したのですが全く改善されません。
どなたかアドバイスください。よろしくお願いします。
433nobodyさん:2007/05/04(金) 16:38:17 ID:???
・ApacheのPHPIniDir設定は?
・php.iniのextention_dirの設定は?
・正確なエラー文は?
・php_sqlite.dllはちゃんとあるの?
434nobodyさん:2007/05/04(金) 16:50:51 ID:Cy0pzuiX
>>425
必死真面目とか言うけど、このスレ程解答者が情報出し渋るスレも中々ないから。
昔風の頭の固いお荷物共が答えてる感じしかしない。
435nobodyさん: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のスレで質問するように誘導されました。
436nobodyさん:2007/05/04(金) 17:00:11 ID:???
PHPIniDir設定は大いに関係ありますです。
エラー文はPHPのFatal Errorではなくてスクリプトのエラー表示なのね?
それならコード見せて。
437nobodyさん: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で呼び出すしかないのでしょうか?
438nobodyさん: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で前述のエラーが出るようになりました。
439nobodyさん:2007/05/04(金) 17:23:26 ID:???
>>437
$obj = new test;
$obj->ech("aaa","bbb","ccc");
440nobodyさん:2007/05/04(金) 17:23:34 ID:???
>>438
httpd.confの一番最後にでもそれを付け足して再起動して試してみて。

>>437
それだと引数で渡してる先はコンストラクタ。
echメソッドには何も渡してない。
441nobodyさん:2007/05/04(金) 17:30:29 ID:LLBEYpsm
つまり、class内、function外に書くとコンストラクタに渡すのですか・・・
classを宣言するときに、引数をclassに渡して、それをそのクラス内で使いまわしたい場合はどのようにすれば良いのですか?
442nobodyさん:2007/05/04(金) 17:34:02 ID:tMlUrrmD
>>440
付け加えてPC自体を再起動してみましたが状況は変わりませんでした。
PHPinfoで見るべき場所とかありますか?
443nobodyさん:2007/05/04(金) 17:36:41 ID:???
>>441
コンストラクタの中でプロパティに代入すれば?
444nobodyさん:2007/05/04(金) 17:39:40 ID:???
>>442
Configuration File (php.ini) Path 
extension_dir
mysqliteの段落
445nobodyさん:2007/05/04(金) 17:40:32 ID:LLBEYpsm
>>443
サンクス
その方法でやってみます
446nobodyさん: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
というのはありますけど違いますよね。
447nobodyさん:2007/05/04(金) 17:48:39 ID:???
mysqliteってなんだよ
448nobodyさん:2007/05/04(金) 17:52:07 ID:???
mysqliteワロタwwwwwwwwww
何で合体してるんだwwwwwwwwww
449nobodyさん:2007/05/04(金) 18:02:04 ID:???
フレームワークに、データベース管理が簡単になるようなものとか入ってる?
あとは、会員システムが作りやすくなる補助的なもの
450nobodyさん: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
という項目が現れるはず。
451nobodyさん:2007/05/04(金) 18:21:06 ID:tMlUrrmD
>>450
>それ、どっから何を再コピーしてきたのさ?そんな操作は不要なはずだぞ?
念のためにphp-5.2.2-Win32をDLして解凍して
extフォルダー内からコピーし直しました。
再インストールしてみます。

452nobodyさん:2007/05/04(金) 18:24:27 ID:???
iniで指定しなかったらSQLiteて項目も出ないはずだから
そのコピーが問題なんじゃね。
まずphpinfoで認識されるかどうかを確実にすることが先決だな。
453nobodyさん: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

このようなメッセージも確認でき無事にスクリプトも動きました。
アドバイスありがとうございました。
454nobodyさん:2007/05/04(金) 18:41:49 ID:???
>>453
> えーとwindowsのsystem32フォルダに以前のバージョンのdllを放置してたのが原因だったようです。
要らん再コピーとか無駄なアレンジを加えたための単なる自爆だな。
455453:2007/05/04(金) 18:48:28 ID:???
>要らん再コピー
これはこれで動くようになったという人の話をググって見つけたので試してみました。
要るかどうか判断できなかったので。。
でもそれ以前の問題だったようですね。すいません。
456nobodyさん:2007/05/04(金) 18:59:04 ID:???
>>453
いつも思うんだけど、解決に尽力してくれたその他多くの人達はどうでもいいの?
457nobodyさん:2007/05/04(金) 19:14:21 ID:???
>>456
アドバイスありがとうって書いてるのに
それ以上の何を望んでるんだろ?
458nobodyさん:2007/05/04(金) 19:21:06 ID:???
>>456見たいなのがこのスレを駄目にしている
まぁいまさら遅いか
459nobodyさん:2007/05/04(金) 19:31:25 ID:???
このスレだってちょっとマトモに見える時はある。
でも内容自体がくだらないので決して良スレには化けない。
くだ質スレなんてどこもそんな感じ。
460nobodyさん:2007/05/04(金) 19:42:29 ID:???
普通の質問スレなんて無いけどね
461nobodyさん:2007/05/04(金) 19:54:01 ID:???
前は普通の質問スレもあったけどな
462nobodyさん:2007/05/04(金) 20:29:43 ID:???
>>457>>458
礼に無神経な質問者が多いから駄目なんだよ。
言われる前に気を払わないと。
てか453は言われてもシカトだしな。
463nobodyさん:2007/05/04(金) 20:38:16 ID:???
なにこいつ
464453:2007/05/04(金) 21:15:30 ID:???
どうもすみませんでした。
離席してました。
ご回答くださった皆さん、本当にありがとうございました。
465nobodyさん:2007/05/04(金) 21:43:07 ID:4LncoC7V
system32になんで入ってるの?
PHP5.xみたいなディレクトリに収まってるはずじゃ
466nobodyさん:2007/05/04(金) 21:58:58 ID:KgO3BPJP
エラーの発見・解決をしやすくする方法を教えろ。
467nobodyさん:2007/05/04(金) 22:03:51 ID:???
>>466
自分で探せカス
468nobodyさん:2007/05/04(金) 22:05:55 ID:???
【PHP】下らねぇ質問はここに書き込みやがれ

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

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

469nobodyさん:2007/05/04(金) 22:10:33 ID:???
>>468
なんかいその騒動すれば気がすむんだよ
470nobodyさん:2007/05/04(金) 22:26:10 ID:???
結局何も変わらないのか……はぁ…。
471nobodyさん:2007/05/04(金) 22:43:26 ID:???
472nobodyさん: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 の場合に白紙になってしまいます。

どのあたりをチェックすればいいでしょうか?
473nobodyさん:2007/05/04(金) 23:20:41 ID:JeCkXlLh
PHPかJSPサーブレットを使って、MySQLを使うサイトを作ろうと考えているのですが
アクセス数が万などになって、訪れる1人1人が頻繁にSQL文を発行するようなサイトの場合、
PHPで作成した場合とJSP&サーブレットで作成した場合ではどの程度レスポンスに差が出てくるのでしょうか?

〜のサイトがPHPを使ってるなどという情報も教えていただけたら、と思っています。
474nobodyさん:2007/05/04(金) 23:22:56 ID:???
アクセス数が万って1秒間に?
475nobodyさん: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の/が悪さしてるんだろ。
476nobodyさん:2007/05/05(土) 00:03:04 ID:1dXIFJS6
>>475
レスありがとう。
/ は何かのゴミです。.htaccessには入ってないです。
477nobodyさん:2007/05/05(土) 00:07:01 ID:???
じゃあ問題を2つにわけなさいよ
.htaccessの書式については
read.phpの冒頭に
var_dump($_GET);を書いてで引数が渡っているかどうかを確認

ここが問題なきゃ後者のfile includeの部分で失敗している。
478nobodyさん: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");
だとうまくいきます。

どの資料でも -> でアクセスしているので -> にしたいのですが、
原因は何でしょうか?
479nobodyさん:2007/05/05(土) 00:25:48 ID:???
1.NGじゃ分からん。何がどうなる。
2.うまくいくじゃ分からん。何がどうなる。
ちなみにPHPでメンバにドットではアクセスできません。
480478: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
が表示できます。
なぜだろう…
481nobodyさん:2007/05/05(土) 00:37:22 ID:???
>>434
日本語でおk
482nobodyさん:2007/05/05(土) 00:38:17 ID:???
文字列連結になってるだけだし
db2tableってメソッドになってないし
483nobodyさん:2007/05/05(土) 00:38:30 ID:???
>>446の人気に嫉妬
484nobodyさん: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のルールすら守れないやつは引っ込んでろ
485nobodyさん:2007/05/05(土) 00:51:00 ID:eLQmnQPO
str_replaceだと、ヒットしたすべての語が変換されてしまいますが
最初にヒットした箇所だけを変換したい場合はどうすればいいですか?
486484:2007/05/05(土) 00:59:36 ID:???
つか経験者が「ドットじゃ無理」って言ってるのに
「いいやこっちの方が正しい。アクセス可能。」と言い張る神経が理解できない。
もしかして間違ってるのは自分のほうかな?と省みることは無いんだろうか。
自分のやってることは全て正しくて、間違ってるのは周りに決まってると思ってるんだろうか。

>>485
preg_replace
487nobodyさん:2007/05/05(土) 01:08:53 ID:wIBq1T/y
PHPバージョンアップ記念あげ
488nobodyさん:2007/05/05(土) 01:58:52 ID:???
おまえらコンパイル画面でも見て悟りを開け
行く文字のながれは絶えずして、しかも本のソースにあらずってな
489nobodyさん:2007/05/05(土) 02:45:33 ID:???
日本語でおk
490nobodyさん: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 などが直リンできなくなります。
いったいどこがどうなっているのかさっぱりです・・・
491nobodyさん: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]」の数が定まっていれば簡単ですが、
変化する場合、()の使い方がイマイチわかりません。
どのようにすればよいでしょうか?
492nobodyさん:2007/05/05(土) 03:17:45 ID:???
>>491
素直にソース出したほうが早い
なんとなくpreg_match_allのマニュアル読み直すと解決しそうな匂いはする
493nobodyさん:2007/05/05(土) 04:04:49 ID:???
正規表現自体間違ってるよ
494nobodyさん:2007/05/05(土) 04:09:10 ID:???
>>491
単に改行コードが\r\nなだけじゃ?
初めから終わりまで指定してまうと
その間の全ての文字を考慮しないといけなくなるから
(もちろんそれが必要になる場合もあるけど)
'/TEST ([[:digit:]]+)/'
その場合単にこうしてしまった方がいいと思うけど。
495494:2007/05/05(土) 04:13:01 ID:???
ああ違った正規表現の所為でループしてないのね…
496nobodyさん:2007/05/05(土) 05:32:40 ID:???
ユーザーからの入力値を正規表現で変換する場合、
入力値に正規表現の特殊文字が含まれているかもしれないですよね?
そんな特殊文字を一括してエスケープする方法はありますか?
497nobodyさん:2007/05/05(土) 05:40:53 ID:???
あります。
498nobodyさん:2007/05/05(土) 05:47:39 ID:2h7OPxMf
>>1
499nobodyさん:2007/05/05(土) 06:49:12 ID:???
>>496
正規表現に変換?
正規表現で置換?
500nobodyさん:2007/05/05(土) 08:05:14 ID:???
>>499
正規表現で置換です
preg_quoteってのがあるみたいですね
501nobodyさん:2007/05/05(土) 10:29:56 ID:???
ランダムな文字列から全角・半角数字を取り除く方法を教えてください。

例、

こども人口、26年連続減少の1738万人
 ↓
こども人口、年連続減少の万人
502nobodyさん:2007/05/05(土) 11:17:37 ID:???
>>498
503nobodyさん:2007/05/05(土) 11:20:07 ID:???
>>501
UTF-8ならpreg_replaceでuオプションを付けて、
他のエンコードならmb_ereg_replaceで、
[0-90-9]を指定。
504nobodyさん:2007/05/05(土) 11:24:53 ID:???
session.gc_maxlifetimeで設定した時間以下で
セッションが勝手に破棄されることってありますか?
maxのlifetimeという表現が気になります
505501:2007/05/05(土) 11:28:20 ID:???
>>503
ありがとう御座います

>>502
分からないなら黙ってれば?
506501:2007/05/05(土) 11:50:38 ID:???
なんかレベルひくいよねここ
507nobodyさん:2007/05/05(土) 12:13:54 ID:???
ワロタ
508nobodyさん:2007/05/05(土) 12:29:09 ID:???
>>500
置換される側なら別にエスケープする必要ないべ
509nobodyさん: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再起動するの忘れた。
もしかしてそれのせい?
510nobodyさん:2007/05/05(土) 13:21:14 ID:???
>>509
俺がPHPを伝授するスレの前半をよめ
511nobodyさん:2007/05/05(土) 13:22:14 ID:???
じゃしろよ
512nobodyさん:2007/05/05(土) 14:51:25 ID:???
だから質問者はID出せと何度言ったら。
面白半分に騙る奴が出て来るんだよ馬鹿。
513nobodyさん:2007/05/05(土) 15:35:13 ID:KTSUFz5D
include, require, readfile などでファイルを読み込んで出力する際に
ファイルロックはしておく必要があるのでしょうか?

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

そりゃそうだ
515513:2007/05/05(土) 15:46:33 ID:???
すいません自己解決しました。
http://nyx.pu1.net/practice/file_ope/file_ope9.html
516nobodyさん:2007/05/05(土) 15:54:47 ID:???
「ファイルロックしなきゃ!!」と思う前に
「ファイルロックって何?」って思わないもんなん?
517nobodyさん:2007/05/05(土) 16:02:16 ID:???
いや、ファイルロック位知ってます。
読み込むだけなら〜 の部分は readfile などがロックしてるのかと思って書いたものです
急いで書いたため全然違う日本語になってしまいましたが…
518nobodyさん:2007/05/05(土) 16:28:34 ID:???
いや明らかに分かってないだろ
日本語も分かってないんじゃねw
まずマニュアル読めよ
519nobodyさん: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">

こんな感じに変換したいんですが、うまくいきません。
お力添え御願いします。
520nobodyさん:2007/05/05(土) 18:34:55 ID:???
何をやったらうまくいかなかったの?
521519: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);

これで上のパターンはうまくいくのですが
下のパターンがダメです。
正規表現を使えばいいのでしょうが書き方がわかりません。
522nobodyさん: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);

こんな感じか
パターンかなり適当だからマッチしない場合には修正してくれ
正規表現はマニュアル見て勉強するしかない
523519: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>';
これでうまくいきました。有難うございました。
524nobodyさん:2007/05/05(土) 20:10:21 ID:???
>>523
お前の元発言が</a>とか書いてなかったからだろ
525nobodyさん: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使うしかないんでしょうか。
526nobodyさん:2007/05/05(土) 23:43:34 ID:cnfZ7N5Y
すいません。
×Googleに対してContent-Encoding: gzip

○Googleに対してAccept-Encoding: gzip
でした。
527nobodyさん:2007/05/06(日) 00:14:57 ID:???
>>525
あるじゃん
ttp://jp.php.net/manual/ja/function.gzdecode.php
目的に合うかわしらんが
528nobodyさん:2007/05/06(日) 01:12:42 ID:???
527はレスの日本語も読めない人
529nobodyさん:2007/05/06(日) 01:59:55 ID:mYMYvtVv
複数のウェブアプリを一つのサーバーに入れていて、
各々のウェブアプリのセッションの寿命設定が違う場合、
他のウェブアプリが走らせたガベージコレクションによって
別のウェブアプリのセッションファイルが
目論見より早い段階で掃除されてしまう、
ということはありえるでしょうか?
ありえるとしたら、
アプリごとに、セッションパスを必ず分けなくてはいけない…
ということでしょうか?
530nobodyさん: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アプリ用の
セッション情報を削除してしまうのは間違いないけど、それは既に
寿命の切れたセッション情報だから問題ないはずだ。

どう?
531nobodyさん:2007/05/06(日) 02:58:14 ID:???
>>529
セッションパスとセッション接頭子が全く一緒なら
そりゃ混ぜこぜにされちゃって掃除対象になっちゃうのでは。
session.save_pathかsession.nameのどっちかは
変えとかないといかんのじゃないかな。
うちはセッションルールが異なるアプリの場合、
session.save_pathは一緒だけどsession.nameをそれぞれ変えてる。
532nobodyさん:2007/05/06(日) 02:59:20 ID:???
>>529
http://jp.php.net/manual/ja/ref.session.php
> 注意: 異なる値を session.gc_maxlifetime に指定している 別々のスクリプトがセッションデータの保存場所を共有している場合、 一番小さい設定値に達した時点でデータが消去されます。このような場合には、 お互いに session.save_path を使用します。

他のノイズは無視して下さい。
533nobodyさん:2007/05/06(日) 03:00:50 ID:???
>>530
その「寿命」の設定が全く異なる場合に、
長命設定のものが短命設定のものに巻き込まれて
削除されてしまうのを心配してるんじゃ?
何を持って
> それは既に寿命の切れたセッション情報だから問題ない
と言ってるんだろう。
534nobodyさん:2007/05/06(日) 03:05:01 ID:???
>>531
session.nameってURLのパラメータ識別子であって接頭子なんかじゃないぞ。
セッション情報は session.save_path/sess_* で保存されてるんだから
session.save_pathが一緒である限り他と区別する方法なんてない。
535nobodyさん:2007/05/06(日) 03:10:41 ID:WP5rGYZn
setcookie("i_id" , "hoge" , time() + 60 * 60 * 24 * 7);
とクッキーをセットした場合、セットしたディレクトリのみ有効?
上のディレクトリも有効にする事って出来ない?
536nobodyさん:2007/05/06(日) 03:20:24 ID:???
>>533
ガーベジコレクタは寿命の切れたものしか削除
しないだろ?
だったら>>530の言うように寿命がそれぞれ違っ
ても問題ないんじゃない?
537529:2007/05/06(日) 03:22:18 ID:???
ご回答ありがとうございました
最低の設定で掃除されてしまうとは・・・
セッションセーブパスを必ず設定することを習慣にした方が
いいかもしれないですね
538nobodyさん:2007/05/06(日) 03:27:27 ID:???
>>536
寿命は生成時には決められない、ということでは?
gc_maxlifetimeは文字通りGCに対してだけの設定で、
セッションファイルに「このファイルの寿命はここまで」という属性を
与えるわけではないと。
539nobodyさん:2007/05/06(日) 03:39:48 ID:???
>>538
なるほど。いや勉強になった

しかし俺が言うのもあれだがセッション関連の話題は毎スレ出てくるな
まとめをテンプレに入れたほうがいいのかな?
540nobodyさん:2007/05/06(日) 03:48:36 ID:???
【PHP】セッションについて語ろう!【PHP】
http://pc11.2ch.net/test/read.cgi/php/1064399467/
541nobodyさん:2007/05/06(日) 03:57:09 ID:???
>>535
マニュアル読めよー
引数4番目がディレクトリの設定。
542nobodyさん: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は無視されているのでしょうか?
543525:2007/05/06(日) 05:36:49 ID:7LnaFZ8P
gzdecodeが悪かったわけではなく自分が、とちっていたようです。すいません。
レスポンスされたデータを適切に処理していなかったため
gzdecodeでエラーを返していたみたいで、その壊れたデータをgzopenを使って処理した場合には
なぜかうまく処理できていたというだけのようです。
具体的にはTransfer-Encoding: chunkedの時に
40
hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge
3a
hogehogehogehogehogehogehogehogehogehogehogehogehogehogeho
0
のように返ってくるデータを
全部つなげてからgzdecodeしなければならないところを
切れたままのデータにgzdecode処理してしまっていたのが原因でした。
レスくれた人ありがとうございました。
544542: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にしておいた方がいい気がします
545nobodyさん:2007/05/06(日) 12:39:42 ID:???
おまえは質問しにきたのかお知らせにきたのかハッキリしないやつだな
546nobodyさん:2007/05/06(日) 12:51:11 ID:???
まあ下質スレだしな
547nobodyさん:2007/05/06(日) 13:41:07 ID:???
質問がらみでわかったことを情報提供するのが何が悪い
548nobodyさん:2007/05/06(日) 13:46:15 ID:???
そして無駄なログが増えて続けて2ちゃんでるはデブになってゆく
549nobodyさん:2007/05/06(日) 16:09:13 ID:???
だがそれがいい
550nobodyさん:2007/05/06(日) 16:16:08 ID:???
うんこ
551nobodyさん:2007/05/06(日) 16:52:18 ID:???
>>542
昔、グローバル変数とSESSIONがカチ会うとSESSIONが上書きされる現象に悩まされたが
原因はそれかあああ
session変数にses_を付ける方法でしのいだがとんでもないバグだな。
PHPのクオリティーの低さは異常。
552nobodyさん: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に統一した状態でも同じでした
553nobodyさん: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
が何度か出てきます
554nobodyさん: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と返す関数が見つかりません
あれば教えてください。
555nobodyさん:2007/05/06(日) 18:31:03 ID:zIFA24Jt
別にYESでなくてもいいので判断する関数をお願いします。
556nobodyさん:2007/05/06(日) 18:43:18 ID:???
$hoge===0
557nobodyさん:2007/05/06(日) 19:10:25 ID:???
>>554
ctype_digit()
558nobodyさん:2007/05/06(日) 19:11:21 ID:???
って000333はnoなのか。なんでだ。
559552:2007/05/06(日) 19:17:43 ID:bSP5KVqH
Webprog板のphp関係下質スレで聞けと誘導されてきたのですが
ここもスレ違いでしょうか
560nobodyさん:2007/05/06(日) 19:20:07 ID:???
ならこれくらいしか思いつかない。
preg_match("/^(0|[1-9][0-9]*)$/", "値")
561nobodyさん:2007/05/06(日) 19:22:07 ID:gRJO/G6J
設計について相談です。

会員毎のアクセス解析を作る場合、アクセスがあった度にログに追加していては
例えDBを使ったとしても、尋常じゃないほどログが増えすぎると思います。
かといって、1会員毎にログファイルを生成するやり方も、古い気がします。

そこで、指定件数(例えば30日以降のログは消去する)を決めて
1回目のアクセスは新規登録、2回目以降は上書き(カウントアップ)だけに
しようとも思います。これだと会員が1000人いたら、1000×30=3万件ですが。

ただ、この考え方で良いのかどうか不安です。良い知恵をお借り出来ないでしょうか。
562nobodyさん:2007/05/06(日) 19:27:13 ID:???
>>560
「0.00333のtypoでした」かもしれない。本人待ちがいいんでない?
563nobodyさん:2007/05/06(日) 19:32:08 ID:???
>>561
俺ならアクセス毎に1件登録して
1日1回バッチ処理でユーザ毎の
カウントを集計してログを削除、にする。

アクセス毎にupdateは処理が重いのと、
不具合が出たときに誤集計になりやすい。
564nobodyさん: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で取得できるのはわかるのですが、どなたか仕組みを知りませんか?
565561:2007/05/06(日) 19:38:27 ID:???
>>563
ありがとうございます。なんとなく糸口が見えてきたので、
もう少しお願いします。

>1日1回バッチ処理でユーザ毎の カウントを集計してログを削除、にする。

との事ですが、これはログファイルを生成して日が終わった後に
修正したデータをDBに登録する。

と言う事でしょうか?それとも日のアクセスも一時保存用テーブルに保存して、
集計時に集計したデータを履歴用テーブルに保存し、一時保存のテーブルは
空にする と言う事でしょうか?
566nobodyさん:2007/05/06(日) 19:38:54 ID:zIFA24Jt
>>560
おお、これです。
感謝します。

解答してくれた方もありがとうございました

誤入力を避けるために000333は禁止する方向でやってます
567nobodyさん:2007/05/06(日) 19:41:09 ID:???
>>552
manual読んでもわからないならXAMPPでも入れておけば良いんじゃないかしら。
568nobodyさん:2007/05/06(日) 19:45:23 ID:???
>>564
mod_rewite + router
569nobodyさん:2007/05/06(日) 19:56:41 ID:bSP5KVqH
>>567
XAMPPの最新版を入れても同じエラーになります
570nobodyさん:2007/05/06(日) 19:57:07 ID:CCThxWoF
あるサイトからフィルター的に部分部分で表示しようと思っているんだが、
もしサイトが更新されても安定して取得・表示する方法でいいアイデアってないかな?
今はサイトを取得してからeregで特定タグなりを目印にして出力しているんだが…
571nobodyさん:2007/05/06(日) 20:13:39 ID:OoDHPbxz
$a = ($b) ? $c : $d;

これってどういう意味?
一応調べたんだけど記号だからうまく調べられなかった
572nobodyさん:2007/05/06(日) 20:17:03 ID:jInvdC5H
三項演算子 マニュアルの演算子のとこ
573nobodyさん:2007/05/06(日) 20:19:18 ID:OoDHPbxz
>>572
サンクス!
574nobodyさん:2007/05/06(日) 20:31:12 ID:???
>>564
$_SERVER['QUERY_STRING']
575nobodyさん:2007/05/06(日) 20:31:58 ID:???
>>570
>更新されても安定して取得・表示する方法
ない。相手側の勝手だから。RSSとかやってるなら別だけど。
576nobodyさん:2007/05/06(日) 20:33:11 ID:???
>>565
その辺の選択はアクセス量などに応じて
好きな方でいいと思う。
577nobodyさん:2007/05/06(日) 20:35:17 ID:???
>>570
そもそも部分部分に表示って
どういう基準で選り分けてんだ
578nobodyさん:2007/05/06(日) 20:35:48 ID:UWEsfuIO
http://***/?hoge=foo
じゃなくて
http://***/?hoge
とか
http://***/hoge
でやってるサイトが多いのは何で?
579nobodyさん:2007/05/06(日) 20:37:10 ID:???
その方がかっこいいからじゃね?
580nobodyさん:2007/05/06(日) 20:37:24 ID:???
>>578
SEO対策の一環
581nobodyさん:2007/05/06(日) 20:40:07 ID:???
>>569
apache再起動した?
最初からXAMPPなの?別個に入れた後XAMPPも入れたの?
ちなみにいつエラーって言われるのさ?
もう一回最初から手順どおりやって見れ。そのほうが早いよ。
582nobodyさん:2007/05/06(日) 21:30:55 ID:???
>>564
$_SERVER['PATH_INFO']
583nobodyさん:2007/05/06(日) 22:46:11 ID:???
584nobodyさん:2007/05/06(日) 22:56:15 ID:???
$_SERVER環境変数のうちPATH_INFOは、環境によって色々問題あるからね。
一番不安定。俺ならREQUEST_URI使うな。
585nobodyさん:2007/05/06(日) 22:58:29 ID:???
あるUNIX時間をフォーマットして「分」を出す関数ありませんか?
586nobodyさん:2007/05/06(日) 22:59:28 ID:???
>>585
date(s);
587nobodyさん:2007/05/06(日) 23:05:09 ID:???
 
588nobodyさん:2007/05/06(日) 23:06:51 ID:???
>>586
ありがとうございます。
589nobodyさん:2007/05/06(日) 23:41:18 ID:???
590nobodyさん:2007/05/06(日) 23:44:27 ID:???
>>589
設定次第とはどんなの?
591nobodyさん:2007/05/06(日) 23:46:17 ID:???
>>583 「動的URL 静的URL 」 で検索.
592nobodyさん:2007/05/06(日) 23:48:11 ID:???
めんどくさいから一言でおながい
593nobodyさん:2007/05/06(日) 23:49:30 ID:???
一言:「IDを出せ」
594nobodyさん:2007/05/06(日) 23:51:47 ID:???
指図するな!!!
595nobodyさん:2007/05/07(月) 00:05:20 ID:???
平和だな
596nobodyさん:2007/05/07(月) 00:44:37 ID:???
               ,      ,
  ./  ̄/  ̄  / _|__ ___|_
    ―/     /   |/   /|
    _/  _/    |  _/|
                                  /\___/ヽ           
    (.`ヽ(`> 、                      /''''''   '''''':::::\           
     `'<`ゝr'フ\                 +  |(●),   、(●)、.:| +      
  ⊂コ二Lフ^´  ノ, /⌒)                 |  ,,,ノ(、_, )ヽ、,, .::::|       
  ⊂l二L7_ / -ゝ-')´                .+ |   `-=ニ=- ' .::::::| + .    
       \_  、__,.イ\           +     \   `ニニ´  .:::/    +  
        (T__ノ   Tヽ        , -r'⌒! ̄ `":::7ヽ.`- 、   ./|  . 
         ヽ¬.   / ノ`ー-、ヘ<ー1´|  ヽ | :::::::::::::ト、 \ (  ./ヽ    
          \l__,./       i l.ヽ! |   .| ::::::::::::::l ヽ   `7ー.、‐'´ |\-、 
  ___________________________  __
 │二│三│四│二│三│四│二│三│四│◎│◎│◎│伍│|伍| 
 │萬│萬│萬│萬│萬│萬│萬│萬│萬│◎│◎│◎│萬│|萬|
597nobodyさん:2007/05/07(月) 02:20:03 ID:ey+jINI9
Rails等のフレームワークにあるflush(一回限りのセッション)て
どうやって実装すればいいですか?
598nobodyさん:2007/05/07(月) 02:46:59 ID:oQG5Osro
Smarty使い始めたらファイルの量が2倍になって、
20〜30ページも作るとファイルの管理とエディタで切り替えがいい加減だるくなってくるんですが、
皆さんテンプレートやPHPファイルの数が増えても普通にエディタで作ってますか?
EmEditorで全部書いてるんですけど、統合環境とか使うと違うのかなぁ。
599597:2007/05/07(月) 03:34:54 ID:???
register_shutdown_functionを使ってできますた
600nobodyさん:2007/05/07(月) 03:52:54 ID:???
Smartyとか使ってるカスまだいたのか
601nobodyさん:2007/05/07(月) 04:14:46 ID:???
使ってない童貞まだいたのか
602nobodyさん:2007/05/07(月) 05:29:17 ID:VG09sLBd
そそ、テンプレートとかモデルとか使ってるとファイル数が増えすぎて逆に管理が大変になったりするんだよね・・・
603nobodyさん:2007/05/07(月) 06:53:03 ID:HuKM0EbB
URIからドメイン部分だけ抜き出すにはどうすればいいですか?
http://hoge.com/poge/fugo

hoge.com
みたいな感じです
604nobodyさん: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"
}
605nobodyさん:2007/05/07(月) 07:17:22 ID:???
>>604
ありがとうございました
606nobodyさん:2007/05/07(月) 11:00:55 ID:???
すみませんが教えてください。
PHPでPDFを出力したく、フリーのライブラリを探しているのですがなにがお勧めでしょうか?
PDFLibは、商用で使う場合有償なのですよね?
607nobodyさん:2007/05/07(月) 11:26:11 ID:???
pearにあんじゃないの
多分
608nobodyさん:2007/05/07(月) 11:47:12 ID:sGzYZkCO
下記SQLで抽出しようとすると、関係の無い2バイト文字まで出てきてしまいます。
どのようにすればよいでしょうか、よろしくお願いします。

$str="a";
$sql="SELECT * FROM table WHERE field LIKE BINARY '$%str%';";
609nobodyさん:2007/05/07(月) 11:49:26 ID:sGzYZkCO
すみません、間違いました。
訂正 $sql="SELECT * FROM table WHERE field LIKE BINARY '%$str%';";
610nobodyさん:2007/05/07(月) 12:18:04 ID:???
>>609
バイナリで検索してるんだから当たり前
LIKE BINARY

LIKE

更にフィールドの型がbinary型になっていないかチェック
611nobodyさん:2007/05/07(月) 12:30:58 ID:sGzYZkCO
>>610
ありがとうございます。
LIKE BINARYとしているのは、テキストボックスに入力があった場合に
日本語文字も検索できるようにしているからです。
この場合どうすればよいでしょうか。
よろしくお願いします。
612609:2007/05/07(月) 13:09:14 ID:sGzYZkCO
preg_matchで調べて2バイト文字を含む時のみBINARY句を入れるようにしたんですが
思うようにいきません。
データベースはMYSQLで検索対象フィールドタイプはtextにしています。
613nobodyさん:2007/05/07(月) 13:16:35 ID:???
クッキーについて
setcookieで同一ページでは問題ないのですが
同じ階層の違うページで
if( isset( $HTTP_COOKIE_VARS["vs_pass"] ) ) {
$vs_pass = $HTTP_COOKIE_VARS["vs_pass"];
} else{ . . .
とやってもからっぽでした。

ドメインやパスか何かを指定しなければならないんでしょうか?
614nobodyさん:2007/05/07(月) 13:17:17 ID:???
>>607
ライセンス嫁
615nobodyさん:2007/05/07(月) 13:19:12 ID:???
まちがえた>>606
616nobodyさん:2007/05/07(月) 14:12:45 ID:???
617nobodyさん:2007/05/07(月) 14:22:40 ID:???
DB側の問題だよね?
618nobodyさん: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 でもインストールすることが出来ません。

ググっても同じような症状を解説しているサイトが見つからず、解決策が見つかりません。
どなたかご存知の方がいらっしゃいましたら、アドバイス頂けたらと思います。
よろしくお願いいたします。
619nobodyさん:2007/05/07(月) 14:33:48 ID:???
文字コード指定すればいいだろ。日本語あるからバイナリて。
620618:2007/05/07(月) 15:01:20 ID:V6z/gjwq
自己レスです。

CSVにてダウンロード、コンパイルが出来ました。。
お騒がせいたしました。
621nobodyさん:2007/05/07(月) 18:28:01 ID:eAJiAY6Q
すみません。include構文でつまづいています。初心者ですが、おしえてください。
Apache2/htdocs/sampleフォルダにPHPファイルを入れています。include構文で使うふぁいるは
Apache2/includeに入れないとだめみたいなんですが、sampleフォルダからだと相対パスはどうなるんでしょうか?
../../include.incとしても駄目でした。他にも色々試したんですがだめでした。
622621:2007/05/07(月) 18:31:26 ID:eAJiAY6Q
621です。事故解決しました。他の部分のソースが違ってました。。

すみません。
623nobodyさん:2007/05/07(月) 20:07:37 ID:???
ねこすけgoogle八分にされないかな
624nobodyさん:2007/05/07(月) 22:11:52 ID:i2xtF+k7
ファイルの行数の総数を出す関数ありませんか?
625nobodyさん: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
626115:2007/05/07(月) 22:47:53 ID:???
>>624
単一では、ないんじゃないの?
最後の行が、改行コード行末を持つかどうかでちがう。
$file_array = file('foo/bar/file');
$count = count($file_array);
として、end($file_array);で最後の行の末尾が改行コードあるかどうかをチェックして
$count + 1 するかどうかが必要。




627nobodyさん:2007/05/07(月) 23:01:44 ID:DrdXpO7U
fopenで改行探すだけ
file()だとtextが100MBあったら100MBの配列作ることになるわな

>>625
insertは戻り値無いからPDO->exec使うべ
628625:2007/05/07(月) 23:16:58 ID:???
>>627

どうもありがとーです!
原因は、、、、dbのアクセス権がよろしくなかったみたいです。。orz
アクセス権を修正したら、execでもqueryでも出来ました。><

しかも、「counrty_tbl」のつづりが間違ってました。。orz

でも、627さんのレスのおかげで、再び希望を持つことが出来、原因を突き止めることが出来ました。本当に助かりました!
629624:2007/05/07(月) 23:30:11 ID:i2xtF+k7
なんとなくわかった気がします。

私がやりたかったのは、
「ある行で、ある文字が検出されたら、それより上の行を全削除する」ってのをやりたかったんです。
630nobodyさん:2007/05/08(火) 01:18:30 ID:???
>>613
同じ階層であれば通常は問題ないはずなんだがなぁ〜
なんか特殊なことでもしてる?
単純にクッキーの発行と読み出しだけする
2個のプログラムでも書いて動作確認してみては?

どうでもいいけど $HTTP_COOKIE_VARS はもう古い。
631nobodyさん:2007/05/08(火) 01:21:25 ID:???
>>629
なんでそれで行数のカウントなんてするんだ?
632nobodyさん: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
633nobodyさん:2007/05/08(火) 04:01:01 ID:???
ソースに問題があるとは考えないんだ
634nobodyさん:2007/05/08(火) 04:01:16 ID:???
ソースがなけりゃエスパーの出番だろ
635nobodyさん:2007/05/08(火) 04:11:33 ID:???
>>633
いやー、ほんについてたCDのソースをそのまま使ってみたんだけど、
それでも動かなかったので…
基本的な設定がおかしいのかと。
636nobodyさん:2007/05/08(火) 04:18:10 ID:???
ブラウザのクッキーがオンになってないんだよ。
637nobodyさん:2007/05/08(火) 04:18:22 ID:???
>>635
auto_startがOFFならソース中にsession_start()はあるんだよな?
…という感じで、設定値が正しいかどうかはソースによる。
設定だけ出されても
> Session Support enabled
を見て、使えるかもしれなないね、としか言えない。
save_pathのディレクトリにセッションファイルは生成されてんの?
638nobodyさん:2007/05/08(火) 04:25:38 ID:???
貴様の3流ソースなんてパクらねえし、探せば似たようなコードがありふれてんだから
どうどうと晒せよクズ
639nobodyさん:2007/05/08(火) 04:35:11 ID:???
晒せだと!?
晒すならお前が晒せよ
640nobodyさん:2007/05/08(火) 04:43:03 ID:???
ソースもださずに質問するなっ!!!!
641nobodyさん:2007/05/08(火) 04:46:53 ID:???
頭おかしいのかっ!!ふざけんな!!!
642nobodyさん:2007/05/08(火) 04:52:30 ID:???
PHP:神の子孫
Perl:漢
asp:いとこ
Ruby:ネカマ
643nobodyさん:2007/05/08(火) 04:53:38 ID:???
>>87

>>1の頭に失礼だよ
644nobodyさん: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))
にしとけば何が起きてもすぐ解ると思うよ。
645632:2007/05/08(火) 08:11:02 ID:???
ソース見せろとのご意見、ありがとうございました。
http://sakuratan.ddo.jp/uploader/source/date39691.zip がソースです
セッションの問題ということで、複数のファイルから構成されていて量があるため
見るほうの負担になるんじゃないかと思ったんですがヨロシクお願いします。
646nobodyさん:2007/05/08(火) 10:45:51 ID:???
該当部分だけ抜き出せよ
回答者に対して全部読めとかふざけてんの?
どこが関連部分かすらも分かってないからできないんじゃん
647nobodyさん:2007/05/08(火) 10:55:59 ID:???
抜き出せだぁ!?
お前が抜き出せよ
648nobodyさん:2007/05/08(火) 11:02:17 ID:???
ガタガタいってんじゃねえぞヘボ回答者ども!!
おまえらが晒せっていったんだぞクズ度も!!!
いいから答えろや!!!
あ、ごめんwwwwおまえらレベルひくいんだっけ?wwwwwwwwwwwww
649nobodyさん:2007/05/08(火) 11:41:50 ID:???
ソースめんどくさいから見ないが、
なんとなくPHPのバージョンが悪いんじゃないかと思う。
650nobodyさん:2007/05/08(火) 11:46:45 ID:???
2004年のソースか
651nobodyさん:2007/05/08(火) 12:34:19 ID:???
>>645
肝心の
chap5
が無いけど
それに本のプログラムを勝手に晒すと著作権違反では
652nobodyさん:2007/05/08(火) 12:55:43 ID:???
原因の切り分けができてない証拠だな
653nobodyさん:2007/05/08(火) 13:53:03 ID:???
原因の切り分けができるようだったら、そもそも質問しないだろうがw
654nobodyさん:2007/05/08(火) 14:10:32 ID:???
じゃつまり切り分けしろってことだな
655nobodyさん:2007/05/08(火) 14:36:56 ID:???
printfとsprintf
の違いは何でしょうか?
PHPマニュアルでは、
sprintf:フォーマットされた文字列を返す
printf:フォーマット済みの文字列を出力する
とありますが、意味がよく分かりません。
656nobodyさん:2007/05/08(火) 14:43:43 ID:???
フォーマットされた値がほしいだけなのに常に出力されたら困るやんか
657nobodyさん:2007/05/08(火) 14:46:41 ID:???
>>656

早速の返信ありがとうございます。
Cと同じで良かったんですね。どうも、お手数お掛けしました。
658nobodyさん:2007/05/08(火) 14:51:18 ID:???
本当にわかってるんだかわかってないんだか・・・
659nobodyさん: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すればどこでデータなくなってるか分かるかと。
661nobodyさん: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
662nobodyさん:2007/05/08(火) 17:50:46 ID:8RlmlJO8
こんなスレにまで張られるとは
663nobodyさん:2007/05/08(火) 18:00:01 ID:???
日本人は暇人なんだなって思われるだけだな。
664nobodyさん:2007/05/08(火) 18:48:04 ID:cGr79y4f
>>662
>>663
レスすんなよカス2匹
665nobodyさん:2007/05/08(火) 19:07:54 ID:???
今Sn Uploaderを使って
UpLoader作成して
Upできるようにはなったんだが
ブログにリンクはるとアクセスできませんって
でるんだが
原因なにかわかりますか?
使ってるレンタルHPは
infoseek
666nobodyさん:2007/05/08(火) 19:11:42 ID:???
それだけじゃ、全然わからん
667nobodyさん:2007/05/08(火) 19:17:16 ID:???
並みのエスパーではわからん。
スーパーエスパーが必要
668nobodyさん:2007/05/08(火) 19:18:21 ID:???
すまん
PHPじゃなくてPerlでした
質問とりさげます
669nobodyさん:2007/05/08(火) 19:28:20 ID:???
スーパーエスパーもびっくり
670nobodyさん:2007/05/08(火) 19:39:36 ID:???
その前に句読点覚えようぜ。頭悪く見える。
671nobodyさん:2007/05/08(火) 19:39:38 ID:???
スーパーエスパー3でないと分からんな
672nobodyさん:2007/05/08(火) 20:01:07 ID:???
PHPとかPerlの垣根以前の問題だろうに
673nobodyさん:2007/05/08(火) 20:47:26 ID:T0+r/ZNA
アクセサについて質問なんですが、
これはプロパティとも呼ばれるもので、
クラス内のprivateメンバ変数が、外部からの操作を直接できないように、
間接的にアクセスするための仕組みなようなものという認識であっていますか?

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

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

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

OOPに詳しい方、ぜひこれぞアクセサだという説明をしていただけませんでしょうか?
よろしくおねがいします。
674nobodyさん:2007/05/08(火) 20:50:16 ID:???
__getとか見るべ
675nobodyさん:2007/05/08(火) 20:57:31 ID:zeXB/nU1
ヘッダに付くPHPのバージョン番号を隠す方法を教えて下さい
前にどこかで見た気はするのですが…
676nobodyさん:2007/05/08(火) 20:58:01 ID:???
すいません
PHPを作ってファイルをアップするとき
掲示板はどうしますか?
原因がわかりません・・・
677nobodyさん:2007/05/08(火) 21:00:35 ID:???
>>676
日本語でおk
678nobodyさん:2007/05/08(火) 21:03:25 ID:???
>>676
超質問だな
679nobodyさん:2007/05/08(火) 21:08:25 ID:???
680nobodyさん:2007/05/08(火) 21:25:36 ID:???
>>673
結論から言うとPHPでは意味が違う。
PHPでいうアクセサはマジックメソッドの__get()及び__set()。
これらは存在しないメンバ変数をコール、
または存在しないメンバ変数に割り当てようとしたときにオートコールされるもの。

んで普通アクセサというとその認識で概ね合っている。
Javaだとアクセサとはいうもののただのメソッド
681680:2007/05/08(火) 21:27:00 ID:???
ごめん途中で送信しちゃった。
Javaだと構造的にはただのメソッドと変わらないような物らしいから、
C#のプロパティとかがアクセサのイメージとしては一番近いんじゃなかろうか。
682nobodyさん:2007/05/08(火) 21:46:16 ID:???
__getや__setって本来使うべきものじゃないっしょ?
683673:2007/05/08(火) 21:49:04 ID:T0+r/ZNA
>>680
どうもお答えありがとうございます。
おかげでモヤモヤがとれました。
イメージが近いとのことなので、早速C#のプロパティについても調べたいと思います。
684nobodyさん:2007/05/08(火) 22:17:43 ID:j3fFuUxd
メソッドのforeachとかによく使う配列があんだけど、
毎回そいつをいちいち書くのだるいから、
define("XYZARR",array("X","Y","Z"))ってやったけどだめだったよ。
$GLOBALS["xyz"]=array(ry とかで参照させるしかねぇのかな?
685nobodyさん:2007/05/08(火) 22:18:28 ID:???
メンバ変数にすりゃいいじゃない。
686nobodyさん:2007/05/08(火) 22:24:17 ID:???
クラスって何なのか分かってない悪寒

(ついでに言えばdefineのページくらい見れよ)
687nobodyさん:2007/05/08(火) 22:24:20 ID:j3fFuUxd
>>685 $this->xyz よし、短い。採用します。どうもです。
でもdefineっぽくもっと汎用で使えないかなぁと言ってみます。
まぁ最上位のクラスのプロパティにすればほぼ問題ないだろーけど。
688nobodyさん:2007/05/08(火) 22:26:05 ID:j3fFuUxd
>>686 説明不足すまん。
いろんなクラスのメソッドで使ったりとか、
とにかくいろいろ用途が多いってことなんすよ。
689nobodyさん:2007/05/08(火) 22:28:46 ID:???
だったらオブジェクト設計の問題じゃん
無理やり定数やらグローバル変数で使いまわすならクラスの意味ないし
なんて言ってみるξ゚听)ξ
690nobodyさん:2007/05/08(火) 22:30:57 ID:???
定数ですむものは定数のほうがいいよ。
691nobodyさん:2007/05/08(火) 22:31:12 ID:???
>>679
ありがとうございました
「これは全くセキュリティ上の脅威ではなく、サーバ上 で PHP を使用しているかどうかを調べられるようにするものです。」
と書いてるけど、
バージョン固有のセキュリティーホールが発見された時には
それなりの脅威になりますよね?
692nobodyさん:2007/05/08(火) 22:31:43 ID:aq8SRoA2
おまえらってさ日常で笑ったりしてますか?
693nobodyさん:2007/05/08(火) 22:33:51 ID:???
は?笑わない人っているの?
694nobodyさん:2007/05/08(火) 22:36:30 ID:???
既出だがこれぐらいは読んどけよくずども
http://bugs.php.net/
695nobodyさん:2007/05/08(火) 22:36:39 ID:j3fFuUxd
>>689 俺の勝手なイメージだけどメンバって、オブジェクトのなかで
値をうにょうにょ変えていく存在という感じがする。
initVarとかsetVarとか汎用で作ってさ。
不動なものはもっとdefineみたいにどっしり構えてほしかったのさ。
696nobodyさん:2007/05/08(火) 22:42:52 ID:???
真面目にやりたいならイメージ正したほうがいいと思うよ
勝手なイメージで開発て
697nobodyさん:2007/05/08(火) 22:49:32 ID:???
クラス内で使いたいならオブジェクト定数使え。
なんていうか無理してクラス使う必要ないんじゃね?
698nobodyさん:2007/05/08(火) 22:50:05 ID:j3fFuUxd
>>696 そうは言っても不動な値をメンバにすると、
固定された値のくせにオブジェクトの数だけメモリにのっちまうだろ?
やっぱり設計としてどーかと思う。
699nobodyさん:2007/05/08(火) 22:55:13 ID:???
staticにすりゃできるが
お勧めしない

ID:j3fFuUxdの気持ちはわかる
匿名関数がカスでアクティベーションできないから、処理を小分けにしにくい
700nobodyさん:2007/05/08(火) 23:15:53 ID:j3fFuUxd
>>699 今staticに変更したけどやっぱりその設計もいろいろとめんどかったです。
以下のうちどの設計が最善でしょうか?
1.arrayぐらい毎回書く
2.毎回メモリにのるけど大した量じゃないしメンバで。
3.$GLOBALSにいれる。めんどくささは1と大差ない気がする。

ちなみにオブジェクト30個ぐらい扱って計算させてます
701nobodyさん:2007/05/08(火) 23:25:11 ID:???
どのくらいのサイズだよ
702nobodyさん:2007/05/08(火) 23:27:08 ID:j3fFuUxd
>>701 float変数が3つだけです。
3次元座標系の粒子の処理を得意だったPHPで書こうかなーと。
703nobodyさん:2007/05/08(火) 23:29:35 ID:???
余計なおせっかいかもしれないけど
どういうオブジェクト設計になってるのかも教えてくれたほうが適切なアドバイスができる気がする
704nobodyさん:2007/05/08(火) 23:36:46 ID:j3fFuUxd
>>703
デザインパターンとかはわからないんで、長々とありのままを書くと、
とりあえず最上位には二つのクラス。
objectクラスとobjecthandlerクラス。handlerは複数のオブジェクトの処理や、
データファイルから読みだすときに使うクラス。

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

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

見当違いだったらごめん。
705nobodyさん:2007/05/09(水) 00:42:20 ID:???
で,定数で使いまわしたいfloat型3つ入ってる配列は?
706nobodyさん: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
707nobodyさん: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";
}
708nobodyさん: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/>';
}
最後のやつが厄介だね
709nobodyさん: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";
}
710nobodyさん:2007/05/09(水) 02:21:31 ID:???
効率悪いかきかただな、どいつも

もっとシンプルにできると思うのだが
711nobodyさん:2007/05/09(水) 02:26:42 ID:???
じゃ書けよw 何なんだお前はw
712nobodyさん:2007/05/09(水) 02:28:08 ID:???
forを使う時点でまちがってるからね
明日答えをかいてやる
713nobodyさん:2007/05/09(水) 02:28:27 ID:???
シンプルさを追求するのはやめれ
714nobodyさん:2007/05/09(水) 02:28:56 ID:???
まあヒントくれてやるけどこの場合はwhileつかえよ
715nobodyさん:2007/05/09(水) 02:29:16 ID:???
>>712
明日て
駄目じゃんw
716nobodyさん:2007/05/09(水) 02:29:37 ID:???
とりあえずきさまら3流どもははやくねろw
717nobodyさん:2007/05/09(水) 02:30:47 ID:???
これを明日とかいうやつが他人を3流呼ばわりってネタだろ
718nobodyさん:2007/05/09(水) 02:31:53 ID:???
forを選択するおまえらにネタといわれたくないなw
719nobodyさん:2007/05/09(水) 02:33:33 ID:???
何も言わずにコードだけ貼れば要らんレス付かないのに
要領悪いな
720nobodyさん:2007/05/09(水) 02:38:40 ID:???
この場合はfor使うのが適切だろ
foreachでもいいけど
721nobodyさん: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;
  }
}
722nobodyさん:2007/05/09(水) 02:48:31 ID:???
こんなのはよっぽど変なことしなければどう書こうが誤差の範囲
可読性やスピードに注意を向ければよろし
723nobodyさん:2007/05/09(水) 02:50:23 ID:???
>>706
そもそも「プログラムが全く書けない応募者」をフィルタするための問題だから
そこに高度さは必要ないだろ…
何で無駄ハック大会みたいになってんだよ
724nobodyさん:2007/05/09(水) 02:51:40 ID:???
フラグ使うのは邪道?
3と5の倍数判定でそれぞれフラグをセットして、両方がtrueならFizzBuzz
725nobodyさん:2007/05/09(水) 02:51:42 ID:???
書けない奴が何で応募してきたのかが気になるな
というかそもそも本当の話なのか…?
日本でもそんなもんなん?
726nobodyさん:2007/05/09(水) 02:51:53 ID:???
俺からしたら>>707は暗号だ・・・
727nobodyさん:2007/05/09(水) 02:59:12 ID:???
>>724
>>708は?

>>710
しばらく考えなきゃ書けない時点であまり価値はないよw
728nobodyさん:2007/05/09(水) 03:02:31 ID:???
>>725
日本では英文科出ても英語はなせない、技術系の専攻でもプログラム書けないなんてよく聞くけど。
卒業の厳しいアメリカではそんなことないのかと思っていたが違うんだな。
729nobodyさん:2007/05/09(水) 03:05:12 ID:???
経験者募集!って一言書けばいいだけじゃね?
730724:2007/05/09(水) 03:06:16 ID:???
>>727
見えてなかったorz
731nobodyさん:2007/05/09(水) 03:18:09 ID:???
>>706を条件文と配列だけで書こうと思ったがうまくできなかった。
もし書ける人いたら今後の参考に使いたいからよろしゅう。
732nobodyさん:2007/05/09(水) 03:20:33 ID:???
誰が見ても分かりやすい素直なプログラム書ければOK
オナニープログラマーはいらん
733nobodyさん:2007/05/09(水) 03:22:33 ID:???
この板見てるのって趣味でやってるオナニープログラマーだけじゃないの?w
734nobodyさん: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
735nobodyさん:2007/05/09(水) 03:25:52 ID:???
1000に増えててワロタ
736nobodyさん:2007/05/09(水) 03:28:09 ID:???
range(1,1000)とか無駄にメモリ喰うだけだろバッキャローが
素直になれよ
そして四つんばいになれよ
737nobodyさん:2007/05/09(水) 03:31:23 ID:???
倍数判定で毎回modするより
カウンタを何種類か持たせて0判定の方が速そう
738nobodyさん:2007/05/09(水) 03:34:25 ID:???
それはいいね
速いかとか効率いいかは分からんけど違う手法でやってみるのも面白そうね
739nobodyさん: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);
740nobodyさん:2007/05/09(水) 03:51:09 ID:???
え,それは何のために・・・?
741nobodyさん: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";
742nobodyさん:2007/05/09(水) 05:45:53 ID:???
>>710>>712
ああ、なるほど。こういう人が>>706のリンク先で書かれてる
> 自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。
という現場で使い物にならないバカちんなんだ。
まさかそんな人が…と思ったが実によく理解できた。
743nobodyさん:2007/05/09(水) 05:47:30 ID:???
>>741
>>707を無理やり1行で書いただけじゃんww
744nobodyさん:2007/05/09(水) 06:07:58 ID:???
>>742,743
実は会社で「お前が一番使い物にならない」と言われてんじゃw
745nobodyさん:2007/05/09(水) 06:10:50 ID:???
>>741
っていうかこんなコード、仕事じゃ使えないだろ。
746nobodyさん:2007/05/09(水) 06:25:39 ID:???
もうわかったから、実は会社で「お前が一番使い物にならない」と言われてるって
747nobodyさん:2007/05/09(水) 06:43:56 ID:6zAvWwo5
ソースからリンク先アドレスを抽出したいのですが
いい方法ないですか?
748nobodyさん:2007/05/09(水) 06:53:55 ID:???
>>736
いまどき1000個の配列でメモリ気にされてもね
どんだけショボイマシン使ってるんだ
749nobodyさん:2007/05/09(水) 06:58:24 ID:???
そういう問題じゃないだろう…
カウントするだけのために配列作ること自体がセンスない
750nobodyさん:2007/05/09(水) 07:34:19 ID:???
処理が分かりやすくてバグが出にくいようになってればどっちでもいいよ
751nobodyさん:2007/05/09(水) 08:54:57 ID:MkwX/1Mg
メールボックスのメールにPHPでフラグをつけたいのですがうまくいきません。
現在はまた関数をチェックしてテストしてる段階なのですが、例えば、

1 簡単なスクリプトでヘッダ一覧を取得してみる→既読フラグは0
2 別のスクリプトで本文を取得してみる→オプションを指定しない場合既読フラグがつくはず
3 もう一度ヘッダ取得→既読フラグは0のまま
4 意図的にフラグをつけてみる→imap_setflag_full前後で既読フラグは0→1に変わったのを確認
5 もう一度ヘッダ取得→既読フラグは0のまま(0に戻ってる?)

ブラウザからの操作なので履歴が表示されているのかとも疑ったのですが、そうではないようです。
メールボックスがある鯖の設定も関係してるのか・・・一応複数のメールボックスで試したのですが。
上記のような手順でつけたフラグって固定しないもんなんでしょうか。。
752nobodyさん:2007/05/09(水) 09:03:49 ID:???
>>751
よく分からんけど、切断時に更新処理みたいなのはされてるのかな
753nobodyさん:2007/05/09(水) 09:06:58 ID:izHSsw10
もとのログがサニタイズされたりされなかったりしてるデータを弄るときに
htmlspecialchars($str, ENT_QUOTES)かけると
< → &lt; → &amp;lt;
って当然なっちゃうんだけどサニタイズ済みの時は弄らないにはどうすればいいの?
754751:2007/05/09(水) 09:40:37 ID:MkwX/1Mg
>>752
明示的な更新はしていません。
オプションで「更新しない」を指定できるのを確認してるので
特に指定しなければ更新されるはずだと思っているのですが・・

>>753
自前で処理するしかないんじゃないですかね。
&で分割して、各要素にhtmlspecialchars()をかけ、&をつけて文字列に戻す、みたいな。
755nobodyさん:2007/05/09(水) 09:45:30 ID:???
>>754
PHPの処理をPOP3のコマンドの対応を考えてみる。
なにか不足してないか?

まあ、ソースを晒さずにどこまで進むか試してみようw
756nobodyさん:2007/05/09(水) 10:15:42 ID:???
>>753
エスケープされたログとされていないログが混在しているのなら、
ログにエスケープするという、仕様を変えたほうが
良いと思う
757虚弱PHP:2007/05/09(水) 10:51:14 ID:???
>>753
一番の問題は「もとのログがサニタイズされたりされなかったりしてるデータ」があるってことだね。
教科書通り、高木氏からサニタイズいうなって言われる状態。

htmlspecialchars_decode を使って一度サニタイズ前のデータに戻してから、
htmlspecialcharsすればいいんじゃあるまいか。
758nobodyさん:2007/05/09(水) 12:00:42 ID:QoYhDnaM
cronを使ってメールを定期配信しているのですが、
URLに直接アクセスしたらメールが送信されるわけで
いたずらなどされないか心配です。

この場合、連続送信の対応はどうしたらいいのでしょうか?
クッキーを発行して制御する方法で良いのでしょうか?
759751: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
760nobodyさん:2007/05/09(水) 12:18:06 ID:???
>>758
cronだけで実行するなら、ウェブからアクセスできないところに
スクリプトおきなよ。
761nobodyさん:2007/05/09(水) 12:28:49 ID:???
>>758
URLにアクセスって
それcronじゃないだろ
762nobodyさん:2007/05/09(水) 12:33:07 ID:???
>>758
スパム業者の方ですか?
ローカルからのアクセスかどうかをチェックする機能を付け加えるべし。

>>761
どの場所においてもcronなんて使えるわけだが。
763nobodyさん:2007/05/09(水) 12:57:38 ID:???
CLIは使えないの?
764nobodyさん:2007/05/09(水) 13:31:14 ID:???
WindowsXPでXAMPPでPHP5でPHP勉強中なのですが、

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

htdocsに直接ファイルおいて、読み取り専用のチェックも外してるのですが、なぜ解決できないのかわかりません。
765nobodyさん:2007/05/09(水) 13:38:24 ID:???
>>764
前後のソースちょっとだしてみ
766764です: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");
こんなかんじです。
767nobodyさん:2007/05/09(水) 13:48:20 ID:???
fclose($filkepointer);
unlink(ry
768764です:2007/05/09(水) 14:04:07 ID:???
>767
ありがとう御座います。

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

修行してきます
769nobodyさん: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; }
とすれば大丈夫でしょうか?
770nobodyさん:2007/05/09(水) 14:48:16 ID:???
>>769
print $from;で表示されないのはわかりませんが
送信されたメールで$nameが表示されないのは
日本語に対してMIMEエンコーディングしてないからじゃない?
$name = mb_encode_mimeheader($name);
半角チェックはただexit()ってのも冷たい気がするけど
構文的にはそれでもよいのでは。
771761:2007/05/09(水) 15:05:57 ID:???
>>762
いやいや
cron使ってわざわざhttpサーバにアクセスするのも変じゃない
普通素直にスクリプト起動するだけだからなぜURLにと思ったの
772nobodyさん:2007/05/09(水) 15:25:38 ID:???
>>771
レンタルサーバならそういう事情もあるでしょ。
public_html以下しか接続許可していないサーバも存在するだろうし。
cronが使えるようなサーバがそんな気の利かない設定するわけないけど。
773nobodyさん:2007/05/09(水) 16:27:05 ID:???
>>770
エンコードすると中身はISOなんたらかんたらとなって
人が理解できないようなものになるのはこれで正しいですか?

後、exit()だけなのは手っ取り早く1行で抑えたかったのでこの書き方になりました。
774nobodyさん:2007/05/09(水) 16:32:08 ID:???
win環境でphpからdosコマンドを使いたいのですが、
むりですか?
775774:2007/05/09(水) 16:32:49 ID:D8ftPzG/
CLIならいけるとおもうんですがどうなんでしょうか?
やっぱりlinux上できかできないのかな\\\
776nobodyさん:2007/05/09(水) 16:41:32 ID:???
>>774
exec()とかで出来るんじゃないの?
win環境詳しくないから知らないけど
777nobodyさん:2007/05/09(水) 16:45:11 ID:???
`dir`で普通にできたよ
778nobodyさん:2007/05/09(水) 16:51:54 ID:D8ftPzG/
まじっすか、ありがとうございます。
XPのOS再インストールがおわったらためしてみます
779nobodyさん: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でした
どこがおかしいのでしょうか?
781753:2007/05/09(水) 17:30:07 ID:izHSsw10
>>754 >>756-757
ログ読む時に全部デコードして表示時にエンコードするっていう一番の基本線が
確実ですね そうすることにします
ありがとうございました
782nobodyさん: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]++;
}
に変える。
783nobodyさん:2007/05/09(水) 18:02:24 ID:???
>>769
>これでいいと思うのですが、送信する前に print $from; をしてみると
><$mail>が表示されないのです。

単に、HTMLの要素カッコとしてブラウザが認識してるだけでしょ。
784nobodyさん: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
すいません、解決しました
カウント部分は未変更で意図した結果になりました
787782:2007/05/09(水) 18:38:25 ID:???
スペル間違ってた
×static $counter
○static $count

つーか、1回のリクエストの中でカウント方式が完結したら、普通はダメだわな。
どんな仕様・設計にしてるか知らんが。
788nobodyさん: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?
789nobodyさん:2007/05/09(水) 19:13:30 ID:???
ブラウザのデフォルト文字色が白
790nobodyさん:2007/05/09(水) 19:15:26 ID:???
for文の前にprintを書いてちゃんと値が渡ってるかどうか確認しる
つか<br />'の前に'が無いんだが
これが原因だったら2chに書き込む前に5分考えろ
791nobodyさん:2007/05/09(水) 19:23:49 ID:???
>>790

5分考えたら分かったよ

'が無かったね
792nobodyさん:2007/05/09(水) 19:32:36 ID:???
そろそろまたID表示強化月間だと思うんだ
793nobodyさん:2007/05/09(水) 21:52:45 ID:???
>>792
OKブラジャー
794nobodyさん:2007/05/09(水) 22:55:53 ID:???
795764です: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/がリンクされません。二回目以降どうすればいいのでしょうか?
796nobodyさん:2007/05/09(水) 23:17:22 ID:???
>>783
なるほど! すっきりしました。
ありがとうございました。
797nobodyさん:2007/05/09(水) 23:20:52 ID:???
初心者はapache、php、mysql全部インストーラー無しでやってみれと言いたい
798nobodyさん: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);
799nobodyさん:2007/05/09(水) 23:24:05 ID:???
俺はもうだめかもしれない・・・
ついにオナフォールを買ってしまった・・・
風俗には今まで全然いったこと無かったのに
何でいきなりオナフォール・・・

まだ風俗の方が健全な気がするぜ!
800799:2007/05/09(水) 23:26:39 ID:???
誤爆嶋ssssssssssssss
うわがああああああ忘れてくれええええええええええええええ
801nobodyさん:2007/05/09(水) 23:27:11 ID:okhokTRP
>>797
インストーラーなんて元々ないんだけど?
802nobodyさん:2007/05/09(水) 23:29:36 ID:???
あるじゃん
803nobodyさん:2007/05/09(水) 23:33:30 ID:???
PHPのインストーラは見たことあるけど
MySQLとApacheのインストーラなしって
Windowsであるの?
804nobodyさん:2007/05/09(水) 23:34:33 ID:???
あるじゃん
805nobodyさん:2007/05/09(水) 23:39:16 ID:okhokTRP
ドザの話か・・・・
806nobodyさん:2007/05/09(水) 23:55:24 ID:???
Apache-win用のインストーラー無しは無いぽ
ビルドするかmsiを展開できるツール使えばできそうだが
807nobodyさん:2007/05/09(水) 23:55:41 ID:???
>>799
風俗の前にオナホでも全然おかしくないだろ
むしろ風俗前のレッスンと考えるんだ
808nobodyさん:2007/05/10(木) 00:28:42 ID:i4wrMZ/Q
wikipediaなどでは
hogehoge.com/ほげほげ
等、URIに日本語を直接記述していますが、
何故URLエンコードしなくても問題が起こらないのでしょうか?
809nobodyさん:2007/05/10(木) 00:32:52 ID:???
ブラウザがエンコードしてくれてるんじゃないか?
810nobodyさん:2007/05/10(木) 00:37:19 ID:???
>>806
あるじゃん
http://brandleadershipmarketing.com/apache/

つかサービス登録してくれてApache Monitor入れてくれるくらいの違いしかないだろが,インストーラ
811nobodyさん:2007/05/10(木) 00:38:11 ID:???
同上でブラウザがエンコードしてるんだと思う
FireFoxだと日本語で入力しても表示されない
812nobodyさん:2007/05/10(木) 00:43:33 ID:???
>>809,811
本当ですね
まさかそんな答えだったとは…
ありがとうございました
813795: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);
814nobodyさん:2007/05/10(木) 01:23:06 ID:qTUopfwt
>>813
何がしたいの?
URLにリンク貼るだけならwhileいらなくね?
二回目以降って何の二回目以降?

目的がわからないから答えようないよ
815nobodyさん:2007/05/10(木) 01:50:15 ID:???
phpの中にjavascriptを記述する時のいい方法ないですか?
$code = "
var a = \"abc\";
";
いちいち"や'に気を遣うのが嫌になりました
816nobodyさん:2007/05/10(木) 01:54:17 ID:qTUopfwt
print <<<EOF

EOF;
817nobodyさん: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

この回避策に関しての欠点、もしくは他に良い方法などありますでしょうか。
818nobodyさん:2007/05/10(木) 02:30:02 ID:???
>>817
?なんのために??
819817: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

これを、なんとか簡潔に解決できないかなと考えています。
820nobodyさん: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'
821nobodyさん:2007/05/10(木) 04:06:54 ID:???
>>819
id出してるのは偉い!が説明が回りくどくて理解しにくいよ

print_r($_SERVER)してみれ
822nobodyさん: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相当の処理をしてサーバにリクエストを投げてくるので、
それを適当に処理すればよろしい。
823nobodyさん: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;
824nobodyさん:2007/05/10(木) 06:27:37 ID:???
http://journal.mycom.co.jp/news/2007/05/08/008/
迅速なアップデートを! セキュリティ対策が施されたPHP 5.2.2/4.4.7リリース

アップデートが面倒くさいのですが
やはりアップデートすべきでしょうか?
825nobodyさん:2007/05/10(木) 06:36:04 ID:???
そんなの使用目的による。
デバッグにしか使わないなら別にアップデートしなくていい。
826nobodyさん:2007/05/10(木) 10:36:30 ID:???
>>795
FAQを読まない馬鹿はいらない子です。

>>824
MOPBで指摘された致命的なバグの修正版だから、
公開してるならアップデートしておかないとクラックされる可能性が高くなる。
827nobodyさん:2007/05/10(木) 11:11:27 ID:???
828nobodyさん:2007/05/10(木) 12:03:12 ID:p6e8Tgaw
昨日質問させてもらった>>751です。
やはりストリームをクローズしてしまうとフラグはクリアされてしまいます。
オープンしたままであれば維持されているのは確認できたのですが。
明示的にフラグを固定するような関数もないと思いますが
これが通常の動作ということなんでしょうか。

自分がこの質問で書き込みしたのは以下です。
>>751 >>744 >>759
829nobodyさん:2007/05/10(木) 12:32:25 ID:???
通常の動作なんてものはない。
おまえが設定したとおり、おまえが書いたコードのとおりの結果が生まれるだけ
830nobodyさん:2007/05/10(木) 12:43:37 ID:???
というか、お前が>>744みたいな、えらそうな奴様なのなら
imap_segflag_full関数マニュアルの
User Contributed Notesぐらい読んでこいよ。短い英語ぐらい読めるだろ?
831828:2007/05/10(木) 13:00:45 ID:p6e8Tgaw
>>829
デフォルトの動作って書けばよかったの?

>>830
レス番はタイプミスです。気づくと思ったんで。
でもありがとう。
832nobodyさん:2007/05/10(木) 13:47:49 ID:AA4DnND/
あぱっちぇ2.0.59でPHPをうごかしたいんですが、RUBYと共存できますか?
833nobodyさん:2007/05/10(木) 13:50:58 ID:???
Ruby使えるような人が何をアホなことを申しておられるのでしょう。
834nobodyさん:2007/05/10(木) 14:32:51 ID:AA4DnND/
いや、これからぱそこんをはじめたんですけど
友達にRUBYやれっていわれて・・・
簡単だからできるっていわれたんですけどぼくはPHPがやりたいんです。
でもともだちにそのことを話したらPHPなんてやめろ!っていわれて・・・
RUBYとPHPが共存できれば友達が家にきたときごまかせるのでどうにかできないでしょうか?
835nobodyさん:2007/05/10(木) 14:38:55 ID:???
自殺したほうがいいよ
836nobodyさん:2007/05/10(木) 14:57:44 ID:???
そこまで顔色を気にしなきゃ付き合えないような相手が「友達」かどうか
考え直したほうがいいよ。
837nobodyさん: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とも…できます。
840nobodyさん:2007/05/10(木) 17:14:41 ID:???
>>828
PHPコードよりむしろ、メールボックスをSELECTしたときのPermanentflagsの応答とか、
サーバ実装とか、他のIMAPクライアントで同じアカウントにログインしたときに、
問題のメールボックスに永続フラグが立てられるかをチェックしたら?

もうやってたらごめんよ。
841nobodyさん:2007/05/10(木) 18:10:19 ID:AA4DnND/
すいません、phpでライブチャットはつくれますか?
842nobodyさん:2007/05/10(木) 18:22:02 ID:???
あまりお勧めはしない
843nobodyさん: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です。
844nobodyさん:2007/05/10(木) 18:40:20 ID:???
マルチ乙
845nobodyさん:2007/05/10(木) 19:55:34 ID:???
いつも思うんだけど>>844みたいなやつって超うざいよね
知らないなら黙ってろっつーの
レスするのは知ってる人だけにしてね
846nobodyさん:2007/05/10(木) 20:02:30 ID:wqFHIkoe
あなたみたいのもうざいですけどね。
847nobodyさん: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を複数追記すれば良いわけでもないし。。

なにかヒントを教えていただけないでしょうか?
848nobodyさん:2007/05/10(木) 20:35:42 ID:???
GD使えばいいんじゃね?
849847:2007/05/10(木) 20:39:12 ID:???
>>848
GDって外部画像の結合出来るんですか?
今やってるのは、DBに登録されているカウント値を
GD生成して出力していますが・・。
850nobodyさん:2007/05/10(木) 20:51:29 ID:???
php 画像連結で検索すればライブラリが出てくるのでは?
851847:2007/05/10(木) 20:57:55 ID:???
ありがとうございます。ライブラリを参考にしてみます。
852nobodyさん:2007/05/10(木) 21:30:14 ID:gqRdAlOp
ccessで、サイトにアクセスしたらaccess.phpを実行するような設定ってできないのかな?
スクリプトですると、全ページにincludeしなきゃいけないよね
853845:2007/05/10(木) 21:31:12 ID:???
がたがたいってねえで調べて来いや人力検索ども!!
854nobodyさん:2007/05/10(木) 21:34:57 ID:???
>>853
こちらへ移動よろ
http://life8.2ch.net/utu/
855nobodyさん:2007/05/10(木) 21:51:44 ID:???
>>853
http://life8.2ch.net/test/read.cgi/yume/1178723880/

>>852
DirectoryIndex access.php
RedirectMatch 301 ^/. /

出された要件をそのまま書いたらこうなった。
856nobodyさん:2007/05/10(木) 22:33:33 ID:gqRdAlOp
>>855
そのまま書いてクリックしたら
headerでリファラにLocationされたみたいにアクセスできないwwww
857nobodyさん:2007/05/10(木) 22:33:49 ID:???
関数に複数の引数を渡して複数の戻り値を得たい場合


function hoge($a,$b){
return($a,$b);
}
とするとエラーになりますが、引数を配列にするしか無いですか?
858nobodyさん:2007/05/10(木) 22:39:06 ID:???
return array($a, $b);
859855:2007/05/10(木) 23:02:56 ID:???
>>856
リダイレクトがループしますから。ていうか、ネタなので試さないでください。

期待してる動作が「全ページでinclude('access.php')と等価」だったら
mod_layout で調べてみて。あと、あなたも俺もスレ違い。
860nobodyさん:2007/05/10(木) 23:04:51 ID:rnaMytAr
質問です、配列の中身をそのまま表示する方法ってありますか?
861nobodyさん:2007/05/10(木) 23:08:38 ID:???
print_r
862nobodyさん:2007/05/10(木) 23:09:27 ID:???
>>860
そのままってのがよくわからんが、
print_rとかvar_exportとかvar_dumpとかで構造を見ることはできる。
863nobodyさん:2007/05/10(木) 23:36:14 ID:???
最近の人力検索はぐだぐだうるさいのが混ざってるな
黙って質問に答えるだけでいいのに・・・
864nobodyさん:2007/05/10(木) 23:38:24 ID:???
>>863
全く持って同意
865nobodyさん:2007/05/10(木) 23:39:18 ID:???
>>863
だな
866nobodyさん:2007/05/10(木) 23:57:31 ID:???
自演組乙
867nobodyさん:2007/05/11(金) 00:00:32 ID:???
昔から、人力検索にも回答者にもならずぐだぐだうるさいだけのは混ざってる
868nobodyさん:2007/05/11(金) 00:26:20 ID:???
お前みたいなやつのことだな
869nobodyさん:2007/05/11(金) 00:32:02 ID:???
このスレの8割がそうだな
870nobodyさん:2007/05/11(金) 00:44:42 ID:???
どうしたん?
流したいレスがあるん?
871nobodyさん:2007/05/11(金) 00:49:16 ID:???
今日は大漁ですね
872nobodyさん:2007/05/11(金) 00:51:35 ID:???
どうして「>>843です。どなたか回答かアドバイスをお願いできませんか」と書けないんだろう。
873843:2007/05/11(金) 00:53:44 ID:x3XoGdaG
一応言っときますが私は843の他に書き込んでません。
ちなみにマルチでもありません。他のどこに書いているのか教えてほしいくらいです。
874nobodyさん:2007/05/11(金) 00:56:24 ID:???
今年始まって以来の勘違い野郎だなおまえ
875nobodyさん:2007/05/11(金) 04:41:54 ID:uio3xUyZ
セキュリティ対策で質問があります。

誰もがURL(自動判定)、文字列などを投稿できるサイトで
アダルトサイトなどの宣伝スパム、海外からのスパムや連続投稿などに対する有効な対策にはどのようなものがあるんでしょうか?

半角のみは禁止、連続投稿には間隔制限を設ける、リンクに飛ぶ前には確認ページを割り込ませる などは
思いつくのですが、日本語含む荒しやアダルトサイトのスパムは、やはり削除人による手作業での削除+アク禁しかないのでしょうか?
876nobodyさん
>>875
captcha