【PHP】下らねぇ質問はID出して書き込みやがれ 76

このエントリーをはてなブックマークに追加
1nobodyさん
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 75
http://pc11.2ch.net/test/read.cgi/php/1224168721/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2nobodyさん:2008/11/13(木) 04:16:37 ID:???
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 75
http://pc11.2ch.net/test/read.cgi/php/1224168721/
【PHP】下らねぇ質問はここに書き込みやがれ 73
http://pc11.2ch.net/test/read.cgi/php/1220440493/
【PHP】下らねぇ質問はここに書き込みやがれ 72
http://pc11.2ch.net/test/read.cgi/php/1218855685/
【PHP】下らねぇ質問はここに書き込みやがれ 71
http://pc11.2ch.net/test/read.cgi/php/1216291372/
【PHP】下らねぇ質問はここに書き込みやがれ 70
http://pc11.2ch.net/test/read.cgi/php/1214356448/
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/
【PHP】下らねぇ質問はここに書き込みやがれ 67
http://pc11.2ch.net/test/read.cgi/php/1207863515/
【PHP】下らねぇ質問はここに書き込みやがれ 66
http://pc11.2ch.net/test/read.cgi/php/1205655807/
【PHP】下らねぇ質問はここに書き込みやがれ 65
http://pc11.2ch.net/test/read.cgi/php/1203854597/
3nobodyさん:2008/11/13(木) 04:17:28 ID:???
関連リンク
■本家マニュアル   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/
4nobodyさん:2008/11/13(木) 04:18:00 ID:???
【簡易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プログラムとして実行された結果になる。
5nobodyさん:2008/11/13(木) 04:18:32 ID:???
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に保存?
 → 好きにしてください
6nobodyさん:2008/11/13(木) 04:22:52 ID:???
function arrayOut(&$array, $fileName=NULL) {
    $str = '<?php return ';
    $str .= arrayOut_($array);
    $str .= '?>';
    if($fileName) {
        $fp = fopen($fileName, 'w');
        fwrite($fp, $str);
        fclose($fp);
    }
    return $str;
}

function arrayOut_(&$array, $tab=0) {
    $tabs = str_repeat("\t", $tab);
    $tabs_ = $tabs ."\t";
    $str = 'array(
';
    foreach($array as $key => $val) {
        $key = is_int($key) ? $key : "'". $key ."'";
        $str .= $tabs_ . $key .' => ';
        if(is_array($val)) {
            $str .= arrayOut_($val, $tab + 1);
        }
        else {
            $val = is_int($val) ? $val : "'". $val ."'";
            $str .= $val;
        }
        $str .= ',
';
    }
    return $str . $tabs .')';
}
76:2008/11/13(木) 04:24:01 ID:???
使い方

$array = array(
    2, 4, 8, 8 => 4, 10 => 'afe',
    'test' => 'poen',
    'kami' => 'ahonishi',
    array(
        5 => 5,
        'test' => 'aafafa',
        'array' => array(
            4,5,6,7,
        ),
    ),
    array(
        array(
            array(
                array(
                    'gogogogo' => 'nyaaaa',
                ),
            ),
        ),
    ),
);

echo arrayOut($array, 'array.txt');
8nobodyさん:2008/11/13(木) 08:06:46 ID:???
serializeかvar_exportじゃだめなん?
96:2008/11/13(木) 11:25:56 ID:???
>>8
うわあああああああああああああああ
ああああああああああああああああ
あああああああああああああああああああああ
10nobodyさん:2008/11/13(木) 11:43:32 ID:???
クソワロタ
よく頑張ったよ
11nobodyさん:2008/11/13(木) 11:55:37 ID:???
よくあることだ
人間はそうやって成長していくんだよ
12nobodyさん:2008/11/13(木) 12:12:24 ID:???
なんでも丸投げ厨に比べたら偉いよ
13nobodyさん:2008/11/13(木) 13:49:08 ID:???
974+1 :nobodyさん [] :2008/11/12(水) 22:40:31 ID:UDdKXaZu

PHPの質問ではありませんが、どなたか教えてください。

画面遷移の管理(というかセッションの管理)で、
ttp://www.j-tokkyo.com/2001/G06F/JP2001-160033.shtml
のような特許が開示されているのですが、みなさん気にされていますか?

自分の場合、他サイト間連携の画面遷移なんかで以前から使いまくってたりするのですが、
コンプラ強化の流れで制限されそうになってますです。。

はて困った。。
14nobodyさん:2008/11/13(木) 14:07:26 ID:bw3b61Qh
suEXECっていうのは、PHPを
アパッチのモジュールモードで動かしているときは、
関係ないしろものなの?
15nobodyさん:2008/11/13(木) 14:21:37 ID:???
そうです
16nobodyさん:2008/11/13(木) 16:01:38 ID:bw3b61Qh
そうしたら、その場合は、パーミッションの設定は、
「suEXECが入っていない場合」、というのを
見て参考にすればいいの?
17nobodyさん:2008/11/13(木) 16:06:10 ID:???
モジュールの場合、cgiのパーミッションは関係ない。
apacheが動作しているユーザーが読めればいいだけ。
18nobodyさん:2008/11/13(木) 16:07:54 ID:???
要は、htmlと同じ扱い。あ、phpファイルのことね。
読み書きする外部ファイルの扱いはcgiと同じ。
19nobodyさん:2008/11/13(木) 16:14:35 ID:???
http://www.e-provider.jp/server/cgi.html

>レンタルサーバではグループの権限はゼロに設定すべきです。

>レンタルサーバではCGIは705、データファイルは606にすべきです。
>レンタルサーバでtelnetを開放している場合、他の住人のディレク
>トリーにも自由に入れます。CGIのパーミッションが755なら、telnet
>経由で他のユーザーはあなたのCGIのソースファイルを見ることが
>できます。CGI ファイルの中にパスワードが書いてあれば、パスワ
>ードも漏れます。データファイルのパーミッションが666ならtelnet経
>由でデータファイルを見るだけでなく、書き換え・削除できます。

↑ここのサイトに、こんなこと書いてあった。
こんな重要なことなのに、はっきり書いてある
サイトが少なくって。怖いなぁ。
20nobodyさん:2008/11/13(木) 16:15:35 ID:???
ようは、拡張子が.phpで、
CGIモードでなくて、アパッチの
モジュールモードで動くときに、
パーミッションの設定をどうしたらいいのか、
ちゃんと解説してあるサイトが少なくて
見つけられないんだよね。
21nobodyさん:2008/11/13(木) 16:16:47 ID:???
グループ内の他人のディレクトリに普通入れるか?
22nobodyさん:2008/11/13(木) 16:20:27 ID:bw3b61Qh
>suEXECでは、nobodyで動くのではなく、ユーザー権限で動きます。

って書いてあるから、「suEXECが入っている場合」、の
説明をマネすればいい感じかな?
23nobodyさん:2008/11/13(木) 16:20:59 ID:bw3b61Qh
>>21
そのサーバーでtelnetが有効であれば
入れる、と書いてあります。
24nobodyさん:2008/11/13(木) 16:24:07 ID:???
基本的に、まともなとこなら他人のHOMEには入れません。
でも、SuExecでグループ読み込みありだと、その他人のCGIから中見覗けます。
SuExecは、グループ書き込みできるファイルは実行できないようにしてるけどね。
基本的にどんな場合でもグループは0にすべき。
(専用鯖で多人数で作業してるとこは除く)
25nobodyさん:2008/11/13(木) 16:30:58 ID:???
まだパーミッション厨いたのか
26nobodyさん:2008/11/13(木) 16:44:48 ID:K5TW61gC
メールからのリンクで登録完了させるために
メール本文にhttp://.../nantoka.php?a=123&b=456
ってな感じで書いてんだけど
&が?になっちゃう
どないしてΣ('0'*)?
27nobodyさん:2008/11/13(木) 16:45:42 ID:TS7LMUyh
質問なんだけど
ポストで取得した文字列を、mecabというソフトにパイプで渡して
その結果を得たいのですがproc_open()ではどうもうまくいきません。

windowsでPHPなのでmecabのPHPモジュールも使えないのです。

$mecab='C:\Program…'
proc_open($mecab,…)というようにパスを入れるのでは
ソフトを起動させられないのでしょうか?

PHPマニュアルには
proc_open('PHP',…)として、プログラムの名前が書かれています。
でもproc_open('mecab',…)では無理でした。

とりあえず外部プログラムを動かし値を得る方法を教えてください。
28nobodyさん:2008/11/13(木) 16:48:29 ID:bw3b61Qh
>データファイルをDocumentRoot以下に置いてはいけない

ってサイトに書いてあるんですが、そうなの?
29nobodyさん:2008/11/13(木) 16:51:29 ID:???
>>28
わざわざDocumentRoot以下に置く理由もないでしょ。
危険の芽はつんでおくに限る。
30nobodyさん:2008/11/13(木) 17:12:56 ID:mUWlC/Ng
下記のようなランダムPHPを使ってるのですが、
例えばこれを $txt を10個設定してから、
10個並べて出力させたとして、全部違う結果を表示させたいんですが
どう記述を加えればいいでしょうか
よろしくお願いします

<?php
$txt[0] = '0';
$txt[1] = '1';

$length = count($txt) - 1;
srand( (double)microtime()*1000000 );
$num=round( rand(0,$length) );
print("$txt[$num]");
?>

31nobodyさん:2008/11/13(木) 17:16:44 ID:???
>>30
下手のこと考えるより、array_rand
32nobodyさん:2008/11/13(木) 17:28:24 ID:mUWlC/Ng
>>31

<?php
srand((float) microtime() * 10000000);
$input = array("ネオ", "モーフィアス", "トリニティ", "サイファー", "タンク");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

これの事ですか?
$input = array("ネオ", "モーフィアス", "トリニティ", "サイファー", "タンク");
から1つづつ抽出してくれるという事ですか?



33nobodyさん:2008/11/13(木) 17:47:11 ID:mUWlC/Ng
>>31

ttp://okwave.jp/qa4419102.html

array_rand で検索してみたところ、
上記の記事でうまいこと出来そうです。

ありがとうございました。
34nobodyさん:2008/11/13(木) 17:51:59 ID:???
http://pc11.2ch.net/test/read.cgi/esite/1205740833/310-

長年やってるプロでも
こんなバカなミスやるんだな。
35nobodyさん:2008/11/13(木) 17:55:33 ID:???
賠償まだー?
36nobodyさん:2008/11/13(木) 18:46:21 ID:???
賠償はでないんじゃないかな?
本では結構かっこいいこといっていたし、
近藤さん好きだったんだけどな。
残念です。
37nobodyさん:2008/11/13(木) 19:27:04 ID:???
お前らがちゃんと
パーミッションの設定について
教えないせい
38nobodyさん:2008/11/13(木) 20:15:10 ID:3XeZmcyK
PHPで作成したWebページが、IE7で見ると真っ白になります。
どうも文字コードの自動判別がうまく働かないようで、
UTF-8で作成したページがシフトJISと解釈されているようです。

頻出の問題らしいので関連サイト見て対処したのですが、未だに直りません。
下記の対処法以外に何かやるべきことがあるでしょうか?

■PHPでやった対策
・ソースコードのファイルはUTF-8で保存
・PHPコードの先頭付近で「header('Content-Type: text/html; charset=utf-8');」を記述
・PHP.iniのdefault_charsetはコメントアウトされた状態

■HTMLでやった対策
・ファイルの<head>タグ内に「<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />」と指定
・<title>タグは、上記のcharsetよりも後に記述
・ファイルはUTF-8で保存

さらに面倒なことに、自宅のPCでは問題なく表示されるのです。
なぜか自分以外のPCで見ると、IE7のみ真っ白になるらしいです。
(数人から連絡を受けたので、どうも見えるほうが少数派のようです)

なにかいい対策方法は無いでしょうか?
39nobodyさん:2008/11/13(木) 20:31:50 ID:???
真っ白て。

ソースは取得できてるの?その文字コードは?
PHPの内部エンコーディングは設定してないの?
エラーコードは?(さらに言えばHTTPレスポンスは?)
PC環境で明らかに違う点は?
40たまちゃん ◆Emjcf.lfLU :2008/11/13(木) 20:34:49 ID:rj1jn7su
3gp.fmと言う、ネット上で音楽の拡張子を変換するツールを見つけました。
http://3gp.fm/Mob.aspx

これは、ASPを使ってる見たいですが、PHPで作ろうと思いました。
私なりに構造を考えてみたのですが、どのような仕組みだと思いますか?

Content-type がmp3などのを、単なるヘッダーでvideo/3ggpに指定してやる。

この浅はかな考えではうまく作れませんでした。どのようにしたらよいのでしょうか?
41nobodyさん:2008/11/13(木) 20:35:25 ID:???
拡張子変換するだけなら文字列関数でできるぞ
42nobodyさん:2008/11/13(木) 20:36:24 ID:???
後半読んでなかった
>Content-type がmp3などのを、単なるヘッダーでvideo/3ggpに指定してやる。
ぶw これはねーわw
43たまちゃん ◆Emjcf.lfLU :2008/11/13(木) 20:38:33 ID:rj1jn7su
>>41
詳しくお願いします。
文字列関数…
ただ、拡張子だけでなく、ヘッダーもかえたいです。
.mp3が.3gpになっただけでは、携帯からは音楽が聞けません…
44たまちゃん ◆Emjcf.lfLU :2008/11/13(木) 20:39:25 ID:rj1jn7su
>>42
これ以外、どうやってると思いますか?

45nobodyさん:2008/11/13(木) 20:43:16 ID:???
外部アプリ使ってんでしょ
46たまちゃん:2008/11/13(木) 20:47:04 ID:rj1jn7su
>>42
外部アプリ…
ってことは、aspxや、PHPだけではこのツールを作成することは不可能なのですか?
そのアプリは、どんなアプリでしょうか?
Windowsアプリケーションexeは、携帯には対応してません。
47nobodyさん:2008/11/13(木) 20:49:23 ID:???
別に可能ではあるんじゃない?
あとWindowsアプリケーションexeが携帯に対応してないってのが良く分からないけど
4838:2008/11/13(木) 21:16:44 ID:???
>>39
ソースは取得できており、IEの画面を右クリック→ソースを表示 で表示できます。

UTF-8のページを開く際に、IEの文字コード設定でシフトJISを手動選択すると真っ白になるので、
おそらくIEが勝手にシフトJISだと勘違いしているのだと思います。

PC環境についてですが、複数の人から「真っ白だ」と言われているため、
明らかに違う点が分からない状況です。(OSもXPとVistaが混在です)

あと、PHPのコードにはmb_internal_encoding("utf8");と記述しています。

レスポンスヘッダは以下です。
HTTP/1.1 200 OK
Date: Thu, 13 Nov 2008 12:14:09 GMT
Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.3 with Suhosin-Patch
X-Powered-By: PHP/5.2.4-2ubuntu5.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Proxy-Connection: close

何か分かるようでしたらお願いします。
49たま:2008/11/13(木) 21:17:51 ID:rj1jn7su
>>47
どのようなプログラムを書けばよいか、大まかにでも教えてください。
50nobodyさん:2008/11/13(木) 21:21:00 ID:KF88aCBc
51nobodyさん:2008/11/13(木) 21:57:04 ID:???
>>49
>>47じゃないが>>47がいいたいのは
サーバ側で別のアプリケーションを起動させて変換して返すってもの
wavをmp3に変換するツールとかあるでしょ?
そういうのでコマンドラインから実行できるようなものを
リクエストがあったらコマンドラインから該当ファイルを変換して返すような仕組み
ようするに処理自体はPHPでやってるわけじゃないってこと
52nobodyさん:2008/11/13(木) 22:02:04 ID:???
>>50
そうそう。君はそうやって人の言うことを聞いとくべきだよ。
六年生とは思えないほど稚拙な文章だったけど、面白かったよ。
5327:2008/11/13(木) 22:14:36 ID:TS7LMUyh
もう分からないからCGIで動かす事にする。
CGIならmecabを動かせるし。
でもCGIやった事無いから分からないけど
一つのファイル内でCGIとPHPを混在させる事できる?

PHPで文字列受け取ってCGIで処理してPHPで表示したい。
または例えばPHPファイル内で処理するスクリプト中に
CGIファイルをインクルードして結果の配列をPHPに再び渡すってできない?
54nobodyさん:2008/11/13(木) 22:31:43 ID:???
>>27
> $mecab='C:\Program…'

単にスペースが入ってるだけじゃねーの?
55nobodyさん:2008/11/13(木) 23:42:29 ID:rLX4EmuO
セッションの使い方とセキュリティで悩んでいます。
ググって調べると、携帯サイトではGETでURLにsession_idを
付与するようですが、別サイトにリファラが残る場合があり、
セッションハイジャックの危険性があります。

他のプログラム(OpenPNEやMT)などをみると、
セッションをDBに保存して、毎回照合しているみたいです。

そこで質問ですが、どちらの方法の方がより安全で有効なのでしょうか?
前者であれば手間もかからず、負荷も少ないと思いますし、
後者であればセッション発行時のIPアドレスやUSER AGENTを保存すれば
セッションハイジャックやなりすましは防止出来るのではないかと思っています。
5627:2008/11/13(木) 23:43:40 ID:TS7LMUyh
>>54
確かにそうでした。ありがとうございます。
pewershellではC:\Pro*s\mecab\bin\mecab.exeとしたらちゃんとmecab.exeが機能しました。
(それまではProgram filesでもいけると思ってました。)

しかしやはりproc_open()の方では無理です。

ソースはこんな感じ。
$mecab = 'C:\Pro*s\mecab\bin\mecab.exe';
$descriptorspec = array(0=>array("pipe","r"),1=>array("pipe","w"));
$process = proc_open($mecab,$descriptorspec,$pipes);

でこの後に
print is_resource($process);
としてみたのですが1(FALSE)しか返ってきません。
やっぱりうまくいかないようです。
57nobodyさん:2008/11/14(金) 00:06:41 ID:???
>>50-52
なんぞそれ?
58nobodyさん:2008/11/14(金) 06:44:08 ID:LBY0wnii
アパッチで、ファイルの所有者が、
アパッチの場合と、nobodyの場合と、yamadaの場合と、
3種類あるようなんだが、これってどこで決まってるの?
59nobodyさん:2008/11/14(金) 07:04:36 ID:???
>>56
普通1はtrueなんだ
60nobodyさん:2008/11/14(金) 09:07:18 ID:???
>>56
print is_resource($process);
こんな事するより
var_dump($process);か
echo var_export($process,true);
61nobodyさん:2008/11/14(金) 12:43:13 ID:???
>>58
PHPのスクリプトでtouch()とかで作られたファイルはアパッチになるよ。
nobodyやyamadaは知らん。俺yamadaになんてなった事ないから。
62nobodyさん:2008/11/14(金) 15:00:32 ID:???
「nobody」も「アパッチ」も同じこと
Apacheの実効ユーザで作成されてるってこと、PHPがApacheモジュールで動いてるからな
suExec環境ならスクリプトの所有者で生成される、それがyamadaなんじゃね?
63nobodyさん:2008/11/15(土) 06:36:19 ID:oW2TcjIK
http://www.standpower.com/php_form.html
ここの、
input.htmlと、output.phpの2つのファイルをドコのフォルダに置けば入力した名前が表示されるのでしょうか?
input.htmlファイルをクリックしてinput.htmlを表示させ、「太郎」と入力まではうまく行くのですが、
クリックして、output.phpを表示させると、ソースコードが表示されます。 いったいどうしたらいいのでしょうか?
64nobodyさん:2008/11/15(土) 06:39:47 ID:oW2TcjIK
ちなみに、
【OS名】winXP
【PHPのバージョン】php5.26
です。
65nobodyさん:2008/11/15(土) 06:54:07 ID:oW2TcjIK
つーか、
<form action="output.php" method="post">
この部分を、
<form action="http://localhost/php/output.php" method="post">
にしたらうまくいきました。
これは正しいやり方だったのでしょうか?
66nobodyさん:2008/11/15(土) 07:23:37 ID:???
>>65
そんな小細工しなくても
素のままで普通に動いたけど。

ただし、元のページの解説にはバグがある。
67nobodyさん:2008/11/15(土) 07:24:50 ID:???
<form action="input.php" method="post">

HTMLのformタグを使ってデータの受け渡しを行います。
action属性で指定してるファイルにデータを渡します。
ここではoutput.phpというファイルを指定してます。 method
属性ではデータを送る際の送信方法を指定します。post
とはURLとは別にデータを送る方法です。

↑ここの部分が間違ってる。

<form action="input.php"

↑ここ。inputでなくてoutputだから。
でもなぜかそのすぐ上の元のソースでは
ちゃんとoutputってなってるところがなぞ。
68nobodyさん:2008/11/15(土) 08:59:21 ID:oW2TcjIK
>>66
じゃあ、input.htmlと、output.phpの2つのファイルをドコのフォルダに置きましたか?
なんつーか、この辺がよくわかんないんですよね。
つまり、PHPの影響が及ぶエリアと、及ばないエリアがあると思うんです。

>>67
それは僕も思いました。
69nobodyさん:2008/11/15(土) 09:01:42 ID:???
>>68
パスの話になると別の問題
相対パスでぐぐってきてください
70nobodyさん:2008/11/15(土) 09:50:36 ID:???
>>68
xampp\htdpcs\php\
とかでいいとおもう。
71nobodyさん:2008/11/15(土) 10:02:28 ID:???
なんでxamppやねん。ディレクトリ名も間違ってるしひどいな
72nobodyさん:2008/11/15(土) 12:17:12 ID:???
>>63
初心者が陥りやすい問題だよね。

htmlのファイルはクリックしたらダメなのよ。
あくまでブラウザ操作が基本。
ブラウザにhttp://localhost/root/input.htmlと入れるのが正解
(ちなみにrootはアパッチのconfファイルで設定した所ね)

ファイルをダブルクリックで開くとwindowsのディレクトリが表示されてしまう
(C:/root/input.html)
こうなると次にPHPファイルを開いてもアパッチでなくwindowsがテキストとして開いちゃうんだよね。
73nobodyさん:2008/11/15(土) 12:39:59 ID:2pgE9K6y
最近パイプの質問ばっかりしてる俺が再びマジな質問ですが
パイプを使って得た文字列に改行がありません。
コマンドプロンプトで表示させると

ラーメン 名詞,*,ラーメン
うまい 形容詞,*,うまい

と表示されるのに
パイプで取得すると

ラーメン 名詞,*,ラーメンうまい 形容詞,*,うまい

と改行無しになってしまいます。パイプで改行を得るにはどうすればよろしいですか?
74nobodyさん:2008/11/15(土) 12:44:33 ID:???
>>73
パイプカットした方がいいよ
75nobodyさん:2008/11/15(土) 12:55:15 ID:???
【脆弱性】GoogleのログインページにXSSの脆弱性 ユーザー情報が盗まれる恐れも(08/11/13)
http://pc11.2ch.net/test/read.cgi/pcnews/1226550324/
76nobodyさん:2008/11/15(土) 17:15:47 ID:???
基本的にXSS対策って、htmlspecialcharsすればいいよね?
77nobodyさん:2008/11/15(土) 17:32:56 ID:???
改行の違いは?
78nobodyさん:2008/11/15(土) 17:33:18 ID:nBA7qJcq
$binary = ""; 
for($i=0, $j=strlen($char); $i < $j; $i++)
 $binary .= substr(printf("%08b", ord(substr($char,$i,1))) ,0,-1);
echo strlen($binary);
といった感じのソースで、$charをバイナリにしてその後いろいろと処理をしたいと思っているのですが、
strlenで0しか返ってきません。
なぜなのでしょうか?
79nobodyさん:2008/11/15(土) 17:40:18 ID:iYDkBqcl
変数定義する時
$var=(int)$var;
って横にデータ型の名前入れたカッコってこれどういう意味?
80nobodyさん:2008/11/15(土) 17:43:58 ID:???
型キャスト
81nobodyさん:2008/11/15(土) 17:46:19 ID:???
>>80
サンクス
8263:2008/11/15(土) 18:03:29 ID:oW2TcjIK
>>72
> ブラウザにhttp://localhost/root/input.htmlと入れるのが正解
> (ちなみにrootはアパッチのconfファイルで設定した所ね)
これで解決しました、どうもありがとうございました。

あと、もう1つ教えて欲しいのですが、
僕はrootをphpフォルダに設定しています。
で、そのフォルダの中にrep2(2チャンビュアー)を入れてます。
で、http://localhost/php/rep2/とブラウザに入れると、rep2が立ち上がります。
この場合、ブラウザはrep2フォルダのどのファイルを最初に読みに行くのでしょうか?
83nobodyさん:2008/11/15(土) 18:35:21 ID:???
>>82
そんなものはapacheの設定次第だが、普通はindex.htm index.html index.phpくらいだな
8463:2008/11/15(土) 18:40:26 ID:oW2TcjIK
>>83
ありがとうございます。実際、index.phpというファイルがありました。
85nobodyさん:2008/11/15(土) 18:53:10 ID:???
indexsを知らないでWebアプリ運用・・・ゴクリ
86nobodyさん:2008/11/15(土) 18:55:55 ID:???
アパッチの設定で自由に決められる。
一般的には、

(1)index.html
(2)index.htm
(3)index.php

などの順番で、上から順に探していく。
そして、そのファイルがあったら、表示する。
87nobodyさん:2008/11/15(土) 18:56:59 ID:???
ちなみに、グーグルのボットもそのような動作をする。
つまり、「ありそうな名前のファイル」で、手当たり次第に
アクセスをかけて、ファイルがあったら勝手にキャッシュされてしまう。
88nobodyさん:2008/11/15(土) 19:17:45 ID:2pgE9K6y
チョベリバな質問なんですけど
カウンターが1増える時と2増える時があることに始めて気がつきました。
1時間位考えて、やっと+2の発生条件が分かったんだけど原因が分かりません。

発生するのは
http://localhost/hoge.htm/aaa
のようにファイル以下に何か文字列を付けた場合です。

http://localhost/hoge.htmhttp://localhost/hoge.htm?text=aaaの場合は発生しません

もちろんカウンターのスクリプトには+1としか書いてないので
なぜ+2になるのか分からないのですYO!

で、推測なんですがhttp://localhost/hoge.htm/aaaのようにアクセスした場合
アパッチが2度読み込んでいるのではないかと思いました。

試しに
$kaisuu=file("test.log");//空のログファイルを開く
if($kaisuu[0] == ""){
$kaisuu = 1;
} else {
$kaisuu += 1;
}
//この後$kaisuuをtest.logに書き込む

と書いて$kaisuuをプリントしたら2が表示されてしまいます。
ちなみにファイル構成は下記の通りです。

アクセスする主のファイル hoge.htm
そしてその主ファイルの中でカウンターがあるファイルhoge.incをインクルードしています。

解決策がある人いませんか?
89nobodyさん:2008/11/15(土) 19:19:01 ID:???
どうせ2回実行してるんだろ
9063:2008/11/15(土) 19:23:33 ID:oW2TcjIK
rep2フォルダのindex.phpファイルに、

require_once './conf/conf.inc.php';
require_once P2_LIB_DIR . '/filectl.class.php';

という記述があります。
上は、ルートの/conf/conf.inc.phpをrequireする
で、理解出来るのですが、
下が理解出来ません。
実際、C:\php\rep2\libフォルダにfilectl.class.phpというファイルはあります。
この、「P2_LIB_DIR .」の記述にはどういう意味があるのでしょうか?
91nobodyさん:2008/11/15(土) 19:24:01 ID:???
定数
92nobodyさん:2008/11/15(土) 19:31:36 ID:???
>>90
最初にrequireしているconf.inc.phpの中をよく見ればいいよ
phpの初心者本くらいは手元においておいた方がいいと思うぞ
9363:2008/11/15(土) 19:33:01 ID:oW2TcjIK
>>91
ってことは、ファイルfilectl.class.phpをP2_LIB_DIRに置き換える、ということですか?
その辺のことはマニュアルのどこに書いてあるのでしょうか?
↓には書いてありません。

http://php.benscom.com/manual/ja/function.require-once.php
94nobodyさん:2008/11/15(土) 19:35:24 ID:???
死んでくれ
95nobodyさん:2008/11/15(土) 19:37:25 ID:???
>87
初めて知った。
クラックツールとか脆弱性監査ツール紛いの挙動だなw
96nobodyさん:2008/11/15(土) 19:40:39 ID:???
>93
conf.inc.phpをP2_LIB_DIRで検索。
そこで使われてる関数をマニュアルで調べる。
9763:2008/11/15(土) 19:46:34 ID:oW2TcjIK
>>96
はい、やってみました。 そうすると、
require_once P2_LIB_DIR . DIRECTORY_SEPARATOR . 'p2util.class.php';
というのが出て来ました。
これはどういう意味なのでしょうか?
98nobodyさん:2008/11/15(土) 19:47:20 ID:???
頼むからリファレンスくらい目を通してからプログラミングしてくれ
9963:2008/11/15(土) 19:49:12 ID:oW2TcjIK
http://php.benscom.com/manual/ja/function.require-once.php

↑をみると、require_once 関数の変数(?)は1つしかない。
なのに、↓は変数(?)が3つもある。
これが意味不明なのです。

require_once P2_LIB_DIR . DIRECTORY_SEPARATOR . 'p2util.class.php';
10063:2008/11/15(土) 19:51:57 ID:oW2TcjIK
本は、はじめてのPHPプログラミング基礎編と、PHP5リファレンス&逆引きユーザー便利帳というのを持っています。
101nobodyさん:2008/11/15(土) 19:52:27 ID:???
それを読んでからまた来てくれ
102nobodyさん:2008/11/15(土) 19:54:43 ID:???
>99
他にもあるだろ。もっと検索しろ。

もういい、自分で勉強する気がないようだから解答。
どっかで
define('P2_LIB_DIR', 'C\hogehoge');
みたいに宣言されてる。defineをマニュアルで引け。
 . は文字列の連結演算子だ。演算子の項を読んで来い。
P2_LIB_DIR と DIRECTORY_SEPARATOR と 'p2util.class.php'なら確かに3つの文字列だが、
P2_LIB_DIR と DIRECTORY_SEPARATOR と 'p2util.class.php'を「つなげたもの」はひとつの文字列だ。
103nobodyさん:2008/11/15(土) 19:56:20 ID:???
>>99
もう一度言う

最初にrequireしているconf.inc.phpの中をよく見ればいいよ

よく見て中になんて書いてあるか自分で調べて、それでも分からなければ
そこを引用して質問してくれ
あまりにも周りの書き込みをちゃんと読み解けていない
104nobodyさん:2008/11/15(土) 19:59:31 ID:???
自覚した上で質問してるんだろ
ほんとに腐った根性してる
10563:2008/11/15(土) 20:03:23 ID:oW2TcjIK
>>102
> P2_LIB_DIR と DIRECTORY_SEPARATOR と 'p2util.class.php'を「つなげたもの」はひとつの文字列だ。
なるほど、色々、宣言したものをつなげてるわけだ。 なんとなく理解出来ました。
106nobodyさん:2008/11/15(土) 20:19:09 ID:???
>>105
なんで他のレスはスルーしてんの?
107nobodyさん:2008/11/15(土) 20:23:30 ID:???
そもそも.の結合を理解できないあたり、マニュアルは読んでないわ
買った本は肥やしにもなっていないことが容易に想像される
10863:2008/11/15(土) 20:26:06 ID:oW2TcjIK
http://php.benscom.com/manual/ja/function.require-once.php
↑では、require_once()となっています。
しかし、↓には()がありません。
ということは、「あらゆる関数で()を省略していい」というルールなのでしょうか?
あるいは、「require_once()関数のみ()を省略していい」というルールなのでしょうか?
require_once './conf/conf.inc.php';
109nobodyさん:2008/11/15(土) 23:39:35 ID:???
引数という言葉すら知らんのか
110nobodyさん:2008/11/16(日) 00:07:50 ID:???
厳密に言うと関数は括弧必要だけどecho,requireなどの言語構造は必ずしも必要としない
111nobodyさん:2008/11/16(日) 00:10:31 ID:???
require系って言語構造じゃないの?
112nobodyさん:2008/11/16(日) 00:14:17 ID:???
エサを与えないでください
11363:2008/11/16(日) 00:35:00 ID:???
>>110
ありがとうございます。

話は変わり、
<html>
<body>
<?php
$sWeek = date("l");
$sDisp = "今日は英語で言うと" . $sWeek . "よ!";
print $sDisp;
?>
</body>
</html>

day.phpで保存すると、表示されるのですが、day.htmlでは表示されません。
これを、day.htmlで表示させるにはどんなソースにすればいいのでしょうか?
114nobodyさん:2008/11/16(日) 00:53:44 ID:???
apacheの設定ファイル(httpd.conf)で
AddType application/x-httpd-php .html

に設定変更してapacheを再起動してみそ
115nobodyさん:2008/11/16(日) 00:55:29 ID:???
ハンガリアン規約ってどうなんだろうね。
11663:2008/11/16(日) 05:25:49 ID:???
>>114
どうもありがとうございました。
11763:2008/11/16(日) 05:55:48 ID:TeIkZlvH
Q:DIRECTORY_SEPARATORとは何ですか?
11863:2008/11/16(日) 06:06:46 ID:TeIkZlvH
Q:DIRECTORY_SEPARATORとは何ですか?
A:
ディレクトリの区切り文字は、Windowsで「\」ですが、Linuxなどでは「/」が使用されています。
つまり、
"dirname" . DIRECTORY_SEPARATOR . "filename";
と書いた場合、
Windows環境では、dirname\filenameとなり、
Linux環境では、dirname/filenameとなるのです。
で、いいですか?
11963:2008/11/16(日) 06:43:03 ID:TeIkZlvH
Q:dirname(__FILE__)とは何ですか?
Q:__FILE__とは何ですか?
A:
http://php.benscom.com/manual/ja/language.constants.predefined.php
ここに、
__FILE__ ファイルのフルパスとファイル名。インクルードされるファイルの 中で使用された場合、インクルードされるファイルの名前が返されます。 PHP 4.0.2 以降では __FILE__ は常に絶対パスで、シンボリックリンクは解決されます。
と書いてあります。
つまり、dirname(__FILE__)はインクルードされてるファイルの置かれているフォルダ名を返します。
で、いいですか?
120nobodyさん:2008/11/16(日) 07:00:02 ID:???
あのさ、
気持ち悪いからマニュアルは
http://jp.php.net/manual/ja/
http://jp2.php.net/manual/ja/
のどっちかを参照してくんない?
12163:2008/11/16(日) 07:09:41 ID:TeIkZlvH
<html><body><?php
$sWeek=date("l");
$sDisp="今日は英語で言うと".$sWeek."よ!";
print $sDisp;
?></body></html>

この場合、
print $sDisp;
でも、
print$sDisp;
でも、
エラーにならずに表示されますねw
12263:2008/11/16(日) 07:14:46 ID:TeIkZlvH
http://php.benscom.com/manual/ja/language.constants.predefined.php
ググったら↑のページがヒットしたのです。

>>120
じゃあ、↑のページに相当するページは、↓ではどこになるのか教えて下さい。
あと、そのページに、あなたが、どうやって行き着いたか?も教えて下さい。
http://jp.php.net/manual/ja/
123nobodyさん:2008/11/16(日) 07:25:26 ID:???
>>122
同じマニュアルだろ
ただ上は非公式のミラーサイト
だから本家で参照しろと>>120は言いたいんだろ
ドメインが違うだけだからあとは基本的に同じだ
http://jp.php.net/manual/ja/language.constants.predefined.php

マニュアルの使い方は使ってるうちにそのうち覚える
最初のうちは気にしないことだ

疑問を持つのはいいことだが
いちいち出てくる疑問に大していちいち人に聞いてたら
いつまでたっても先に進まないよ

とりあえず細かいことを気にせず前へ進め
12463:2008/11/16(日) 07:30:21 ID:TeIkZlvH
>>123
http://jp.php.net/manual/ja/
おお、どうもです。
つーか、あなたがどうやって、↑から↓にたどり着いたか?
を教えて欲しいのですが。
http://jp.php.net/manual/ja/language.constants.predefined.php
125nobodyさん:2008/11/16(日) 07:43:30 ID:???
( ;^ω^)
12663:2008/11/16(日) 08:32:44 ID:TeIkZlvH
>>123
http://jp.php.net/manual/ja/
つーか、『__FILE__』に疑問を持った人が、
どうすれば、↑から↓にたどり着けるのか?
という質問なのです。
http://jp.php.net/manual/ja/language.constants.predefined.php
12763:2008/11/16(日) 09:01:56 ID:TeIkZlvH
それはそれとして、rep2のindex.phpの7行目に↓があります。
で、このauthorize()がわからんのです。

$_login->authorize(); // ユーザ認証
128nobodyさん:2008/11/16(日) 10:04:55 ID:???
>>126
やってれば__FILE__が定数だなってことは自然とわかってくるわけで
長くやってるやつにそんな理由を聞いても返答に困るだけ
このスレをROMってるだけで相当力つくから独学でやるならROMってるといいよ
そのうちなんとなくわかってくるから
129nobodyさん:2008/11/16(日) 10:21:49 ID:???
PHP初心者勉強会に参加しろよw
130nobodyさん:2008/11/16(日) 11:19:20 ID:???
昨日チョベリバな質問をした者です。
カウンターが+2になる原因が分かりましたので一応報告しておきます。

http://localhost/hoge.htm/aaaではなく
http://localhost/hoge.htm/////////////aaaのように滅茶苦茶深く入れてみると
IEの一番下の枠に複数のURLが高速で表示され、たった一回のアクセスでカウンターが1000位増えました。

そのURLが出た箇所が原因だった様です。
<noscrpt>
<iframe src=hogehoge.html>
</noscrpt>
と記載していたのですがどうやら自分がアクセスした層とhogehoge.htmlの層が違う場合は
リフレッシュして何度も読み込んでる様です。

よってhttp://localhost/hoge.htm/aaaの時は
<iframe src=../hogehoge.html>
となるように修正し解決しました。
131nobodyさん:2008/11/16(日) 11:53:15 ID:qwIcjEj2
>>ID:TeIkZlvH
・全部よむ
・検索する
どちらでもたどり着けます。検索する方がすぐ見つけられるけど、
一度全部読んでみるといいね!
検索の仕方がわからないんなら、教えてあげるからまた質問してね。

>>127
わからないことを、みんながわかるように書いてね。
132nobodyさん:2008/11/16(日) 12:06:52 ID:???
>>130
>>89

>>131
>>98
どんな世界でも使用法も読まないで分からないと質問するのは最も嫌われる行為。
君の怠惰のせいでどれだけ他人に迷惑かけた?
特にこのスレでは>>1にも書いてある。>>1も読まないのね。
133nobodyさん:2008/11/16(日) 12:07:23 ID:???
ごめん>>131じゃなくて>>ID:TeIkZlvHだった
134nobodyさん:2008/11/16(日) 12:14:36 ID:???
あまりに大人な対応に涙が出た
135nobodyさん:2008/11/16(日) 16:32:17 ID:???
拡張子.htmlで
PHPが実行されるようにアパッチを改造するのって
セキュリティ的に、少し危険な行為なんじゃないの?
136nobodyさん:2008/11/16(日) 16:33:21 ID:???
なんで?
137nobodyさん:2008/11/16(日) 16:35:53 ID:???
PHPを使用していることを隠蔽できるから安全という考え方もあれば、
アホなコードを書けばすぐPHPが実行されてしまう考え方が、

と思ったけど、そんな状態なら拡張子がphpだろうがhtmlだろうが、関係ない気もする。
13863:2008/11/16(日) 18:30:34 ID:TeIkZlvH
>>131
> 検索の仕方がわからないんなら、教えてあげるからまた質問してね。

おお、有り難うございます。 
では、フォルダの中に、サブフォルダもある。
その中に沢山の.phpファイルがある。
その多数のファイルの中から、authorizeの文字列を探したい。
この場合、どうすればいいのでしょうか?
139nobodyさん:2008/11/16(日) 18:33:08 ID:???
>>138
grepツールを使う。
具体的にどういうソフトを使うかは環境次第。
14063:2008/11/16(日) 18:43:46 ID:TeIkZlvH
>>139
そうですか、有り難うございます。
141nobodyさん:2008/11/16(日) 20:50:14 ID:???
linux: fedora8
php ver: PHP Version 5.2.6

cronで定期的にasahi.comから天声人語だけ抜き取って自分にメールを送るのと、
バックアップとしてその日の日付の名前でテキストファイルに保存するphpを作ったんですけど

cronが実行すると
cron daemonからメールで
PHP Warning: flock() expects parameter 1 to be resource, boolean given ...
PHP Warning: fputs(): supplied argument is not a valid stream resource in ...
PHP Warning: flock() expects parameter 1 to be resource, boolean given in ...
PHP Warning: fclose(): supplied argument is not a valid stream resource in ...
と返ってき、テキストファイルももちろん作成されておらず、どうも
function write($filename, $input)
{
$input=serialize($input);
$fp=fopen($filename,"w");
flock($fp, LOCK_EX);
fputs($fp, $input);
flock($fp, LOCK_UN);
fclose($fp);
}
というファンクションのfopenの戻り値がfalseでかえってきてるみたいなんですけど

自分でブラウザでそのphpを実行すると問題ないんです、ちゃんとファイルもその日の日付のタイトルで内容も保存されます
どうしたらcronで定期的にやってくれるように問題可決できるんでしょうか?教えてください。

142nobodyさん:2008/11/16(日) 20:54:14 ID:???
>>1
143nobodyさん:2008/11/16(日) 21:04:25 ID:???
ブラウザからじゃなく、cronで実行してるコマンドラインを流してみて確認すりゃ
いいんじゃあ
144141:2008/11/16(日) 21:31:12 ID:wBVwAFbg
>>142 
すみませんでした sageチェックはずしわすれてました。

>>143
cronでの実行ラインは/usr/bin/php ファイルパスで、
端末で実行するとメールと同じ内容のエラーメッセージがでてきますね・・・
で、ファイルも作成されずです。
コマンドラインじゃエラーになってブラウザだと通るって、なんでですかね?
145nobodyさん:2008/11/16(日) 21:43:23 ID:???
クーロンの書き方勉強するか、chdir使うかフルパスでfopenすればいいかと
146nobodyさん:2008/11/16(日) 22:17:07 ID:???
http://search.net-newbie.com/php/tutorial.firstpage.html

ここの、「PHP エディタのリスト」ってリンクをクリックすると
エラーになるな。単純ミスか?

こんなことだから
PHPプログラマーは低脳だってバカにされるんだ
14763:2008/11/16(日) 22:24:57 ID:TeIkZlvH
>>141
> cronで定期的にasahi.comから天声人語だけ抜き取って自分にメールを送るのと、
> バックアップとしてその日の日付の名前でテキストファイルに保存するphpを作ったんですけど
それ、面白そうですね。
規模でいうと何行ぐらいのphpなんですか?
148nobodyさん:2008/11/16(日) 22:44:08 ID:???
GETしてタグ抜いて書き出してメールなら、PEAR使っても1000ライン前後じゃないのかな。

>>144
コマンドラインで実行するとエラーが出るのはたまに経験あるな。
大抵、環境変数とかPHP側の設定とかが原因だった気がするが。
149141:2008/11/16(日) 23:05:52 ID:wBVwAFbg
>>147
50行ちょい
苦戦したといえば
自分は携帯にメールしてるため、
携帯で見れるための文字コード変換がややこしかった

>>148
やっぱり、PHP側の設定ですか
いや、今の箱の前に使用してたfedora7の箱だったら正常に作動してたから
phpのコーディングミスではないと確信だったので
150nobodyさん:2008/11/16(日) 23:05:59 ID:???
ペアなんか使う気にならん。
ソース書くのが楽しくてPHPやってんのに。
151nobodyさん:2008/11/16(日) 23:12:55 ID:???
人はそれを車輪の再発明と(ry
15263:2008/11/16(日) 23:27:27 ID:TeIkZlvH
>>149
> 50行ちょい
どうもです。少ないですね。 よかったらソースを晒して下さい。
153nobodyさん:2008/11/16(日) 23:43:59 ID:???
やだよ
15463:2008/11/16(日) 23:57:20 ID:TeIkZlvH
う〜ん、それは残念。
155nobodyさん:2008/11/17(月) 00:12:42 ID:uO1yzOV4
変数を初期化するにはどうしたらいいの?
15663:2008/11/17(月) 00:15:17 ID:DKgH+i/4
変数に初期値を代入すればいい。
157nobodyさん:2008/11/17(月) 00:18:36 ID:???
http://f44.aaa.livedoor.jp/~takamura/
ここのPHPマニュアルわかりやすい
158nobodyさん:2008/11/17(月) 00:25:34 ID:???
今後の展開が容易に想像できるしなw
159nobodyさん:2008/11/17(月) 01:06:37 ID:???
>>157
宣伝乙
アフィ厨死ねカス

>>158
こうですか?わかりません><
160nobodyさん:2008/11/17(月) 01:32:37 ID:???
>>156
>>63が質問に答えてるwww


161nobodyさん:2008/11/17(月) 03:59:05 ID:???
63、なんとなく人物像が想像できる。
貪欲に知識を吸収しようとする姿勢がカッコイイと思ってる。
アップルに感化されやすいタイプ。
マインドマップとか描いちゃうタイプ。
でも致命的にバランス感覚に欠けている。
身の周りの中では達観してるほうだと自分では思ってるが
そのままなら1,2年もすれば煙たがられるようになる。

なんかしらんけどムカつくわ ハゲ!!
162nobodyさん:2008/11/17(月) 04:07:56 ID:uO1yzOV4
ファイルロックしないとなんでファイルって壊れるの?

書き込みしている途中で
書き込み処理が完了していない状態で
誰かが同時に読み込みすると、中途半端な
書き込み途中のデーターを読み込んでしまって、
それで壊れるの?
16363:2008/11/17(月) 04:19:43 ID:VEc9l7C0
そうだよ
164nobodyさん:2008/11/17(月) 05:31:37 ID:???
排他制御とかデッドロックとかでググってみ
165141:2008/11/18(火) 01:56:19 ID:V5bkwf3L
>>152

$filepath="dat/tensei_".date("Ymd").".dat";

if(!file_exists($filepath))
{
$handle = fopen("http://www.asahi.com/paper/column.html","r");
if($handle)
{
while(!feof($handle))
{
$buffer=fgetss($handle);
$buffer = mb_convert_encoding($buffer, "SJIS", mb_detect_encoding($buffer));
}
fclose($handle);
}
$content=$buffer[68];

write($filepath, $content);
}
else
$content=load($filepath);

あとは$contentをmail関数かなんかでメールしたってください
166141:2008/11/18(火) 01:58:29 ID:V5bkwf3L
あ あと loadファンクション

function load($filename)
{
$fp=fopen($filename,"r");
flock($fp, LOCK_SH);
$array=fread($fp, filesize($filename));
flock($fp, LOCK_UN);
fclose($fp);
$array=unserialize($array);
return $array;
}
167nobodyさん:2008/11/18(火) 02:13:47 ID:???
行数で取得するのは危険ではないか
DOM使おう
168nobodyさん:2008/11/18(火) 02:22:11 ID:???
手っ取り早さ重視か。
fopenでhttpストリーム開く場合って、Proxyかましたい時とかどうすんだろ。
169nobodyさん:2008/11/18(火) 02:39:27 ID:???
fsockopenかpear使えば?
170141:2008/11/18(火) 02:40:15 ID:V5bkwf3L
>>167
危険性ってなんですか?
DOMですか?勉強してきます

>>168
さぁ\(^o^)/
171nobodyさん:2008/11/18(火) 07:04:09 ID:WbAApVvS
「DOMを使う」ってなんだ?
PHPプログラマに関係あることなのか?
172nobodyさん:2008/11/18(火) 08:31:03 ID:???
お前は何を言ってるんだ
173nobodyさん:2008/11/18(火) 09:42:35 ID:???
XML専門のプログラマでも呼ぶのかw
174nobodyさん:2008/11/18(火) 09:59:19 ID:???
お前は何を言ってるんだ
175nobodyさん:2008/11/18(火) 10:21:28 ID:ueNxgoBD
You Tube のWEB APIについて質問させてください。
ちょうどいいスレがわからなかったのでここにかきます。
PHPの質問というよりAPIについてですね。

下記PHPを実行し画面の LINK をクリックするとエラーがでてXMLが表示されません。
デベロッパーIDは実際には取得したものを入力しています。

<?php
$dev_id = "XXXXXXXXXXXXXXX";
$tag = "vaio";

echo "<a href=\"http://www.youtube.com/api2_rest?method=youtube.videos.list_by_tag&dev_id=".$dev_id."&tag=".$tag."\">LINK</a>";
?>

エラーのXMLは下記のとおりです。
デベロッパーIDを新しいものに代えても同じです。

<?xml version="1.0" encoding="utf-8" ?>
- <ut_response status="fail">
- <error>
<code>8</code>
<description>Bad, unknown, or disabled dev_id specified.</description>
</error>
</ut_response>
176:2008/11/18(火) 10:29:16 ID:ueNxgoBD
PHPを使わずにWEBブラウザーに直接アドレス入れても同じエラーが返ってきます。
177nobodyさん:2008/11/18(火) 10:42:24 ID:???
じゃ間違ってるんだろ
APIの仕様を確認してこい
178175:2008/11/18(火) 11:41:14 ID:ueNxgoBD
もちろん何回も確認して、他のサイトもいろいろ調べました。
自分で調べもしないで質問するのは失礼だと思いますし。
179nobodyさん:2008/11/18(火) 11:53:06 ID:???
>>176の時点でPHP関係ないのでは?
180nobodyさん:2008/11/18(火) 11:53:09 ID:???
>>175
まずエラーコードが何かどういう意味なのか調べろよ

>8 : Bad or unknown dev_id specified
>developer profileで登録されていない。

これでもエラーになるならエラーになるID晒すか
問合せしないと解んないと思うぞ
181175:2008/11/18(火) 11:54:01 ID:ueNxgoBD
確かに関係ないです............
182175:2008/11/18(火) 12:02:40 ID:ueNxgoBD
>> 180
> developer profileで登録されていない。
というのは私も見ましたがデベロッハーIDを取得している時点で
「developer profileで登録されていない」ということはないと思っていますが
どうでしょうか。何回IDを確認してもあってますし、新しいIDを取得しても同じです。
意味がなくてもUTF-8にエンコードしたものを使用したりurlencode()したり、いろいろやってみましたが
やっぱりだめです。
183nobodyさん:2008/11/18(火) 12:39:05 ID:???
情報を登録してないから有効化されてないんじゃない?
もしくは使いすぎて無効化されてるとか
184nobodyさん:2008/11/18(火) 12:45:14 ID:???
多分だけど古いAPI使ってるからじぇねーの
本来のサイト見ずに誰かが書いてる解説サイトみてたりしない?
185175:2008/11/18(火) 12:49:13 ID:ueNxgoBD
>>183
最初私もそう思って、次の日やっみましたが、だめでした。
まだ数十回しかエラーみてません。大丈夫だと思います。
186175:2008/11/18(火) 12:55:52 ID:ueNxgoBD
>>184
それは思い当たるふしがあります。
それかな。
書店で立ち読みしたり、いろんなサイト参考にしました。
肝心なグーグルにはRESTの仕方がどこにあるかわからなかったんです。
http://code.google.com/intl/ja/apis/youtube/developers_guide_protocol.html#Developer_Key
このへんを普段は見てるんですが、RESTのやり方出てるところご存じないですか?
187nobodyさん:2008/11/18(火) 12:58:32 ID:???
>>186
まずPHPって所もあるよな?
http://code.google.com/intl/ja/apis/youtube/developers_guide_php.html

あとタグから取得する場合は
http://gdata.youtube.com/feeds/api/videos?vq=vaio
でいい見たいだ
もっとちゃんと仕様読めよ
RESTの仕方じゃなくRESTが何か理解しろよ
188nobodyさん:2008/11/18(火) 13:01:25 ID:???
リンクして表示してるphp書いてるってことは
動画の取得と検索したいんだろ?
なんで認証セクション読んでるんだよ
189nobodyさん:2008/11/18(火) 13:08:22 ID:???
ようつべapiの仕様って意外と丁寧に書いてあるんだな
なんでわざわざ古いほう使うの?なにか問題があるのか?
190nobodyさん:2008/11/18(火) 13:19:11 ID:???
古いのを使いたいんじゃなくて
APIのページを読んでないから新しいのを知らない
マニュアル読まないタイプ
191nobodyさん:2008/11/18(火) 13:31:28 ID:A89iT03e
http://example.com/example/index.phpで稼働させているのですが

<a href="http://hoge.net/">hoge</a>
<a href="http://hoge.com">hoge1</a>
<a href="http://hoge.org/">hoge2</a>
<a href="http://hoge.name/">hoge3</a>
<a href="http://hoge.name/">hoge4</a>

というリストを作ってincludeで読み込んでいるのですが、表示するときに

<a href="http://example.com/example/index.phphttp://hoge.net/">hoge</a>

のように、http://example.com/example/index.phpの後にタグ内のURLが付加された状態になります
作ったリスト通りに表示させたいのですが方法はありますか?
192nobodyさん:2008/11/18(火) 13:37:00 ID:???
リストをincludeで読み込むって
PHPのソースコードじゃないただのテキストをincludeしてるのか?
簡略化しないでちゃんとしたソースを出さないとエスパーすぎて答えようがない
193nobodyさん:2008/11/18(火) 13:45:17 ID:A89iT03e
>>192
つまりそういうことです。
言葉足らずですみません。

ソースと言っても

〜HTML文〜
<?php
include(list.dat);
?>
〜HTML文〜

くらいしかないので
194nobodyさん:2008/11/18(火) 13:51:07 ID:???
もしかしたら、リストにはこう書いてあるかもしれないw
<a href="./http://hoge.net/">hoge</a>
195nobodyさん:2008/11/18(火) 14:00:37 ID:???
>>193
自分の環境だと正常だけども・・・
fileで読み込んでループさせて表示するとかでもいいんじゃない?
foreach(file("list.dat") as $value) {
echo $value;
}
とか
196nobodyさん:2008/11/18(火) 14:06:10 ID:A89iT03e
>>194のようではなかったのですが、
>>195でできました。ありがとうございます。
197nobodyさん:2008/11/18(火) 14:36:50 ID:???
エスパーっているんだな。
俺にはさっぱり理解できないや
198nobodyさん:2008/11/18(火) 15:35:24 ID:WbAApVvS
ファイルロックしても、音が鳴らないから、
本当にロックされているのかどうか、わからない。

「ファイルロック発動!!」
「カシーーーン!!!!!」

とかって派手に音が鳴って欲しい。一回ごとに。
199nobodyさん:2008/11/18(火) 15:44:58 ID:???
>>198=171
アニメのロボットようですね。
そんなあなたの思った"DOM"は某アニメのそれだったんでしょうね
200nobodyさん:2008/11/18(火) 15:58:00 ID:???
ロックする部分のスクリプトが信用できないなら
音がなったとこでどのみち一緒
音はなってるけど本当にロックされてるのかわからないとか言い出しそうだな
201nobodyさん:2008/11/18(火) 16:31:39 ID:WbAApVvS
$_REQUEST と $_POSTの違いってなに?
POSTでデーターがくるってわかりきってるときに
$_REQUESTでわざわざ受けるのはセキュリティ的に危険な行為?

(GETで送られたデーターも受けてしまう等)
202nobodyさん:2008/11/18(火) 16:36:39 ID:x5+Y4KnD
どなたかご教授お願いします。
【OS名】linux 【PHPのバージョン】php4.3.1 【連携ソフトウェア】mysql
【質問内容】getimagesizeを使って、ただ単純に画像の縦横幅を取得し、cssのクラスを振り分けたいだけなんですが、実行はうまくいっているのに
以下のエラーを吐きます。なぜでしょうか?※ちなみに、phpバージョン4.4.8のサーバではWarning吐きませんでした。初心者でして、ご迷惑おかけしますがどうかよろしくお願いします。

Warning: getimagesize() [function.getimagesize]: Read error! in /home/homepage/public_html/example/2008/0810319.php on line 71

■phpの記述は以下です
<?php
$path = "../photo/".<MTIfNonEmpty tag='photodir'><MTphotodir></MTIfNonEmpty>;
$dh = opendir($path);
while (false !== ($filename = readdir($dh))) {
$array[] = $filename;}
$num = count($array);
$max = 3;
$cnt = 0;
for ($i=0;$i<$num;$i++) {
$filename = $path."/" . $array[$i];
list($width, $height, $type, $attr) = getimagesize($filename);
if (Eregi('gif$', $filename) OR
Eregi('jpg$', $filename) OR
Eregi('jpeg$',$filename) OR
Eregi('png$', $filename)) {if ($width > $height) {print("<li class='landscape'><a href='$filename' rel='lightbox[01]'><img src ='$filename' width='260'></a></li>");}
else {print("<li class='portrait'><a href='$filename' rel='lightbox[01]'><img src = '$filename' width='260'></a></li>");}}}
unset($array);
?>
203nobodyさん:2008/11/18(火) 16:45:20 ID:WbAApVvS
phpの中で

<!-----この形式------>


のコメント書いても、ちゃんとコメントとして機能
するんだよね?

だったら、全部、<!-----この形式------>で
コメント統一してもいい?
204nobodyさん:2008/11/18(火) 16:45:29 ID:???
>>202
$arrayの中身は確認した?
205nobodyさん:2008/11/18(火) 17:03:53 ID:???
>203
phpのコメントは「// 〜〜」と「/* 〜〜 */」
206nobodyさん:2008/11/18(火) 17:42:12 ID:???
>>205
いろんな言語ごちゃまぜにしてるから
#なんてのもあったりする
207202:2008/11/18(火) 17:42:47 ID:???
>>204

回答ありがとうございます!
$arrayの中身を確認したら、不可視ファイルのサイズまでgetしようとしている事がわかりました。

お手間かけました。解決しました。
ありがとうございました。
208nobodyさん:2008/11/18(火) 18:36:06 ID:???
>>202
ソースコード見ると突っ込みどころ満載だが
10段階評価でいえば3くらいかな
209nobodyさん:2008/11/18(火) 21:13:41 ID:If9cERb/
質問ですがトラックバックpingをPOST受け取る場合
どういう名前で受け取るのですか?

一般的にポストは$_POST["test"]って感じで受け取りますが
このtestの所に何を入れればいいか分かりません。

それと、送られてくるのは?titleなどとgetみたいに送られてくるようですがgetで受信しちゃっていいですよね?
210nobodyさん:2008/11/18(火) 21:34:33 ID:???
なんていうかその・・・がんばれ
211nobodyさん:2008/11/18(火) 21:51:25 ID:If9cERb/
頑張れません。
そのページを開けば自動的にpostになるんですか?
212nobodyさん:2008/11/18(火) 21:55:48 ID:minqEeYS
('A`;)
213nobodyさん:2008/11/18(火) 22:00:57 ID:???
>>209
グーグル先生に聞いてください10秒もかからずに分かります
214nobodyさん:2008/11/18(火) 23:05:07 ID:WbAApVvS
http://blog.opsa.jp/archives/18

↑ここを読んで、
「Notice: Undefined index: 」というエラーを消すための
方法を勉強してたんだけど、なんで

if(isset($_GET[”s”]) && $_GET[”s”]) {
/* 以下略*/
}

って、2つ書かないとだめなのかな?

理由をわかりやすく教えてくれる?
215nobodyさん:2008/11/18(火) 23:06:05 ID:WbAApVvS
コードはのってるんだけど
理由が書いてないんだよね
216nobodyさん:2008/11/18(火) 23:18:09 ID:???
>>214
おせんべいが腐っているかどうかを調べる前に、
おせんべいがそこにあるかどうかを調べるのさ。
217nobodyさん:2008/11/18(火) 23:20:42 ID:WbAApVvS
http://www.dmxzone.com/ShowDetail.asp?NewsId=13811

こっち見てたら、また別のサンプルコードが見つかった。

if (!isset($_POST['action']))
{
//If not isset -> set with dumy value
$_POST['action'] = "undefine";
}

どれを使えばいいんだ?
218nobodyさん:2008/11/18(火) 23:27:21 ID:???
>>217
少しは学習しろよ低能
パーミッションの時からちっとも態度が変わってねーじゃねえか
下らんことばっか聞いてないで少しは自分で考えろ
219nobodyさん:2008/11/18(火) 23:31:02 ID:???
「教えて君」「教える君」というのは、
ネット上に存在する2種類の人種の人たちを示す揶揄された敬称のことであるが
その影には「教えない君」という人種が多数いるの事にはあまり注目されていない。

しかし、実はその「教えない君」という人種が一番厄介かつ迷惑な存在だったりするのである。

そもそも荒れる原因というものは「教えない君」の、無秩序かつ、無神経なレスにある部分が
大多数なのだが、彼らの多くは、そういった感覚はどうやら持ち合わせていないようである。

第三者がそうした場面を見た場合に、誰に一番の非があるというのは
「教えない君」にあるというのが客観的事実であるのは明らかなのであるが、
彼らは認めようとしない。

表面上は、「教えない君」はネット上のルールや倫理や秩序などを叫ぶのであるが
どうやら真相は、現実社会において蔑まれる存在である「教えない君」の
鬱憤晴らしのようである。

上記でそういった悲哀のレスを付けた人たちは、勇気を持って自らの弱さと過ちを認め
反省しなければならない。

それが、キミたちニートの人間的に成長できる数少ないチャンスなのである。
220nobodyさん:2008/11/18(火) 23:38:38 ID:WbAApVvS
http://aki.adam.ne.jp/bbs/question/detail.php?rt=2428&id=2428

ここ見てたら、さらに別の書き方を発見。

if (isset($_SESSION['DefaultBlogDate']) && is_null($_SESSION['DefaultBlogDate']))

いったい、どれを使えばいいのか?
221nobodyさん:2008/11/18(火) 23:45:08 ID:???
何がどうわからないからこれを教えてくれっていう質問ならわかるけど
これはだめなの?どれ使えばいいの?
いちいちそんな細かいことばっか疑問もってたら先に進まない
使ってみてだめなのかマニュアル見ながら動かしてみろよ
好きなの使ってみていろいろと発見してみろよ
全ての疑問に説明が必要な要領の悪いやつはプログラム向いてないからやらなくていいよ
それでもやりたいなら金払って学校でもいけよ
222nobodyさん:2008/11/18(火) 23:50:50 ID:???
検索能力は優秀だと思うよw

ま少しは自分の頭使って考えてみ
223nobodyさん:2008/11/19(水) 00:18:07 ID:???
0やnullがセットされているときはどうするのか、
そもそも変数が存在しない(送信されていない)ときはどうするのかということを考えろ
お前が考えている仕様次第だ
224nobodyさん:2008/11/19(水) 02:04:29 ID:73F27S5B
「<!--topentry-->PHPを使った正規表現処理<!--/topentry-->」
から「PHPを使った正規表現処理」という文字列を抽出したいのですが、上手くいきません。
↓の方法のどこがいけないのでしょうか?

preg_match("/<!--topentry-->(.*?)<!--\/topentry-->/",$data,$match);
225nobodyさん:2008/11/19(水) 02:14:09 ID:???
<?php

$data="「<!--topentry-->PHPを使った正規表現処理<!--/topentry-->」
から「PHPを使った正規表現処理」という文字列を抽出したいのですが、上手くいきません。
↓の方法のどこがいけないのでしょうか?";

preg_match("/<!--topentry-->(.*?)<!--\/topentry-->/",$data,$match);

var_dump($match);

//array(2) { [0]=> string(54) "PHPを使った正規表現処理" [1]=> string(23) "PHPを使った正規表現処理" }
226nobodyさん:2008/11/19(水) 02:20:13 ID:???
「<!--topentry-->PHPを使った正規表現処理<!--/topentry-->」は正しく抽出されますが、

「<!--topentry-->
 PHPを使った正規表現処理
<!--/topentry-->」はマッチしないのですが、この場合どうすればよいでしょうか・・・?
227nobodyさん:2008/11/19(水) 02:28:26 ID:???
すみません。MySQLで列(カラム)の要素を配列として持ちたい
(データベース内容をCSVで表すと
"1","aaa","100"
"2","bbb","150"
"3","ccc","130"
↑このaaa、bbb、cccを配列として持ちたい)のですが

やり方として、新しい空の配列を作ったあと、
mysql_fetch_array() とかで行を抜き出して
欲しい列の値を配列にarray_push するのが
一番効率いいのじゃないかと思っているのですが
どうでしょうか。もしもっといい方法があったら教えてください。お願いします。
228nobodyさん:2008/11/19(水) 02:33:49 ID:???
>>1
229nobodyさん:2008/11/19(水) 02:46:37 ID:???
きっと下らなくない質問なのだとご主張なのでしょう
230nobodyさん:2008/11/19(水) 04:08:03 ID:???
【OS名】CentOS5.1
【PHPのバージョン】php 5.1.6
【連携ソフトウェア】javascript
【質問内容】
画像ギャラリーのページを作ろうと思って、
minishowcase
http://minishowcase.net/?main
を利用してみたのですが、大きい画像だけサムネイルが自動作成されません。
PHPのGDライブラリを使っているのですが(上記環境ではGD の2.0.28がインス
トールされています)、どのようにしてサムネを作成しているのかわからず、
原因が特定できません。
どなたか何かごぞんじですか。
231nobodyさん:2008/11/19(水) 04:08:29 ID:sZvZzDwd
【OS名】CentOS5.1
【PHPのバージョン】php 5.1.6
【連携ソフトウェア】javascript
【質問内容】
画像ギャラリーのページを作ろうと思って、
minishowcase
http://minishowcase.net/?main
を利用してみたのですが、大きい画像だけサムネイルが自動作成されません。
PHPのGDライブラリを使っているのですが(上記環境ではGD の2.0.28がインス
トールされています)、どのようにしてサムネを作成しているのかわからず、
原因が特定できません。
どなたか何かごぞんじですか。

上げ忘れちゃったのでもっかい。
232nobodyさん:2008/11/19(水) 04:30:11 ID:???
ソース見てみれば?
233nobodyさん:2008/11/19(水) 06:38:29 ID:???
234nobodyさん:2008/11/19(水) 08:18:27 ID:???
頭が悪い人間が使いやすい言い回しや
言い間違いが目立つならそいつの間違いを
最初に考える。

経験則では、報告の文でやたら漢字を
使いまくる奴も大体は頭が悪い。
(やたら→矢鱈、しかし→併しとか)

一般的には平仮名で記述する言葉を
上手く判断できないということなのだろう。

数学の試験問題みたいなフォーマルな
記述が出来ている質問ならそいつは
馬鹿じゃない可能性が高いんでバグが
あるのかもねと調べてみる。
235nobodyさん:2008/11/19(水) 08:20:23 ID:???
日本語でおk
236nobodyさん:2008/11/19(水) 08:47:03 ID:???
237nobodyさん:2008/11/19(水) 08:56:35 ID:???
>>219=>>234
こういう馬鹿なことを書くやつは文字通り馬鹿
238nobodyさん:2008/11/19(水) 09:01:44 ID:???
>>231
多分、memory_limit
エラーログ見てみ
239nobodyさん:2008/11/19(水) 11:32:57 ID:???
>>238
その通りでした。ありがとうございました。
240nobodyさん:2008/11/19(水) 14:25:02 ID:???
俺は精神の筋力がまるでないため、強いストレスを
感じると死体が往来を徘徊する幻覚が見えて、全く
無関係の人間をリビングデッドだと判断して物理的に
攻撃してしまうため、その症状を薬で抑えている。

俺は今から約二年前に都立松沢病院の閉鎖病棟に
入っていたが、あそこは精神力の足りない者の吐き溜め
だった。生得的なものか環境によってねじ曲がったのか、
精神の病気になり真っ当な日常生活を送ることができず、
周囲の人間か或いは自分を物理的に傷付けて、時には
死に至らしめる。
241nobodyさん:2008/11/19(水) 14:34:07 ID:???
なんかメンヘラが迷い込んでますね
メンヘラお得意の体験談やポエムはブログでやってね
242nobodyさん:2008/11/19(水) 15:29:01 ID:???
まぁここにキチガイかまってちゃんが
常駐してるのは今に始まった事じゃないしwwww
243nobodyさん:2008/11/19(水) 15:29:57 ID:???
スレチは消えてね^^
244nobodyさん:2008/11/19(水) 18:48:29 ID:rh/HC40w
質問

ファイルから「1」を読み込んで
プラス1して返す、ってコードを書いたんだが、
ふと思ったんだが、この「1」を数字と解釈してくれるから
普通にプラス1できるわけだが、もしPHPがこれを
数値型でなくて文字型と解釈したら
「文字の1にプラス1加算とかできねーよwww」
とかって言われてプログラムが動かなくなると思うんだが、
なぜPHPはこっちの用意した「1」を数値型だと
認識しているのだろうか??
245nobodyさん:2008/11/19(水) 18:51:22 ID:???
つマニュアル
246nobodyさん:2008/11/19(水) 18:58:52 ID:???
>>244
それがPHPのよさであり悪さでもある
echo 1 + "3";
とかしてみればわかる
247nobodyさん:2008/11/19(水) 20:29:08 ID:rh/HC40w
質問

「ボタンが押されたら数字をプラス1してファイルに書き込む」

ってプログラムで、以下のように書いたんだが、
今はこれで動いているんだが、こんな書き方でいいのかな?

if (isset($_POST["aaa"])) { /*ボタンが押されたら*/
$fh=fopen("../../n.txt","r+"); /*ファイルを読み書きモードで開く、ファイルポインタに入れる*/
flock($fh, LOCK_EX); // 書き込みロック
$a=fgets($fh); //ファイルの中味を取得して$aに入れる
$a=$a+1; //$aをプラス1する

fseek($fh, 0); // ポインタを先頭に戻す
fputs($fh, $a); // さっきプラス1した$aを書き込み
fclose($fh); // ファイルを閉じる
}
248nobodyさん:2008/11/19(水) 20:30:46 ID:rh/HC40w
特に

「ボタンが押されたら」

の部分の処理に不安がある
教科書に載ってない独自のやり方だから。

教科書のコードは意味の解説がなかったので
信用できんかったので自分で書いてしまったのだが。
249nobodyさん:2008/11/19(水) 20:36:18 ID:rh/HC40w
いろいろググってみたんだが、unsetを使う方法、
emptyを使う方法、is_nullを使う方法、issetを使う方法、
&&で連結する方法、等、
多数の方法が入り乱れていて、どれを選択したらいいのかがわからん。
250nobodyさん:2008/11/19(水) 20:49:01 ID:???
んなもんそれぞれの関数が
どういう役目を持ってるか考えたら自ずと答えは出るだろ・・・

誰かが食いもんか何かで例えてたけど
みかんが存在しなければ食えないし isset
みかんがあっても中身がなければ食えない 変数== ''等
で、中身があっても腐ってれば食えない バリデート等
251nobodyさん:2008/11/19(水) 20:50:44 ID:???
前質問した人?
252nobodyさん:2008/11/19(水) 20:57:28 ID:???
「アグリビジネス創出フェア2008」
http://agribiz-fair.jp/

ここのサイトなんだが、

http://agribiz-fair.jp/2007/list/
http://agribiz-fair.jp/2007/list/detail.php

↑こういうリンクをクリックすると、phpのソースがまるっと
出てきてしまう。アパッチの設定ミスか?
253nobodyさん:2008/11/19(水) 21:11:30 ID:???
>>252
それどこからリンク張ってあるの?
254nobodyさん:2008/11/19(水) 21:23:44 ID:???
>>252
お、本当だ
つーかそこの人に連絡してやれよ

多分PHPが使えるディレクトリ等を制限してるんじゃないかな
んでそこを使えるように.htaccessかconfの変更忘れかで
そういう状況
255nobodyさん:2008/11/19(水) 21:28:46 ID:???
>>254
>つーかそこの人に連絡してやれよ

じゃあ、それ専用のメール送信フォームをphpで書くところからだな
256nobodyさん:2008/11/19(水) 21:30:21 ID:???
最後のhiddenわらた
XXSし放題じゃん
257nobodyさん:2008/11/19(水) 21:35:56 ID:???
>>256
XSSした所でそれをそのまま他の人に表示しなければ
問題ないからあんな所気にする必要無い
258nobodyさん:2008/11/19(水) 21:39:17 ID:???
GETでパラメータ付けたURL踏ませたら?
259nobodyさん:2008/11/19(水) 21:40:47 ID:???
誰に踏ませるの?
自分で踏んで自爆か?
260nobodyさん:2008/11/20(木) 00:15:53 ID:GXD6uC7d
入力フォームを作成する

1.氏名を表示させる
2.男性、女性をreslt.phpで表示させる
男性の場合青、女性の場合赤で表示させること

3.趣味を表示させる
読書、ゲーム、映画、旅行、スポーツ 
チェックした項目をreslt.phpで複数表示させる事

チェックした項目には
あなたの趣味は○○と○○ですね。と表示させる

読書、ゲーム、映画、2点以上 のみチェックした場合、「たまには体を動かしましょう」
スポーツ、旅行の 2点チェックした場合 「体を動かすのは良いことです。」
全てチェックを入れた場合には、(5点)「たくさんの趣味がありますね。」
と表示させる

3ができません
助けてください><
http://www9.uploader.jp/dl/naoya6628/naoya6628_uljp00007.zip.html
1,2はできました
C言語が間違ってるんだと思います
261nobodyさん:2008/11/20(木) 00:39:20 ID:???
質問

「ボタンが押された時に、○○を実行する」

って処理で、issetで&&で

if(A && B) {
○○
}

(Bは $a!=""って記述)
って書かなければいけない、っていうサンプルコードを
よく見るんだけど、なんでBが必要なのかわからなかったんだけど、
もしかして、issetは $a="";
の場合をトラップできないので、そのための保険?として
Bが必要なのかな?っていうところまでわかったんだけど、
じゃあ、どんな場合に$aが空白になるの?
今度それがわかんない。
262260:2008/11/20(木) 00:51:53 ID:GXD6uC7d
明日までなんです
練れないです たすけてくだしあ
263nobodyさん:2008/11/20(木) 01:37:59 ID:???
>>262
result.phpの、
21行目くらいの、

if(isset($_POST["hobby"];)){

↑これ、余計なセミコロン;がついてる。
264nobodyさん:2008/11/20(木) 01:48:14 ID:???
趣味はname="hobby[]"で受け取って配列回して表示な
265260:2008/11/20(木) 01:49:02 ID:GXD6uC7d
>>263
本当に感謝www
ライン51のエラーも分かって

sportsにチェック入れたらreadですねってでてきた!!!
間違ってるけどうれしい!!
もうちょっと頑張って本当に分からなければ質問します
ありがとです><
266nobodyさん:2008/11/20(木) 01:52:36 ID:???
自分の環境で実験したら、


Parse error: syntax error, unexpected ';', expecting ',' or ')' in C:\xampp\htdocs\result.php on line 23

ってエラーが出たもんで、

unexpected ';'

って書いてあるもんだから、余計な;セミコロンが
あるんだろうなー、、、てわかったんだけど、
エラーメッセージは見なかったのかな?
267260:2008/11/20(木) 01:52:55 ID:GXD6uC7d
>>264
付け加えたら氏名がhobbyになりますた
268nobodyさん:2008/11/20(木) 01:53:02 ID:???
xampp(笑)
269nobodyさん:2008/11/20(木) 01:59:33 ID:???
<?php
print $sports ;
?>

↑これが唐突に出てきてるんだけど、
$sports はどこで定義されてるの?
270nobodyさん:2008/11/20(木) 02:00:15 ID:???
ところでこれって会社の宿題?
271nobodyさん:2008/11/20(木) 02:02:58 ID:YCb8rCMr
非常にくだらない質問なんだが、


マニュアルをコピペしてるだけのサイトってなんなの?
検索でひっかかってすげーウザいんだけど。
272260:2008/11/20(木) 02:08:17 ID:GXD6uC7d
http://www9.uploader.jp/dl/naoya6628/naoya6628_uljp00009.zip.html

修正した
>>270
会社ではあいよ
専門学校
>>266
エラー吹いたら英語の時点で読む気がwww
273nobodyさん:2008/11/20(木) 02:16:54 ID:HLYnX99e
質問

Windowsでphpファイルを作成しているんだが、
エディタの設定で、改行コードは、windowsの標準のCR/LFで
保存されてるんだが、サーバーにアップロードするときに、
特に何もしないで、CR/LFのままアップロードしてるんだが、
本当はUNIX標準改行コードのLFに直してから
アップロードしないとだめなの?
274nobodyさん:2008/11/20(木) 02:24:44 ID:HLYnX99e
>>273
自己解決した。
アスキーモードでアップロードするなら、
FTPソフトが自動で改行コードも
変換してくれるそうです。
275272:2008/11/20(木) 02:24:59 ID:GXD6uC7d
頭痛い
マジ分からんお手上げです><
誰か修正してくだしあ
276nobodyさん:2008/11/20(木) 02:35:00 ID:HLYnX99e
http://www.usamimi.info/~ryouchi/scraping/sample/rate_src.php


↑ここ見てたら、こんな表現を発見してしまった

# // ボタンが押されたら
# if($_GET['cmd']<>""){

いったい、どれを使えばいいんだ?
277nobodyさん:2008/11/20(木) 02:36:28 ID:HLYnX99e
初期化されていない変数は、
デフォルトではNULLなのか?
278nobodyさん:2008/11/20(木) 03:10:56 ID:???
>>247の人?
279nobodyさん:2008/11/20(木) 03:57:43 ID:8S9SJ1aO
$today = getdate(); を使って、
31日、毎日違う文を表示させたいのですがどう書いたらいいですか?

フリーで探したんですけどなくて・・・
280nobodyさん:2008/11/20(木) 04:00:01 ID:???
それで日付が取れるだろ?
んで31個文章作るだろ?
あとはそれ同士をくっつけて取ってくればおk
281nobodyさん:2008/11/20(木) 05:25:19 ID:???
date()から日付けを文字列で返してそれを違う文配列のキーにすればおk
282nobodyさん:2008/11/20(木) 05:34:31 ID:???
ID:bw3b61Qh
ID:LBY0wnii
ID:uO1yzOV4
ID:WbAApVvS
ID:rh/HC40w
ID:HLYnX99e
283nobodyさん:2008/11/20(木) 05:36:52 ID:8S9SJ1aO
>>280

<?php
$today = getdate();

if($today[mday] == 1) {
include "1.php";
}
elseif($today[mday] == 2) {
include "2.php";
}
else {
include "3.php";
}
?>

似た感じのソースを見つけたんですけど、
こんな感じで elseif を増やしていけばいいですか?
最後のelseは例えばelseif を1〜30まで作って、
どれにも該当しない場合(31日)でる処理で大丈夫ですか?
よろしくお願いします。

284nobodyさん:2008/11/20(木) 05:50:31 ID:???
>>283
switch文にしな
というかファイル名と日時が一緒なら
単にinclude($today["mday"] . ".php")でいいのでは?
285nobodyさん:2008/11/20(木) 06:21:13 ID:8S9SJ1aO
>>284
ありがとうございます

<?php
$today = getdate();

include($today["mday"] . ".php")

?>

で、済むということですか!?
286nobodyさん:2008/11/20(木) 07:30:39 ID:???
>>285
1.phpから31.phpを用意するならね
同じディレクトリだとファイル数が多くなってごちゃごちゃするから
もしやるなら別のディレクトリにしたほうがいい気がするけど
include("./dir/" . $today["mday"] . ".php")

今日は○日ですというだけのスクリプトならば
$today = getdate();
echo "今日は" . $today["mday"] . "日です<br>\n";
だけでいいし
数文字程度の占いみたいなメッセージをechoするだけなら
わざわざ30個ファイル作るよりswitch文使って条件分岐した方がいいと思う
その場合メッセージをreturn値にして関数化したほうがごちゃごちゃにならなくていいと思う
287nobodyさん:2008/11/20(木) 07:55:45 ID:???
お前の回答がごちゃごちゃだわ

>>285みたいにするならファイルが存在しない場合の処理にも気をつけてな
288nobodyさん:2008/11/20(木) 09:17:44 ID:8S9SJ1aO
>>286
ちょっとreturn値とか頭がこんがらがりそうなので
先ほど教えてくれた、
include("./dir/" . $today["mday"] . ".php") でやってみる事にします。
ありがとうございました。

>>287
わかりました!
でもちょっとやり方がわからないので1−31まできちんと用意すれば
大丈夫ですよね?;
289nobodyさん:2008/11/20(木) 09:31:03 ID:???
$today = getdate();
$inc_file = "./dir/" . $today["mday"] . ".php";
if (file_exists($inc_file)) {
 include($inc_file);
else {
 echo "ファイルがないよ";
}

例外処理でやるのが理想的だけどわからなそうだから
簡素化するとこんな感じかね
290nobodyさん:2008/11/20(木) 11:19:40 ID:8S9SJ1aO
>>289
助かりました、そのまま使わせていただきます
親切にありがとうございます!
291nobodyさん:2008/11/20(木) 13:12:48 ID:???
file_exists($inc_file) && include($inc_file);
とかどう
292nobodyさん:2008/11/20(木) 13:30:28 ID:???
>>291
その時点でincludeされてしまうだろ
is_readableとかならわかるけどさ
きりがないしそこまでやる必要はないと思うけどね
293nobodyさん:2008/11/20(木) 16:27:48 ID:???
無かったらされないよ?
294nobodyさん:2008/11/20(木) 16:46:35 ID:???
ああ、if文に書くわけじゃないのね
2回includeするもんだと思ってたわ
でも条件演算子を普通に使うのは違和感がある
295nobodyさん:2008/11/20(木) 16:50:28 ID:???
if文に書いたとしても無かったらされないだろ
296nobodyさん:2008/11/20(木) 17:02:26 ID:HLYnX99e
質問

変数を初期化する、って言ったら、普通

$a= "";

ってするものなの?
297nobodyさん:2008/11/20(木) 17:05:27 ID:???
必要な初期値で初期化する
298nobodyさん:2008/11/20(木) 17:12:49 ID:HLYnX99e
$a= "";


↑これでもいいの?
299nobodyさん:2008/11/20(木) 17:14:55 ID:???
>>295
if文でどう書くの?
if (file_exists($inc_file) && include($inc_file)) {
}
この中身を空にするわけ?
いろいろと構文的にもおかしいよ
300nobodyさん:2008/11/20(木) 17:20:00 ID:???
何言ってんだ
301nobodyさん:2008/11/20(木) 17:22:23 ID:???
>>295が言いたいことは「ファイルがなければ(読めなければ)includeされない」こと
ここを汲み取れ

ちなみにincludeするファイル内にreturn書いてない限りifにincludeを書かない方がいいよな
読めなければfalseになるが、E_WARNINGを制御出来るわけじゃないし
302nobodyさん:2008/11/20(木) 17:40:31 ID:???
ファイルが存在して適切なパーミッションが設定されていれば
includeはできるわけでincludeできることを前提で書いたほうがいい
もしファイルが存在して読み込み可能なのにincludeできないなんてことが仮におこった場合
それは普通の状態でないわけで
書き手がそこまで責任を負うことはない
303nobodyさん:2008/11/20(木) 17:47:16 ID:AwsGLaDA
>>301
http://www.php.net/manual/ja/language.operators.logical.php
>>295 は例1に書いてあることを言っているんじゃないかと思う。
質問者にとってはどうでもいいことだが。

>>302
あなたのところではそうかもしれないが、少なくとも私のところでは
そうではない。
どうでもいいことだが。


同じ人が同じような処理をするコード書いても、前提や目的によって
だいぶ変わるだろ。そういうことを無視して意見されても全く参考に
ならない。
304nobodyさん:2008/11/20(木) 17:50:08 ID:???
>>299
「仮に」ifの条件中に書いたとしても動作は同じだよってこと言ってるんだと思うが。
ちなみに構文的にどこがだめなん?おかしくないよ。
305nobodyさん:2008/11/20(木) 17:53:21 ID:HLYnX99e
質問

<form name="abc" action="abc.php" method="post">
<input type="submit" value="push" name="def">
</form>

<php
print_r ($_POST['abc']);
print_r ($_POST['def']);
print $_POST['abc'];
print $_POST['def'];
?>

これで、何も表示されないんだが、なんで?
306nobodyさん:2008/11/20(木) 17:53:56 ID:???
POST送ってないから
307nobodyさん:2008/11/20(木) 17:55:57 ID:???
includeする前にチェック入れるのってwarning対策ってことが大半だよな?
じゃぁifの中にinclude入れると意味ないんじゃ・・・
includeすることが前提で読み込まなきゃ先に進めないようなものならrequire使うだろうし
でも構文的には間違ってないな、目的の用途しては適してないだろうけど
308299:2008/11/20(木) 17:56:49 ID:???
>>304
勘違いしてた
if文の中身書かないとなんかwarnが出たと思ったけど気のせいだった
もし中身書くなら条件文を否定にすればいいのかな?

if (!file_exists() && !include()) {
echo "includeできない";
}
309nobodyさん:2008/11/20(木) 17:56:53 ID:???
>>305
注文してないピザが届くと思うな!
310nobodyさん:2008/11/20(木) 17:57:28 ID:HLYnX99e
>>306
ごめん、初心者なんでそれだけだとわかんない。
311nobodyさん:2008/11/20(木) 17:57:56 ID:???
>>308
&&じゃなくて||がいいな
312nobodyさん:2008/11/20(木) 17:58:15 ID:???
>>310
マニュアル読むといいよ
313nobodyさん:2008/11/20(木) 17:58:52 ID:HLYnX99e
>>309
あのさ、キミいつも
教え方があまりにも抽象的すぎるんだよ

会社でもそういわれるだろ?

「もっと具体的にわかりやすくしゃべれ」って。
314nobodyさん:2008/11/20(木) 17:59:24 ID:???
>>308
if (file_exists($inc_file) {
include($inc_file);
} else {
echo 'includeできない';
}
でいいじゃん
315nobodyさん:2008/11/20(木) 17:59:59 ID:???
と言うか早く「<php」になってることに気付け
316nobodyさん:2008/11/20(木) 18:01:37 ID:???
>>314
ずばりそれ
別に短く書くことを競ってるわけじゃないしな
後はis_readableとか、is_file絡めるくらいっしょ
317nobodyさん:2008/11/20(木) 18:02:29 ID:HLYnX99e
>>315
サンキュー

構文チェックしたら

No syntax errors detected

になるんだけど、なんで??
無料のエディター使ってるから?
318nobodyさん:2008/11/20(木) 18:02:44 ID:???
>>307
その通り
ファイルの存在チェックとincludeできるかの評価を
一緒の式ですべきでない
もしやるとしたら
if (file_exists($inc_file)) {
if (include($inc_file)) {
}
}
どうみても冗長だけど
319nobodyさん:2008/11/20(木) 18:04:30 ID:???
無料のエディタ使うとエラーになるとかwwww
320314:2008/11/20(木) 18:06:04 ID:???
>>316
ってまぁ>>289で既に書かれてたから蛇足もいいところだけど
>>318
それだったら波括弧いらなくね?
てかifの中に入れる場合の議論をする必要性がわからないw
「ifだったら>>291は動作しない」→「仮にifに入れても動作は同じ」っていう仮定の話だったのにw
321nobodyさん:2008/11/20(木) 18:06:44 ID:AwsGLaDA
>>318
「すべきでない」理由とはなんですか?
322nobodyさん:2008/11/20(木) 18:07:47 ID:???
>>307
323nobodyさん:2008/11/20(木) 18:07:52 ID:HLYnX99e
次の質問。

<form name="abc" action="ghi.php" method="post">
<input type="submit" value="push" name="def">
</form>

<?php
$_POST['abc']="";
print_r ($_POST['abc']);
print_r ($_POST['def']);
print "<br>";
print $_POST['abc'];
print $_POST['def'];
?>

これで
push
push
と表示されるようになったけど、
<form name="abc" の「abc」と、(1)
name="def"> の「def」は、(2)
必ず、違う文字列にしないとだめなの?

もし(1)と(2)を同じ文字列にして(例えば「aaa」とか)
そんでそれをprintするってときに、
どっちのaaaなのか、phpはちゃんと判別できるの?
324nobodyさん:2008/11/20(木) 18:08:42 ID:???
>>323
自分で表示してみればいいじゃん
325nobodyさん:2008/11/20(木) 18:14:43 ID:HLYnX99e
<form name="abc" action="ggg.php" method="post">
<input type="submit" value="push" name="def">
</form>

<?php
$_POST['abc']=""; //配列変数初期化
$_POST['def']="";//配列変数初期化

print_r ($_POST['abc']);//プリント
print_r ($_POST['def']);//プリント
print "<br>"; //改行
print $_POST['abc'];//プリント
print $_POST['def'];//プリント
?>
------------------------
↑これで、画面になんも表示されなくなった。
ということは、ボタンをプッシュする行為では、
変数には、なんの値もセットされない、という
理解でいいのか?
326nobodyさん:2008/11/20(木) 18:15:17 ID:???
よくない
327nobodyさん:2008/11/20(木) 18:18:31 ID:HLYnX99e
そうだよねー

さっきボタン押したときに
push
って表示されてたもんねえ

だからボタンを押すと、pushって文字列が
配列変数にセットされるはずなんだけど、
phpのコードの先頭で、配列変数を初期化してしまうと、
そっちの権力のほうが優先されてしまうのか?
328nobodyさん:2008/11/20(木) 18:18:48 ID:AwsGLaDA
>>322
それ、321に対する回答でしょうか?
「一緒の式ですべきでない」のが「warning対策」という主張なら、
303に書いたリンクにかかれていることからも、実際に試してみた
結果からも、理解できませんでした。
329nobodyさん:2008/11/20(木) 18:23:39 ID:???
>>327
変数使う時は初期化するのが原則だもんな。
発想は斬新で素晴らしいと思う。
>>328
322でも307でもないけど、307は
「ifは条件を満たしたときに実行したい処理を書くために使うもので、
Warning防止の目的なら291でいいし、未読み込み時の処理実行を防止したいなら
requireを使えばいい話だ」ということを言ってるんじゃないかな
330nobodyさん:2008/11/20(木) 18:25:22 ID:???
普通に考えてもおかしいだろ
includeできるかどうかをチェックするって発想が
includeできる状態かどうかをチェックするっていう発想が正解
その上でincludeするのがプログラム的にも自然
この辺は感覚だからうまく説明できないけど
まぁ慣れてくればわかるよ
331nobodyさん:2008/11/20(木) 18:26:03 ID:???
>>330
よく分からん
332nobodyさん:2008/11/20(木) 18:42:03 ID:???
>>331
がんばれ
333nobodyさん:2008/11/20(木) 18:43:39 ID:???
だって2〜3行目が日本語になってないもの
334nobodyさん:2008/11/20(木) 18:45:25 ID:???
2・3行目で言ってることが理解できないのなら君にはまだ早いわけだ
335nobodyさん:2008/11/20(木) 18:45:45 ID:AwsGLaDA
>>329
307に書かれていることを質問しているわけではないですし、
その要約も318の「一緒の式ですべきでない」につながりません。

>>330
includeできる状態かチェックしても、includeしたとき
「includeできる状態」かどうかわかりませんよ。
ええ、くだらないこと書いてるのは百も承知です。
だけど、自分の正解がみんなの正解とは限らないんですよね。
336nobodyさん:2008/11/20(木) 18:46:33 ID:???
2行目の最後は。だろ?もしくは脱字か。
悪文なのが原因
337nobodyさん:2008/11/20(木) 18:48:43 ID:???
>>335
俺318じゃないからそういう言い方されても・・・

推測するしかないけど設計上の問題じゃない?
338nobodyさん:2008/11/20(木) 18:48:54 ID:HLYnX99e
<form name="abc" action="hhh.php" method="post">
<input type="submit" value="push" name="def">
</form>

<?php
// $_POST['abc']=""; //配列変数初期化
// $_POST['def']="";//配列変数初期化

if (isset($_POST['abc'])){//もしボタンが押されたら
print_r ($_POST['abc']);
}//プリント
print_r ($_POST['def']);//プリント
print "<br>"; //改行

if (isset($_POST['abc'])){//もしボタンが押されたら


print $_POST['abc'];//プリント
}
print $_POST['def'];//プリント
?>

--------------------------
↑これにしたら、Noticeエラーも出なくなったし、
ボタン押したら、「push」って表示されるようになった。
しかし、変数の初期化ができないではないか?
変数の初期化をすると、画面に何も表示されなくなってしまう。

どうしたらいいんだ?
339nobodyさん:2008/11/20(木) 18:50:08 ID:HLYnX99e
もしかして、この場合は変数の初期化はしなくてもいいのか?
しかし、その場合、セキュリティ上の危険性があるのではないか?
340nobodyさん:2008/11/20(木) 18:51:04 ID:???
危険だからした方がいい
341nobodyさん:2008/11/20(木) 18:52:39 ID:???
>>335
随分と疑い深い性格だね
要するにPHPの処理機構を信頼できないわけだな?
includeできる状態でincludeできないというのは起こりえない
その起こりえないケースを想定するなんて時間の無駄
342nobodyさん:2008/11/20(木) 18:53:18 ID:AwsGLaDA
>>337
何を推測していただいたのか判りませんが、
私の頭の思考回路のことなら、たしかに問題あるでしょうね。
343nobodyさん:2008/11/20(木) 18:56:18 ID:???
include出来る状態か否かチェックして、trueにも拘らずinclude出来ないならPHPにエラー吐いてもらうのが正常なんじゃね
344nobodyさん:2008/11/20(木) 18:57:22 ID:???
>>342
318の意図だよ・・・
345nobodyさん:2008/11/20(木) 19:01:31 ID:HLYnX99e
>>340
しかし変数を初期化すると、
ボタンを押しても何も表示されなくなるんだよ

なんでなんだろうね?
346nobodyさん:2008/11/20(木) 19:01:45 ID:AwsGLaDA
>>341
PHPが信用できないとは書いていませんし、そう思っている
わけでもありません。
状態を確認してから実際にincludeするまでの間に、
何かが起こる可能性を無視できないんではないかと言っている
だけです。

無視できる人は無視すればいいです。私も無視しています。
347nobodyさん:2008/11/20(木) 19:01:58 ID:???
初期化してるからでは?
348nobodyさん:2008/11/20(木) 19:02:36 ID:???
>>346
林先生に相談した方がいいんじゃ
349nobodyさん:2008/11/20(木) 19:03:32 ID:HrZmpLyB
すみません、質問します

phpの本を買ったところ、php.iniの設定が必要とありました。内容は
extension = pdo_mysql.so
として、「MySQLのPDOドライバを有効にする」ということでした。

これは、この通りに書けばいいものなのでしょうか?
拡張ファイルpeclを落とさなきゃいけないのかなと思ったのですが不要ですか?

また、拡張ファイルディレクトリ(C:\php\ext)を見たところ
php_mysql.dll があり、phpinfo(); で見ても
pdo_mysql
PDO Driver for MySQL, client library version 5.0.45
とう項目があります。
これは関係ないんでしょうか?

設定関連が皆目わからないのでかなり妙な質問をしてるかもしれませんが
よろしくお願いします。
350nobodyさん:2008/11/20(木) 19:04:03 ID:???
>includeできる状態かチェックしても、includeしたとき
>「includeできる状態」かどうかわかりませんよ。
PHPの内部エラーかサーバのエラーとか想定外のエラーが起きた時にどうするんだみたいな?
昔そんな質問してきた新人がいて返答に困ったな。
そういうのは想定しなくていいとしか言えなかった。
というかID:AwsGLaDAは流れ的に>>291の式を支持してるんだよね?
↑の発言からするとID:AwsGLaDA的には>>291の式も信用できないんじゃないのかね?
351nobodyさん:2008/11/20(木) 19:05:29 ID:???
>>346
>何かが起こる可能性を無視できないんではないかと言っている
何が起きるんだよwwwwwww
352nobodyさん:2008/11/20(木) 19:06:27 ID:???
なんだ・・・最近迷い込んでるメンヘラちゃんか
353nobodyさん:2008/11/20(木) 19:08:20 ID:AwsGLaDA
>>350
「ファイルがないケースもあるから、Warningでるとうざいし、
チェックしとこか」というケースなら、291を書くかもしれません。
330の「正解」という言葉に過敏に反応してレスしているだけです。
354nobodyさん:2008/11/20(木) 19:08:53 ID:???
>>349
windowsならdllのほうでおkだしphpinfoで表示されてるならもう使える
355nobodyさん:2008/11/20(木) 19:10:25 ID:???
>>353
じゃ君が考える正解の形は何?
356nobodyさん:2008/11/20(木) 19:11:14 ID:???
>>303>>346が矛盾してないか?
>>346では無視してるといいつつ>>303では私のところではそうではない(無視してない)って・・・
357nobodyさん:2008/11/20(木) 19:12:20 ID:AwsGLaDA
>>355
335で書いているように、
「自分の正解がみんなの正解とは限らない」です。
前提条件を共有しているならその限りではないです。
358nobodyさん:2008/11/20(木) 19:14:35 ID:HrZmpLyB
>>354
どうもありがとうございます
.soっていうのはリナックス向けなんですかね? とにかく助かりました、ありがとう。
359nobodyさん:2008/11/20(木) 19:14:41 ID:???
>>357
だから「この場合」のあなたの「自分の正解」を聞いてるんだが
360nobodyさん:2008/11/20(木) 19:15:48 ID:AwsGLaDA
>>356
あ、ごめんね。
303で書いたのは、302の「書き手がそこまで責任を負うことはない」
の部分へのレスでした。
361nobodyさん:2008/11/20(木) 19:18:59 ID:HLYnX99e
次の質問

phpでは、ハッシュと言わずに連想配列と言うの?
362nobodyさん:2008/11/20(木) 19:19:32 ID:???
>>361
前の質問はどうなったの?
363nobodyさん:2008/11/20(木) 19:19:56 ID:???
>>357
>自分の正解がみんなの正解とは限らない
めんどくさい人だなw
学校の先生ですか?
この世界は答えは1つなんですよ
includeは制御構造であって関数じゃないんです
364nobodyさん:2008/11/20(木) 19:23:07 ID:AwsGLaDA
>>359
「この場合」って >>285 とか?
自分で 285 のコード書いたとして、
特に問題があるとは思いません。

1から31まで用意しておけば動くんでしょ?
365nobodyさん:2008/11/20(木) 19:26:09 ID:???
いやいや・・・
includeするタイミングとか方法の話をしてるんじゃないのか?
366nobodyさん:2008/11/20(木) 19:27:00 ID:???
>>364
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
     ̄
367nobodyさん:2008/11/20(木) 19:34:27 ID:AwsGLaDA
>>365
えーと?
「includeできる状態」をチェックするのがWarningを抑制するためなら、
めんどくさいから
@include();
でいいんじゃないかと。
それ以外の理由なら、その理由による。
368nobodyさん:2008/11/20(木) 19:40:56 ID:???
>>367
期待はずれでがっかりしたよ
随分自己主張するもんだから期待してたのに
そんな下らない答えだしてくるなら絡みなさんな・・・
369nobodyさん:2008/11/20(木) 19:45:38 ID:AwsGLaDA
>>368
何を期待していたんですか?
たぶん私が考えている「この場合」と他の人のが
違うんでしょうね。まあ当然だけど。
370nobodyさん:2008/11/20(木) 19:51:38 ID:HLYnX99e
次の質問

一般的に、GETで入力値を受け取るのは、危険な行為?
371nobodyさん:2008/11/20(木) 20:06:49 ID:???
yes
372nobodyさん:2008/11/20(木) 20:22:41 ID:???
なんかバカばっか
include時の処理なんてクライアント次第だろ
細かくエラー情報残したいってクライアントなら
別々に書いて細かくエラー情報書いたりするし
ある前提でいいよと言うクライアントには
@で制御するだけでいいだろ

そもそもそのチェックが通らないと
画面が真っ白とかっていう状態になるのが
容易に想定できるなら話は別だが

>>370
ちゃんと値チェックすればいい
因みに配列は連想配列と言うほうがPHPでは一般的
あと$_POSTや$_GET等には値を自分で入れ無い方が良い
$defData = $_POST['def'];
等として$defDataを使えば良い
まぁ値を代入する前に値チェック等はきっちりした方が良いけどね
373nobodyさん:2008/11/20(木) 20:30:21 ID:???
と想像で物語ってる馬鹿がおります
includeまわりをクライアントがどうこう注文つけてくると思うか?
保守だってクライアントがやるわけじゃないしアフォか
仕事でPHPやってるふりはしなくていいです
すぐやってないってわかるから
374nobodyさん:2008/11/20(木) 20:36:17 ID:???
それはお前の場合だろ?
includeで指定する訳ではなく
エラーがあった場合という事は考えられんのかw
画面に出さずにエラーログだけでいいと言う人も居れば
分かり易い言葉でエラーログにと言う人も居るんだよ

仕事自体も完全請負もあれば
一部の機能単位での開発や開発補助というものもある
開発補助の場合はできたら相手に送って
何かしらの問題がでれば対応という風になったりする訳だが
そういう事も考えられんのんだろ?
375nobodyさん:2008/11/20(木) 20:49:04 ID:???
たまにいるんですよ
俺は仕事でPHPやってるんだ!ってウソでもアピールして
自分ペースに有利に話進めようとするのが
376nobodyさん:2008/11/20(木) 20:58:04 ID:???
たまにいるんですよ
自分で考えられない事を突っ込まれてウソを言ってる!ってアピールして
自分ペースに有利に話進めようとするのが
377nobodyさん:2008/11/20(木) 21:04:31 ID:???
必死すぎてフイタw
378nobodyさん:2008/11/20(木) 21:14:48 ID:???
必死すぎてフイタw
379nobodyさん:2008/11/20(木) 22:03:29 ID:???
痛いとこを突かれて猿真似に走ったか
雑魚め
380nobodyさん:2008/11/20(木) 22:23:23 ID:L838VyLV
ベジータみたいなのがいるな
381nobodyさん:2008/11/20(木) 22:35:59 ID:???
痛いとこを突かれて猿真似に走ったか
雑魚め
382nobodyさん:2008/11/20(木) 22:55:38 ID:qsQyZgQW
【OS名】Windows 2003 server
【PHPのバージョン】PHP Version 5.2.4(FastCGI for IIS6)
【連携ソフトウェア】mysql
【質問内容】
Fatal error: Call to undefined function mb_ereg_replace() がでる。
Windowsサーバー上でmb_ereg_replaceだけエラーがでます。
mb_convert_kana  mb_convert_encoding  のようなMB系関数はうごきます。
Fatal errorなので関数がないよっていわれてるんだとおもいますが、mb_ereg_replaceだけないのでおかしいなと。
僕の認識だとMB系は一セットだとおもってたんですがmb_ereg_replaceだけないとかあるんでしょうか?

よろしくお願いします。

383nobodyさん:2008/11/20(木) 22:55:39 ID:???
今どんな気持ち?
        ∩___∩                     ∩___∩
    ♪   | ノ ⌒  ⌒ヽハッ    __ _,, -ー ,,    ハッ   / ⌒  ⌒ 丶|
        /  (●)  (●)  ハッ   (/   "つ`..,:  ハッ (●)  (●) 丶     今、どんな気持ち?
       |     ( _●_) ミ    :/       :::::i:.   ミ (_●_ )    |        ねぇ、どんな気持ち?
 ___ 彡     |∪| ミ    :i        ─::!,,    ミ、 |∪|    、彡____
 ヽ___       ヽノ、`\     ヽ.....:::::::::  ::::ij(_::●   / ヽノ     ___/
       /       /ヽ <   r "     .r ミノ~.    〉 /\    丶
      /      /    ̄   :|::|    ::::| :::i ゚。     ̄♪   \    丶
     /     /    ♪    :|::|>>372::::| :::|:            \   丶
     (_ ⌒丶...        :` |    ::::| :::|_:           /⌒_)
      | /ヽ }.          :.,'    ::(  :::}            } ヘ /
        し  )).         ::i      `.-‐"             J´((
          ソ  トントン                             ソ  トントン
384nobodyさん:2008/11/20(木) 22:59:56 ID:L838VyLV
2回書き込んでいるやつはなんなんだ?
385nobodyさん:2008/11/20(木) 23:06:37 ID:???
キャッシュが残ってて二重投稿してるんだろw
386nobodyさん:2008/11/20(木) 23:10:42 ID:???
猿真似してるだけ
387nobodyさん:2008/11/20(木) 23:15:35 ID:HrZmpLyB
質問します
http://localhost/index.php をブラウザのURL欄に入れてEnterおすと
このURLに移動しますよね?
やったところ、 「このアドレスへのリクエストに対するサーバのリダイレクト設定がループしています。」という
メッセージが出てきます。
これ自体はプログラムがミスしてるんだなと思うんですが、なぜかこのときURL欄をみると
http://localhost/index.php/ という風に最後に / がついてしまっています。
これはなぜでしょうか?
わからないのですが、、

環境は php5 apache2 でZendFWを使っています。
388nobodyさん:2008/11/20(木) 23:18:57 ID:AwsGLaDA
>>382
全然原因が思いつかないけど。。

コマンドプロンプトで、
> php -rf mb_ereg_replace
とか
> php -re mbstring
とかしたときに、それらしいものは出てきますか?
389nobodyさん:2008/11/20(木) 23:19:25 ID:???
index.htmlにアクセスしてみ
たぶん同じのでるから
390nobodyさん:2008/11/20(木) 23:24:17 ID:???
rewriteでループしまくってんじゃねーの
391nobodyさん:2008/11/20(木) 23:39:20 ID:???
>>387
そういうフレームワークの仕様なんじゃないの?
ワードプレスでもそうなるよ
392387:2008/11/20(木) 23:54:47 ID:???
応えてくれた方、ありがとうございます。
仕様なのかもしれないですね、ループしてしまう部分もあわせて
どうにか解決したいと思います。
これからはZendFWのスレで聞きます。 ありがとうございました。
393nobodyさん:2008/11/21(金) 00:22:41 ID:zW/fBXPA
質問
http://itpro.nikkeibp.co.jp/article/COLUMN/20080317/296440/?ST=develop&P=3

ここみてたら、ポストバックという便利な仕組みがあるそうじゃないか
これってよく使うの?
394nobodyさん:2008/11/21(金) 00:23:50 ID:???
時と場合による
395nobodyさん:2008/11/21(金) 00:31:02 ID:rCZA/W6t
掲示板とか検索機能付きサイト登録とか作りたいんだけど
PHPとかPerlとか全く知らないんだけど
どっちか片方覚えておけばいいの?
それとも両方覚えないといけないの?
396nobodyさん:2008/11/21(金) 00:34:24 ID:???
片方でおk
397nobodyさん:2008/11/21(金) 00:45:11 ID:???

>>396
あんがとさん
PHPっていいらしいけど、それでいいかなぁ
398nobodyさん:2008/11/21(金) 00:51:54 ID:???
あーっと
マジで聞くことがあったWebプログラミングを勉強する上で
UNIXで動かさないとダメなの?
Windowsにアパッチ入れてみたけど、それで勉強したとして
それで出来上がったファイルをレンタルサーバに入れて
おk?
399nobodyさん:2008/11/21(金) 00:58:45 ID:???
>>1
400382:2008/11/21(金) 01:33:25 ID:F+S9pS9u
>388 さん

Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\Documents and Settings\Administrator>php -rf mb_ereg_replace
PHP Warning: PHP Startup: zip: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=1
These options need to match in Unknown on line 0
PHP Warning: PHP Startup: pdo_mysql: Unable to initialize module
Module compiled with module API=20060613, debug=0, thread-safety=0
PHP compiled with module API=20060613, debug=0, thread-safety=1
These options need to match in Unknown on line 0
PHP Parse error: syntax error, unexpected $end in Command line code on line 1

とこんな感じでエラーが出ます。検索しまくってるんですが、なかなか糸口もみえずぜひアドバイスいただければと思います。
401nobodyさん:2008/11/21(金) 01:36:19 ID:???
mb関数なんてきっぱりあきらめて自力でゴリゴリ書くよろし
402nobodyさん:2008/11/21(金) 02:02:30 ID:???
再インスコ
403nobodyさん:2008/11/21(金) 02:05:18 ID:???
OS : WinXP SP3
PHP : 5.2.6
MySQL : 5.1.29-rc

先ほど環境を整えたのですが、
mysql_connect 関数を呼び出すと httpd.exe に強制終了が起きてしまいます。
Client API header version は 5.1.29-rc で本体と一致しています。

何が原因でしょうか。
ご教授をよろしくお願いいたします。
404nobodyさん:2008/11/21(金) 02:06:07 ID:???
405nobodyさん:2008/11/21(金) 02:09:46 ID:AgX6JP+G
403です。
ID出し忘れました。失礼しました。

ご教授ください、は誤用なんですね……。
406403:2008/11/21(金) 02:35:55 ID:???
MySQLのバージョンを5.0系へ落とすことで自己解決しました。
何でも最新がいいわけではないんですね。

失礼しました。
407382:2008/11/21(金) 02:43:19 ID:???
ご教示なんですね。全くすれ違いですが参考になりました。笑
ふつうにご教授頂ければ幸いです。とかつかってたよ。はずかしい。。。
408nobodyさん:2008/11/21(金) 05:37:17 ID:???
おれ先月、CCNP取ったけど、何か質問あるか?
とあるスレで発言したら、焼き餅焼かれてひどい目にあったので、こっちに来た。
CCNP取ったって言ったけど、元はweb系のSE。
web系の案件も何件かやって、やり尽くした感があるので、今はweb系より高度な技術が要求されるインフラ系のSEにスキルアップ中。
409nobodyさん:2008/11/21(金) 07:03:48 ID:???
>>408
やきもちじゃなくてスレ違いで勘違いな余計な自己紹介するからだろ
410nobodyさん:2008/11/21(金) 07:34:39 ID:BR6mi0Le
>>400
ごめん。
php --rf mb_ereg_replace
php --re mbstring
だった。
php -h でコマンドラインオプションが確認できます。

間違っていることに気づいて、正しいオプションで実行した結果が
あれなら、重大な問題があるような気がします。
エラーログにも残っていると思うけど、IISだとどうなのか
よくわからないなぁ。
411nobodyさん:2008/11/21(金) 07:54:04 ID:???
>>398
パーミッションの設定以外は
windowsで実験可能
412nobodyさん:2008/11/21(金) 08:35:35 ID:zW/fBXPA
質問

ウチが借りてるレンタルサーバーは
phpファイルのパーミッションが400で
動いているんだが、これでいいのかな?
413nobodyさん:2008/11/21(金) 08:42:11 ID:zW/fBXPA
最初、

「なんで実行権限与えてないのにPHPのファイルが
動くんだろう?」

って思ったけど、もしかして、

「アパッチのモジュールとして動いているから、
実行権限は与える必要は無い」

って解釈であってるのかな?
414nobodyさん:2008/11/21(金) 14:46:23 ID:wJTKWOfA
SMTPとの通信をトレースしているのですが
まずSMTPに
 $socket=fsockopen($server,$port);
します

 fputs($socket,"EHLO $server\r\n");
した後応答が複数行あるのですが、通信をタイムアウトさせることなく
過不足なく取得するにはどうしたらいいでしょうか

$response.=fgets($socket,1024);では単行しか取得できず、
fgetsがまだ用意されていないのにfgetsを実行した場合、
通信のタイムアウトまで待ってしまいます
415nobodyさん:2008/11/21(金) 15:03:24 ID:wJTKWOfA
自己解決しました
[RESPONSECODE]-[RESPONSESTRING] //最終行以外
[RESPONSECODE] [RESPONSESTRING] //最終行
ですね
416nobodyさん:2008/11/21(金) 15:16:06 ID:???
くだらなくねえ高度な質問でした
417nobodyさん:2008/11/21(金) 15:43:29 ID:XpwRzbFr
Dreamweaver使ってPHPしてる方とかいますか。
418nobodyさん:2008/11/21(金) 15:48:54 ID:???
それはできればやめとけ
419nobodyさん:2008/11/21(金) 22:01:25 ID:zW/fBXPA
質問

拡張子が.phpでもSSIって使えるの?
よくある設定だと、SSIを使いたいときには、
拡張子をshtmlにしてください、とかあるじゃん。

そしたら、php使えなくネ?って思うわけだ。
420nobodyさん:2008/11/21(金) 22:12:57 ID:???
>>419
設定次第
421nobodyさん:2008/11/21(金) 22:14:33 ID:???
>>414
fget()は1行ずつ取る関数。
それならループで回せばいい。

PHP5ならstream_get_contents()が楽ちん
422nobodyさん:2008/11/21(金) 22:14:56 ID:???
本物の変態だなw
423nobodyさん:2008/11/21(金) 22:15:15 ID:???
>>413
あってる
424nobodyさん:2008/11/21(金) 22:17:49 ID:???
>>393
仕組みも糞も基本中の基本
425nobodyさん:2008/11/21(金) 22:21:20 ID:zW/fBXPA
質問

何回も使うファイルをincludeするのに、
SSI使う方法と、phpのinclude使う方法と、
2つの選択肢があると思うのだが、
どちらを使ったほうがいい?
426nobodyさん:2008/11/21(金) 22:23:56 ID:???
>>361
PHPでは配列と連想配列との区別はない
よって全てを「配列」と呼んでおけばいい
っていうか、そもそも連想配列=ハッシュでないので。
427nobodyさん:2008/11/21(金) 22:30:31 ID:???
>>277
<?php
var_dump($hoge);
exit;
428nobodyさん:2008/11/21(金) 22:31:22 ID:???
ハッシュって何だっけ?
429nobodyさん:2008/11/21(金) 22:32:36 ID:???
>>276
http://www.php.net/manual/ja/language.operators.php

型の概念が理解できているなら「===」と「!==」を使う事をお勧めしとく
430nobodyさん:2008/11/21(金) 22:37:01 ID:???
431nobodyさん:2008/11/21(金) 22:58:47 ID:???
>>78
$j = strlen($char);
for($i=0, $i < $j; $i++)

>>76
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html

>>73
何をpopen()してるのだろう?

>>55
PHP標準を使おうがDBを使おうが、セッションIDが漏れた時のリスクは一緒。
それでもDB等で自前の実装がしたいなら、session_set_save_handler()が便利だ。

携帯では接続の度にIP変わるから、IP使うのは駄目。
UserAgentはナンセンス。
各キャリアがもっている個体識別番号を使うといいよ。
DoCoMoでもユーザー認証無しでとれるようになったしね。
個体識別番号取れないようにしてる機種に対してはエラーを出すのを忘れない事。
432nobodyさん:2008/11/21(金) 23:58:42 ID:???
↑かっこよすぎるw

てかID:zW/fBXPAは連日むかつくよ。
PHP以外の言語も知っているような口ぶりだけど
なんでそんなにえらそうな聞き方するんでしょう?
自分で調べようとしてなさそうだし
教えてもらったのならありがとうの一言くらい言えばいいのに。
433たまちゃん ◆ExGQrDul2E :2008/11/22(土) 00:21:58 ID:AbVJZ2V5
この掲示板のように、本文の改行数がn文字以上なら、省略と表示させたいのですが、
省略を表示する以前の文字が表示されません。
文字...略14としたいのです。
$mess = <<< FORM
文字列<br><br><br>あさささ<br>xf文字<br><br><br>czdvf
FORM;
$msgline = substr_count($mess, "<br>") + 1;
if ($msgline > 3) {
preg_match("/(.*) <br>.*/U", $mess, $match);
$message = $match[1]."<br> 省".$msgline."</a>";
}
echo "$message<hr>";
これでは、ただ(省)とだけ表示され、略される前の(文字列)と言う文字は表示されません
どのようにすればよいか、教えてください。
434nobodyさん:2008/11/22(土) 00:22:11 ID:???
>>432
if (淡々と答える事が出来る) {
  淡々と答える;
} else {
  スルー;
}

>>428
「ハッシュテーブル」とかでググるといいよ。
まぁperlとかでは連想配列をハッシュと呼ぶのが通例だし細かい事は気にするな

>>425
require
PHP5ならautoloadなんかも上手く使うといい
435nobodyさん:2008/11/22(土) 00:34:45 ID:???
>>433
$encoding = 'UTF-8'; // 実際は定数にする事
$str = 'オリジナルの文字列';
$len = 10;
$str2 = (mb_strlen($str, $encoding) > $len) ? mb_substr($str, 0, $len, $encoding) . '省略' : $str;
echo $str2;
436nobodyさん:2008/11/22(土) 00:37:03 ID:???
>>433
preg_matchの中の<br>の手前にスペース入ってるよ
437435:2008/11/22(土) 00:37:53 ID:???
悪い。よく読んでなかった。

$num_br_max = 3;
$str = '文字列<br><br><br>あさささ<br>xf文字<br><br><br>czdvf';
$ary = preg_split('/<br>/i', $str);
$str2 = (count($ary) > $num_br_max) ? implode('<br>', array_slice($ary, 0, $num_br_max)) . '省略' : $str;
echo $str2;
438nobodyさん:2008/11/22(土) 00:39:50 ID:???
>>435は質問よく読んでいない
更にmb関数使ってる癖にmb_strimwidthを使わない不思議ちゃん
439438:2008/11/22(土) 00:40:46 ID:???
っと、ごめん(´・ω・`)
440nobodyさん:2008/11/22(土) 00:42:12 ID:???
>>438
おお。よく読んでなかったぞ。
しかもmb_strimwidth()とか知らなかったし。吊ってくる
441nobodyさん:2008/11/22(土) 00:45:58 ID:???
>>434
スレが荒れるから回答者は全員スルーしたほうがいい
過去にも何度もあったことだ・・・
このままの調子だと
回答者はマナーのなってない質問者には回答してはならないっていうルールができてしまう
442nobodyさん:2008/11/22(土) 00:59:21 ID:???
http://pc11.2ch.net/test/read.cgi/php/1213356756/l50
別スレに逃げ出したぞ
ほんと腐ってるね
443nobodyさん:2008/11/22(土) 01:04:30 ID:???
>>431は遅漏すぎ
444たまちゃん ◆ExGQrDul2E :2008/11/22(土) 01:19:45 ID:AbVJZ2V5
>>437
ありがとうございました。
うまく動きました。
>>435
これだと、タグの途中で切れたら
意味がなくなるみたいです。
445nobodyさん:2008/11/22(土) 01:26:36 ID:???
底辺で生きてる奴はちょっと自分が優位だと思うと豹変するんだよねぇ。
些細なミスをした店員を執拗に罵倒してる客とかたまに見るけど、
普段怒られてばっかで、怒ることに慣れてないから必要以上に相手を罵っちゃうんだろうな。
加減が分からないって可哀想だよね。
446nobodyさん:2008/11/22(土) 01:40:28 ID:???
まんまお前のことじゃねえかw
447nobodyさん:2008/11/22(土) 02:36:26 ID:???
ワロタ
448nobodyさん:2008/11/22(土) 16:01:33 ID:ngL3J7iI
PHP5使えるレンタルサーバーで
広告が入らないところといったら、
一番安いのは、さくらになってしまうのかね?
449nobodyさん:2008/11/22(土) 16:15:10 ID:???
>>448
板違い
その質問はレンタル鯖板で。
450nobodyさん:2008/11/22(土) 17:11:51 ID:iSnXxlqn
最初、出だしの部分だけ表示して 「続きを読む」をクリックして
全文を表示させるようにしたいのですけど、どうやるのでしょう?
「続きを読む」という文にリンクをかけて、もう一つ全文記事を作って
そこで全部書けばいいのでしょうか?
451nobodyさん:2008/11/22(土) 17:35:35 ID:???
トップページには出だしだけ切り取って表示すれば?
452nobodyさん:2008/11/22(土) 18:00:08 ID:???
>>450
最近のMovableType4.2なんかだと「本文」と「続き」が別々のフォームで
保存も別にされてる様子。

1個の枠だけで「続きを読む」をやる場合は

まず本文の文字数をチェック。

本文が○文字より長い場合は、頭から○文字までを表示して
一番最後に「…」みたいな省略がある事を明示する文字を付け足して
レコードの個別IDを含んだ全文表示用リンクを表示する。

そうでない場合はそのまま表示する。

って感じだな。

記事の要約をトップページに表示したり
RSSへページの概要としても提供するなら
短い説明文と本文は分けて置いた方が良いと思う。

目次を表示する時に、各項目が「…」で省略されてるのは
クリックするまで中身が完結しないから、目次として微妙になってしまう。

わざと完結させないでPV増やすって技もあるかもしれないけど
他のサイトの方が読みやすければ廃れるのも早いと思われ。
453nobodyさん:2008/11/22(土) 20:48:34 ID:MJ/AoE7Y
質問です。
ブラウザ経由ではなく、コマンドラインでPHPを対話的に操作したいのですが、

1. PHPの対話環境はありませんか?Rubyのirbのようなものです。
php -a は試しましたが、<?php ... ?> に囲まれないと出力されませんし、文
法エラーがあると強制終了だしで、実用に耐えませんでした。

2. 対話環境がないとしたら、 php -f PHPファイル名 しかないと思うのですが、
printのような関数で、最後に改行してくれるものはありませんか?
Java の System.out.println(), Ruby の puts のようなものです。
454nobodyさん:2008/11/22(土) 21:02:14 ID:???
自己フォローです。2.については自己解決しました。
http://fdays.blogspot.com/2008/02/php5.html
対話的操作なら、var_dump()で良さそうです。
455nobodyさん:2008/11/22(土) 21:25:18 ID:b7xKLs1N
ここを見てアップローダを作ろうとおもったのですが
ttp://w1.nirai.ne.jp/freeze/main/file09.html
----------------------------------------------
$updir = "./updir/";
 これが変数に保存用のフォルダを代入している部分です。

$filename = $_FILES['data']['name']
   これを、指定フォルダの中に保存するのが、
move_uploaded_file($_FILES['data']['tmp_name'], $updir.$filename)
   その後、echo命令で画像を表示しているわけです。

--------------------------------------------

$updir = "./updir/"の部分を他のサーバ、例えばhttp://www.example.com/down/
に保存したい場合、どのようにすれば良いでしょうか?

そのまま$updir = "./http://www.example.com/down/"とした時、アップロードするとエラーが出てしまいます。

456nobodyさん:2008/11/22(土) 21:27:11 ID:???
無理です
457nobodyさん:2008/11/22(土) 22:03:15 ID:P3cvCpOq
iisでphpを動かすのと
apache + mod_phpで動かすのだと
どっちの速度が速い?
458nobodyさん:2008/11/22(土) 22:03:44 ID:???
場合による
459nobodyさん:2008/11/22(土) 22:05:15 ID:???
>>455
他のサーバにアップロード用のプログラム用意して、socketで画像データをpostするとか
勿論セキュリティ上出来ない場合もあるだろうし、何より改変は変数一つ書き換えるだけでは済まない
460nobodyさん:2008/11/22(土) 22:11:43 ID:???
他のサーバにPOSTするぐらいなら、ftpで保存先に送るシェルスクリプトを
流すようにした方が多分作るのは楽だろw
461nobodyさん:2008/11/22(土) 22:13:32 ID:???
その保存したいサーバで実行すればいい
462nobodyさん:2008/11/22(土) 22:17:29 ID:P3cvCpOq
>>458
どんな?
463nobodyさん:2008/11/22(土) 22:50:38 ID:???
>>456>>459
そうなんですか・・・
有難うございました
464nobodyさん:2008/11/23(日) 08:59:40 ID:7jpbyfc1
サーバーに test.php.jpgって感じのファイルでphpコードを書いたものを
アップしたんですが、phpとして実行されてしまうようです。
これは、Apacheの設定の問題でしょうか?

Apache/2.0.63 (CentOS)
php 5.1.x

httpd.confで下記のように設定しています
LoadModule php5_module modules/libphp5.so
AddHandler php5-script .php
AddType text/html .php
465nobodyさん:2008/11/23(日) 09:28:04 ID:???
ファイル偽装したいけどできないってこと?

mod_mime_magicあたりが効いてるとかじゃないかな
466nobodyさん:2008/11/23(日) 10:12:13 ID:7jpbyfc1
ありがとうございます

ファイル偽装を防ぎたいけど、
AddType image/png png
AddType image/gif gif
AddType image/jpeg .jpg jpeg
こんな感じで書いても phpinfoとか余裕で実行できちゃうんですよね。

LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule mime_module modules/mod_mime.so
# TypesConfig describes where the mime.types file (or equivalent) is
TypesConfig /etc/mime.types

でmime.typesの一覧にはちゃんとjpgも入ってるんですけど・・・

mod_mime_magicが先頭の数バイトを読んで、phpと判断してphpに処理を
渡しちゃうんですかね・・・
そうすると、スレチですか。。
467nobodyさん:2008/11/23(日) 10:40:35 ID:7jpbyfc1
mod_mime_magic を外してみたんですが、一緒でした。
もう少し調べてみます
468nobodyさん:2008/11/23(日) 12:42:11 ID:???
*nix系ならfileってコマンドでファイルのタイプが分かるよ。

うる覚えだけどPHPからシェルコマンド実行する場合は
配列かなんかで戻ってきて、確か1番目が名前かサイズ?で
2番目とかにファイルタイプが入ってた様な気がする。

もしかしたら改行で分割して自分で配列に入れてたかも。

まあ細かい手順はともかく、*nix系なら、
fileコマンドでチェックすれば、拡張子にかかわらずファイルのヘッダ見てくれる。
469nobodyさん:2008/11/23(日) 12:51:12 ID:???
普通に設定してたらありえなくねー?
んなもんが余裕でできてたら今ごろ被害者続出だろ
470nobodyさん:2008/11/23(日) 16:42:57 ID:???
質問です。
こんなコードが、問題なく動くようなのですが、PHPマニュアルのどこを見たら
この件が書かれているでしょうか?

<?php
class Test {
fuction() {
var_dump($this->hogehoge); // 定義に存在しないインスタンス変数にアクセス。
}
}

$test = new Test();
$test->hogehoge = 3;
var_dump($test->hogehoge); // 正常に実行。int(3)
$test->fugafuga(); // 正常に実行。iint(3)
?>

http://www.php.net/manual/ja/
PHP4、5の「クラスとオブジェクト」を読みましたが、載っていないようです。
471nobodyさん:2008/11/23(日) 16:43:21 ID:I9fabXwC
あ、ID出し忘れました。
472nobodyさん:2008/11/23(日) 16:57:45 ID:I9fabXwC
補足すると、この書き方はCakePHP1.2のソースを読んでいて見つけたものです。
473nobodyさん:2008/11/23(日) 17:01:02 ID:???
定義しなきゃ代入しちゃだめなんて誰が言ってたの
474nobodyさん:2008/11/23(日) 17:15:59 ID:I9fabXwC
以前知り合いから聞きました。
JavaやRubyではできませんから、自分もそうだと思ってました。

PHPマニュアルで、これに関する記述を探していますが見つかりません。
475nobodyさん:2008/11/23(日) 17:18:17 ID:???
>問題なく動くようなのですが

お前試してないだろ
476nobodyさん:2008/11/23(日) 17:22:43 ID:I9fabXwC
失礼。元のクラスは長かったので、編集しましたがミスしました。

<?php
class Test {
  function fugafuga() {
    var_dump($this->hogehoge);
  }
}

$test = new Test();
$test->hogehoge = 3;
var_dump($test->hogehoge);
$test->fugafuga();
?>
477nobodyさん:2008/11/23(日) 17:49:13 ID:I9fabXwC
追加の質問です。
同じくcakeのソースで、このような記述が見つかりました。
変数名をパラメタライズしている点で、可変変数に似ています。
これについても、該当するPHPマニュアルを探しています。

class Test {
  var $hoge = 1;
  function fuga() {
    $x = "hoge";
    var_dump($this->$x); //これはOK。
  }
}

$test = new Test();
$test->fuga(); // OK。
$y = "hoge"
var_dump($test->$y); // これはNG.

特に知りたいのは、レシーバが $this なら実行できて、$testのような実変数
だと実行できない理由です。
478nobodyさん:2008/11/23(日) 18:17:42 ID:???
>特に知りたいのは、レシーバが $this なら実行できて、$testのような実変数
だと実行できない理由です。
実行できない理由は、そういう風に作られているから
実行できないように作られた理由は、知らん
479nobodyさん:2008/11/23(日) 18:22:18 ID:???
前の方の
>問題なく動くようなのですが
は親クラスで何か定義されてるんじゃないの?

>>477
「クラスの中」と「クラス内のメソッド」と「外」は、
それぞれスコープ違うよ。

じゃ無いとインスタンスの内部に保存した変数が
上書きされちゃって困るだろ。
480nobodyさん:2008/11/23(日) 18:33:47 ID:???
732 名前: nobodyさん [sage] 投稿日: 2008/11/23(日) 17:51:46 ID:???
>>731
それはわかってますし、>>726でも「ローカル変数」って書いてます。
取り合えず>>730のスレにお越しください。

733 名前: nobodyさん [sage] 投稿日: 2008/11/23(日) 18:08:06 ID:???
喧嘩がしたかったようだね('A`)
734 名前: nobodyさん [sage] 投稿日: 2008/11/23(日) 18:12:23 ID:???
わざと喧嘩腰でデタラメ書いて、
顔真っ赤にした人が正解を書くのを釣るタイプ。

このタイプはもう飽きたよ。
735 名前: nobodyさん [sage] 投稿日: 2008/11/23(日) 18:12:48 ID:???
>>733
> 喧嘩がしたかったようだね('A`)

なんでそうなるのかぜんぜん理解できない。
誤解を訂正して誘導しただけじゃん。
736 名前: nobodyさん [sage] 投稿日: 2008/11/23(日) 18:14:32 ID:???
>>734
ぜんぜん釣りじゃないよ。
どこがデタラメなのか真剣に知りたいんだけど。
481nobodyさん:2008/11/23(日) 18:35:37 ID:???
>>477
なんでCakePHPスレから
482nobodyさん:2008/11/23(日) 18:35:38 ID:I9fabXwC
>>479
> は親クラスで何か定義されてるんじゃないの?

されていません。>>476のコードをお試しください。

> >>477
> 「クラスの中」と「クラス内のメソッド」と「外」は、
> それぞれスコープ違うよ。

それは知っています。私は元々Java屋です。
しかし、スコープが違うことと、
$this->変数 は実行できても、変数->変数 が実行できないこととは
あまり関係がないと思うのですが。


いずれにせよ、これらの機能は、フレームワークのソースで使われているわけ
ですから、undocumentedな隠し機能をではないだろうと思ったのですが、典拠
を見つけられなくて困っているのです。
483nobodyさん:2008/11/23(日) 18:49:20 ID:I9fabXwC
>>480について、無視するのもあれなので説明しておきます。

【PHP】フレームワーク CakePHP 4ホール目【v1.2】
http://pc11.2ch.net/test/read.cgi/php/1213892680/699-

私はCakeスレの699です。ソースを読んでいて分からなかったことを質問しただ
けのつもりだったのですが、どうも意図が伝わらず、誤解を解こうとしたとこ
ろ、>>480のようなことになりました。

釣りや煽りの意図はまったくありませんが、意図が伝わらなくてイライラして
いたことは事実です。ごめんなさい。
484nobodyさん:2008/11/23(日) 18:58:46 ID:???
class Test {
var $hoge = 1;
function fuga() {
$x = "hoge";
var_dump($this->$x); //これはOK。本来$thisは要らないけど、同じクラス内だから。
}
}

$test = new Test();
$test->fuga(); // OK。testインスタンス内のfugaメソッドを呼んでるから。
$y = "hoge"
var_dump($test->$y); // これはNG. $yはtestインスタンスの中に無いから。
485nobodyさん:2008/11/23(日) 19:08:59 ID:???
可変変数は関係なくて、難しく考えすぎてるだけじゃないの?
486nobodyさん:2008/11/23(日) 19:12:17 ID:???
>>477
やってみたけどvar_dump($test->$y);も実行できたよ(int(1))

> 特に知りたいのは、レシーバが $this なら実行できて、$testのような実変数
> だと実行できない理由です。
$y = "hoge"の末尾にセミコロンがない
487nobodyさん:2008/11/23(日) 19:13:15 ID:I9fabXwC
>>484
>     var_dump($this->$x); //これはOK。本来$thisは要らないけど、同じクラス内だから。
細かいですが、$thisは要るでしょう?無ければ fuga()の出力は 1ではなく
"hoge"になってしまいます。

> var_dump($test->$y); // これはNG. $yはtestインスタンスの中に無いから。
ここが要点だと思うのですが、$testインスタンスの中の変数でしか、プロパティ
名のパラメタライズができないということでしょうか?

試してみました。
<?php
class Test {
  var $x = "hoge";
  var $hoge = 1;
  function fuga() {
    $x = "hoge";
    var_dump($this->$x); //これはOK。
    var_dump($this->{$this->x}); //これはOK。
  }
}

$test = new Test();
$test->fuga(); // OK。
var_dump($test->{$test->x});// OK。
?>

おお、最後の行もちゃんとint(i)が出力されます!ありがとうございます。
この件について、参考になる資料をご存知でしたら、教えていただけないでしょうか?

あと、どなたか >>470(>>476)についてもお願いいたします。
488nobodyさん:2008/11/23(日) 19:21:59 ID:I9fabXwC
>>485-486
大正解…。自分も確認しました。セミコロンか…ごめんなさい。
プロパティ名はどこでも変数でパラメタライズできる、ということのようです。

メソッドでも行けますね。
$y = "fuga";
$test->$y(); //int(1)

ありがとうございました。よろしかったら資料をご紹介ください。

あと、どなたか >>470(>>476)についても。
489nobodyさん:2008/11/23(日) 19:29:12 ID:???
ああ、意味分かったよ。ゴメソm(__)m

var_dump($test->$y);を
var_dump($test->y);
と思ってて、この人何言ってるんだろうと思ってた。

var_dump($test->hoge());が
$a = "hoge";
var_dump($test->$a());
って出来る筈なのに出来ないのは何故だーって話だったのか。
490nobodyさん:2008/11/23(日) 19:30:26 ID:CCu6AGm0
PHPってスタンドアローンのアプリ作れますか?
491nobodyさん:2008/11/23(日) 19:34:59 ID:???
>>490
できない、って書こうとしたが、調べたらできるようだ。

31. WinBinder でデスクトップアプリケーション:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20070402/267112/

> PHPで作れるGUIアプリケーションは、Webアプリケーションだけではありま
> せん。 WinbBnderを使えば、Windows上でデスクトップアプリケーションを作
> 成すること も可能です。
492nobodyさん:2008/11/23(日) 19:55:18 ID:I9fabXwC
しつこく補足です。変数じゃなくて、リテラルでもOKでした。

$test->"fuga"(); // これはダメですが、
$test->{"fuga"}(); // これはOK!

しかし通常の関数は、変数じゃないとダメ。

function fugafuga() {
var_dump("fugafuga");
}
$y = "fugafuga";
$y(); // これはOK。
{"fugafuga"}(); //こっちはダメ。
?

どこにこの仕様は載ってるんでしょう!?
493nobodyさん:2008/11/23(日) 20:24:40 ID:???
確かに、どこに書いてあるんでしょうねぇ。
リテラルの動作とブレスの動作はそれぞれ意味があって、
不思議とは思わないんでスルーしてましたけど、
どっかに公開されていてもいいはずですよね。
Zendのテストにはその手の設問は結構あるから、日本語化されていないどこかに
リソースがあるんでしょうけど。詳しい人いないですかね。自分も興味あります。
494nobodyさん:2008/11/23(日) 20:24:45 ID:???
>>492
それは正式な仕様じゃないと思う。
おっぱいが式の前にパースされて、たまたま動いてるだけかと。

一手間増えても常に
$y = "fugafuga";
$hoge->$y;
にしておいた方が安全。
495nobodyさん:2008/11/23(日) 20:25:45 ID:???
>>489
失礼、レスし忘れておりました。
私の質問の意図は、おっしゃるとおりです。

> と思ってて、この人何言ってるんだろうと思ってた。

Cakeスレの人たちもそのように誤解したのでしょうか。自分でははっきり書い
たつもりだったのですが、実際は分かりにくかったようです…。
496nobodyさん:2008/11/23(日) 20:28:25 ID:???
書いてねーよ。内容といい嘘といい人に迷惑かけまくりな奴だな
497nobodyさん:2008/11/23(日) 20:30:02 ID:???
あぁ、ちなみに、仕様がどこに書いてあるかは知らないけど
標準クラスの挙動が知りたいだけなら、Reflectionでソースを見ればだいたいわかる
498nobodyさん:2008/11/23(日) 20:30:32 ID:DgqkQkfl
pagerの質問なんですが、現在のページの表示を変えられるということで
↓を試したんですが出来ませんでした。どこを直せばよいでしょうか?よろしくおねがいします。

<?php $data = array(
'1件目のデータ',
'2件目のデータ',
'3件目のデータ',
'4件目のデータ',);

require_once 'Pager/Pager.php';

$params = array(
'itemData' => $data,
'perPage'=> 2
"curPageSpanPre" => "[",
"curPageSpanPost" => "]"
);

$pager = & Pager::factory($params);

$pages = $pager->getPageData();
$links = $pager->getLinks();

foreach ($pager->getPageData() as $val) {
echo $val . '<br>';
}
echo '<p>' . $links['all'] . '</p>';
?>
499nobodyさん:2008/11/23(日) 20:35:19 ID:???
> var_dump($test->hoge());が
> $a = "hoge";
> var_dump($test->$a());
> って出来る筈なのに出来ないのは何故だーって話だったのか。

出来るよ?
500nobodyさん:2008/11/23(日) 20:39:18 ID:I9fabXwC
>>493
おお、興味を持ってくれた方が。
これはメタプログラミングに属する話題で、RailsのクローンであるCakeを成り
立たせた重要な技術だと思うんです。

>>494
そうですね。これは避けます。
そもそも、リテラルで呼び出すメリットはありませんから。
(関数名が固定だったら、直接 fugafuga() と書けば良い)。

>>496
書いてますので、冷静に読み直していただいたら、別の見解があるかもしれま
せん。つうか嘘って何?

>>497
よく分かりませんが、リフレクション機能のCのソースを読めとおっしゃってる
のでしょうか?


ご回答いただきありがとうございます。いったん所用でここを離れます。
501nobodyさん:2008/11/23(日) 20:58:52 ID:???
>>500
>おお、興味を持ってくれた方が。
>これはメタプログラミングに属する話題で、RailsのクローンであるCakeを成り
>立たせた重要な技術だと思うんです。

get_class_vars
get_class
get_class_methods
call_user_func(array($obj, $method_name), $parameter);
辺りでどうにでもなると思うけど。
502nobodyさん:2008/11/23(日) 21:01:50 ID:???
>>498
,が一個抜けてない?
503nobodyさん:2008/11/23(日) 21:12:49 ID:DgqkQkfl
>>502
!!!

ありがとうございました。恥ずかしいっスorz
504498:2008/11/23(日) 21:32:36 ID:???
恥ついでにもう一つ質問お願いします。498にcurPageSpanPreの値にspan.currentというタグを入れて
とあるHPに乗っていたCSSを加えたのですが、一番左のブロックだけ上にずれてしまいます。
特に間違ってそうなところはなさそうなんですが・・・ご指摘お願いできませんでしょうか。

div.pager {
font-size: 85%;
}
div.pager a,
div.pager span {
display: block;
float: left;
margin-right: 0.1em;
padding: 0.2em 0.5em;
}
div.pager a {
color: #105cb6;
background-color: #fff;
border: 1px solid #9aafe5;
text-decoration: none;
}
div.pager a:hover {
color: #003;
background-color:#0000FF;
border: 1px solid #2e6ab1;
}
div.pager span.current {
color: #fff;
background-color: #2e6ab1;
border: 1px solid #2e6ab1;
font-weight: bold;
}
505498:2008/11/23(日) 21:33:15 ID:DgqkQkfl
↑ID出し忘れてしまいました。すいません
506nobodyさん:2008/11/23(日) 21:37:58 ID:???
>>491
これってVBみたいにポトペタで作れるんで無くて、
コードをガリガリ書くタイプでしょう?
507nobodyさん:2008/11/23(日) 21:40:21 ID:EISunP9D
質問

(1)東京か、地方か
(2)年齢
(3)使用言語
(4)使用OS
(5)分野(ゲーム、業務、ネットワーク、携帯等)
(6)希望している月額の金額
(7)最終学歴



こんなアンケート作って
統計処理しようと思ったんだけど、ただ単純に
データーを保存しただけでは、いわゆるカード型データーベースに
なってしまうので、いわゆる統計処理をしたいのであれば、
最初から、リレーショナルデーターベース、(MySQLとか)に
保存するように設計しないとだめなのかな?
508nobodyさん:2008/11/23(日) 22:06:40 ID:???
microsoft SQL Serverじゃないと無理じゃね。
509nobodyさん:2008/11/23(日) 22:09:44 ID:EISunP9D
>>508
なんで?
ネタですか?
510nobodyさん:2008/11/23(日) 22:14:23 ID:???
アンケートなら大した総数にならないだろうから
単純にファイルに行単位で追加書き込みしていってもいいかと思う
511nobodyさん:2008/11/23(日) 22:16:42 ID:EISunP9D
>>510
いやだから。
そのあとで、統計処理するんですよ。
東京が何人で、地方が何人とか。

大卒で35才以上だけ抜き出して人数表示するとか。

そうしたらリレーショナルデーターベースでないと
できないんでしょう?
512nobodyさん:2008/11/23(日) 22:21:24 ID:???
その統計処理とやらの部分を自分で実装すればいいじゃんw
513nobodyさん:2008/11/23(日) 22:28:26 ID:???
統計処理なんて単純な足し算だと思うがなんか他に難しいことあったっけ?
514nobodyさん:2008/11/23(日) 22:34:16 ID:EISunP9D
「地方」でなおかつ「高卒」でなおかつ「35歳以上」だけ抜き出す、とか
そういうことです。
515nobodyさん:2008/11/23(日) 22:38:21 ID:???
なおかつ っていうのは条件文 A && B で実現できるよ
516nobodyさん:2008/11/23(日) 22:45:04 ID:???
例えばデータがプレーンテキストにあるデリミタで区切られて一行におさめられているとしたら、
それを行ごとに配列で読み込んで、
ループでif (地方 && 高卒 && 35歳以上)
とすればいいだけ
個人でスケーラビリティ(状況に応じてデータベースサーバを何台も増設するみたいな)を考慮しないんであれば、
それで十分だよ
517nobodyさん:2008/11/23(日) 22:49:43 ID:EISunP9D
>>516
その条件が
518nobodyさん:2008/11/23(日) 22:50:24 ID:EISunP9D
何百通りもあるんだよ!!!


、、、って書こうと思ったが、それは変数で処理すればいいのかな?
519nobodyさん:2008/11/23(日) 22:52:24 ID:???
SQLだって条件で抽出するから同じこと
520nobodyさん:2008/11/23(日) 23:22:35 ID:???
そのジャンルなら、めちゃくちゃ多く見積もっても数千だから
カンマで区切って書き出すだけで.csvファイルとして
エクセルに読ませれば並び替えと抽出できるし、
配列とかの処理すら不要に感じる。

以下のファイルをダウンロードして下さい(エクセル形式)

で、押し通せば良いんじゃねーの?
「なんと、エクセルで読み込めるんです!」くらいの勢いで。
521nobodyさん:2008/11/23(日) 23:31:22 ID:???
>>520
お前が会社でどういう扱いされているか
目に浮かぶようだ
522nobodyさん:2008/11/23(日) 23:50:09 ID:???
>>500
自前でフレームワークを作ろうとしてるの?
観点が利用するという感覚じゃないようなので
523nobodyさん:2008/11/24(月) 00:44:19 ID:???
単なるアンケートならば、簡単なINSERTとSELECTだけで事足りるはずだから、SQLったってそう難しくは無い。
そこまでの内容なら一日で覚えられるはずだし、どうしても複雑な条件を扱いたいならSELECTで抜いてからPHP側で処理する手もあるしな。
実行速度以前に、トータルの作業速度も恐らくSQL使ったほうが早い。

MySQLを導入するのがダルいってんなら、SQLiteかなんかに突っ込んでおけばいい。
インストール不要、ユーザー管理不要のお手軽DBMS。PHP5は標準で対応してる(5.2以降だっけか?)。
524nobodyさん:2008/11/24(月) 01:18:49 ID:Wj+KImYJ
戻りました。IDは変わっていますが。

>>501
> get_class_vars
> get_class
> get_class_methods
> call_user_func(array($obj, $method_name), $parameter);
> 辺りでどうにでもなると思うけど。

ありがとうございます。 call_user_func() が
array(オブジェクトインスタンス, メソッド名の文字列) という引数を取れる
とは知りませんでした。
array(クラス名の文字列、メソッド名の文字列)しか取れないと思っていました。

つまり、スタティック呼び出ししかできないと思っていたのです。確かにこれ
なら、$test->$x() のような、インスタンスメソッドの呼び出しができますね。

しかし、マニュアルにもこうあったのですが。
http://jp.php.net/manual/ja/function.call-user-func.php
> このパラメータに array($classname, $methodname) を指定することにより、
> クラスメソッドも静的にコールすることができます。
やっぱりこれも undocumented?
525nobodyさん:2008/11/24(月) 01:24:51 ID:Wj+KImYJ
>>522
> 自前でフレームワークを作ろうとしてるの?
> 観点が利用するという感覚じゃないようなので

いえ、私は単にCakePHP、およびPHP言語自体を理解したいだけです。
ソースを追っていて理解できなかったので質問させていただいたのです。

しかし、まだどなたにも参考資料をご提示いただけません。もしかして、この
件は全部、PHPマニュアルには無いのでしょうか?PHPってこういう「隠し機能」
だらけなのでしょうか?

しかし仮にそうだとしても、これだけメジャーなフレームワークが採用するぐ
らいですから、ある程度、PHPコミュニティで知られた機能だと思うのです。そ
ういう準公式ドキュメントのようなものは、どこかに無いものでしょうか。
526nobodyさん:2008/11/24(月) 01:39:33 ID:???
>>524
どこにオブジェクトを引数として取れると書いてあるの?
$classnameを$objと書き間違えたんじゃないの?
527nobodyさん:2008/11/24(月) 01:44:04 ID:???
>>525
ドキュメントが適当でクラス機能が壊れてるのがphp
まず最初にこれを学習したことが一番大きい
後は自分でシコシコ解析しながら進める
これがphpならではの勉強方法
528nobodyさん:2008/11/24(月) 01:45:50 ID:Wj+KImYJ
もう一つ、>>470(>>476)についても、補足させてください。

$test = new Test();
$test->hogehoge = 3; //クラス定義に存在しないプロパティに代入
var_dump($test->hogehoge); // 正常に実行。int(3)

この挙動には、二つの点で興味があります。

1つ目は、もし代入するだけでプロパティが生成できるのなら、var hogehoge;
といった変数宣言文は必要なかったじゃないか、という言語仕様上の疑問です。
実際、他の言語で代入でプロパティを宣言できる言語(JavaScript, Pythonなど)
には、プロパティの宣言文は存在しません。Rubyも、クラス内でしか代入でき
ないという違いはありますが(Rubyにはpublicなインスタンス変数は無い)、同
様に宣言文は存在していません。なぜPHPは二通りの宣言方法を用意したのでしょ
うか?

2つ目は、実用上の問題で、このようにして変数宣言なしで定義されたプロパティ
があるなら、ソースをgrepするときに困るということです。CakePHP以外でもこ
の書き方が多用されているなら、grep "var hogehoge" では見つからないプロ
パティ定義がたくさんあるはずで、これはどう対処したものか、ということな
のです。

その辺の疑問を解決するためにも、まずはこの機能の公式ページ、ないしは準
公式ページを知りたいと思っております。
529nobodyさん:2008/11/24(月) 01:46:43 ID:Wj+KImYJ
あとどなたか、>>497さんの

> 標準クラスの挙動が知りたいだけなら、Reflectionでソースを見ればだいたいわかる

という言葉の意味を教えていただけませんか?

「Reflectionでソースを見る」とはどういう意味なのか、残念ながら見当が付
きません。リフレクションで分かるのは、ソースではなくて、生成されたイン
スタンスやクラスの特性だと思うのですが。
530nobodyさん:2008/11/24(月) 01:49:19 ID:???
そんなマニュアルが揃ってる言語てあるんですか?
WEBプログラムはWindowsアプリなどよりも
ネットでのドキュメント量が豊富だと思いますが
531nobodyさん:2008/11/24(月) 01:56:57 ID:???
532nobodyさん:2008/11/24(月) 01:59:09 ID:Wj+KImYJ
>>526
> $classnameを$objと書き間違えたんじゃないの?

私も書き間違いかと思ったのですが、ためしに$objにオブジェクトインスタン
スを与えたら動いたんです。


>>527
> ドキュメントが適当でクラス機能が壊れてるのがphp
> 後は自分でシコシコ解析しながら進める

うう…。Java育ちにはつらい話です。しかし、みんなが undocumented な機能
を多用していたら、Zend社がそれを突然廃止したとき、困るのではありません
か?特に仕事で使っているのなら。

Tips/PHP/foreach関数が使えない? - ゼンド・ジャパン株式会社 技術情報コンテンツ
http://www.zend.co.jp/tech/index.php?Tips%2FPHP%2Fforeach%B4%D8%BF%F4%A4%AC%BB%C8%A4%A8%A4%CA%A4%A4%A1%A9


>>530
> そんなマニュアルが揃ってる言語てあるんですか?
> WEBプログラムはWindowsアプリなどよりも
> ネットでのドキュメント量が豊富だと思いますが

JavaやPythonは非常によくドキュメントが整備されています。Rubyは少し落ち
ますが、これほど大きな機能が undocumented になっているのは考えられません。

Windowsよりネット上のドキュメントが多いのは同意ですが、問題は、公式でな
い仕様はいつ変わるか保証が無いことです。
533nobodyさん:2008/11/24(月) 01:59:59 ID:???
>>528
単純にあなたの検索力がかなり低いと思うのだが・・・
534nobodyさん:2008/11/24(月) 02:06:26 ID:???
クラス機能が壊れてるから公式ドキュメントが無いんじゃないのw
535nobodyさん:2008/11/24(月) 02:16:41 ID:Wj+KImYJ
>>531
すみませんがますます分かりません。コードを実行してみましたが、メソッド
名やクラス名、アクセス修飾子といった属性が取得できただけです。まあリフ
レクションとはそういうものですが。

そもそも、私の質問とどう関連するのか、申し訳ないのですが見当が付きません。


>>533
> 単純にあなたの検索力がかなり低いと思うのだが・・・

恥ずかしながら正解です。言い訳ですが、PHPは始めたばかりなもので。あつか
ましいとは思いますが、何とかお助けいただけないでしょうか。


>>534
> クラス機能が壊れてるから公式ドキュメントが無いんじゃないのw

そうかもしれません…。でも、コミュニティである程度は評価された機能でな
かったら、フレームワーク製作者はそれを利用しないと思うのですが。
536nobodyさん:2008/11/24(月) 02:24:59 ID:???
>>528
cakePHPの
var hogehoge;
なんかはPHP5でも4との互換性の為にpublicとして動くんだけど
実際は非推奨になっててpublic/protected/privateを付けた方が良い。
PHP6になったらvarでの宣言は消される可能性がある。

メソッド内で宣言してないプロパティを使うと
null値のpublicプロパティとして扱われるけど、
ドキュメント化はされてないと思うから、本来は推奨されてない書き方。

cakePHPは4と5対応だから無理して両方で動く書き方してるに過ぎない。
ソース読むならZFかSymfonyにしといた方が良い。

PHPはまだオブジェクト指向を取り入れてる途中にあるから
クラスの細かい部分の説明が無いのは変わる可能性が
あると思ってた方が安全。

名前空間のセパレータが\になりそうで
\tHogeとか\nhogeの場合に気持ち悪すぎるって
騒ぎがあったのが最近だし。
537nobodyさん:2008/11/24(月) 02:59:52 ID:Wj+KImYJ
>>536
大変詳しい説明、ありがとうございます。cakeはPHP4、5で動かすために、非推
奨の機能を多用しているということなのですね。

> $x = "hoge";
> $obj->$x; // $obj->hoge; と同じ。
や、
> $obj->hogehoge = 3; //代入でプロパティが宣言できる。
も、 undocumented な非推奨機能ということなのでしょうか?うーん。

ところで、cakeはなぜこれを採用したのでしょう?
自分がさっき考えたのは、プロパティの動的生成が目的だったのかな、という
ことです。例えば以下のような感じでしょうか。

<?php
class Test {
}

$test = new Test();
foreach (array("hoge", "fuga", "piyo") as $prop_name) {
  $test->$prop_name = "hogehoge";
  //$test->hoge, $test->fuga, $test->piyo が定義される。
}
?>

PHP(5)のリフレクションはほとんど知らないのですが、こういうことはPHP4で
は、公式の機能だけでは実現できないのではないでしょうか?まだcakeのソー
スは見始めたばかりで、こんなコードがあるかどうかはわかりませんが。


夜も遅くなりましたので、これで失礼します。明日また来ると思います。
538nobodyさん:2008/11/24(月) 03:12:39 ID:???
宣言してないと notice とか e_strict とか出ないっけ
539nobodyさん:2008/11/24(月) 08:19:42 ID:???
>>528
php4環境のことは忘れて、php5の最新版に絞ってはいかがでしょうか。
あと、ソースを読んでどうこうしたいならcakeみたいな実用FWはやめたほうがいい。
ZFのほうが技術的には吉かと。

> この挙動には、二つの点で興味があります。
> 1つ目は、もし代入するだけでプロパティが生成できるのなら、
> var hogehoge;といった変数宣言文は必要なかったじゃないか、という言語仕様上の疑問です。

単に冗長化してある仕様であるとしか。
なぜ、それを用意したかという動機の部分は、DevMLで聞くしかないでしょう。

宣言なしでも変数を最初に使った時に作成されるというphpの仕様です。
しかし、クラス変数にpublic protected privateなどで宣言したいケースが
存在することは問題ないですよね?
基本的に内部プロパティを持っていないクラス変数を作成するという機能を
自作クラスで抑制したいときは__set($name)で制御できます。

> 2つ目は、実用上の問題で、このようにして変数宣言なしで定義されたプロパティ
> があるなら、ソースをgrepするときに困るということです。CakePHP以外でもこ

Cakeにはphp4対応しようという歴史的経緯があって、ソースの解析を難しくして
しまっています。
同様にphp4 php5両対応のシステムは、oop的に??です、特にjava等本格的oop
出身の人がphp4のソースを扱うのは無駄です。労力的に。
貧弱でルーズなオブジェクト指向でむりくり実装しているので、それぞれのシステム
のポリシーに振り回されることになります。
540nobodyさん:2008/11/24(月) 09:37:17 ID:161WFI/v
【OS名】windowsXP
【PHPのバージョン】php5.2.6
【質問内容】
ローカルでテストしていたら今まで問題なく動いていたファイルが
fputsで書き込みが出来なくなってしましました
fopenは出来ているようです
また同じファイルがサーバー上では問題なく動いています

ローカルではなぜかfile_put_contentsなら書き込み出来るんですが
借りているサーバーのPHPのバージョンが4なため途方にくれています

検索してみたのですがローカルでは動くがサーバーで動かないなどの逆の
パターンばかりです

直前にいじっていたファイルがおかしい部分があったのでそのせいかと思い
xamppを全てアンインストールし最新のものにしたのですがまったく変わらず
fputsがきかない状態です

$dataup = fopen("./data.dat", "r+");
flock($dataup, LOCK_SH);
fputs($dataup , "$up\n");
flock($dataup, LOCK_UN);
fclose($dataup);

上記の中に何か問題があるのでしょうか

どなたかご教授お願いします
541nobodyさん:2008/11/24(月) 11:34:49 ID:???
>>540
'./data.dat'に書き込み権限が無いんでしょ。
つまりパーミッションを見直しましょうという事。

>>537
ここまでの流れも全く読まずにレス。
>>539も書いてるが、PHP4とPHP5の両方に無理に対応させようとした結果、色々と冗長な部分がある。
他言語から入ってきた人でもしも環境が許すなら、PHP5一本に絞る事をお勧めする。
もう俺、PHP4のソースなんて見る気がしないわ(;´A`)

>>507
PHPならMySQLかSQLiteが手っ取り早いだろうね。
ただ予想されるデータ数が少なくてテキストファイルベースでやりたいなら、
ある意味頭の悪い方法ではあるが、一度全部配列にぶち込んでしまえばいい。
あとは抽出なりソートなりどうとでもなる。
542541:2008/11/24(月) 11:38:25 ID:???
>>540
あ、悪い。local(Windows上)で書き込みが出来ないのか。
phpのエラーログは?
あと質問とは関係ないが、「LOCK_SH」ではなく「LOCK_EX」だね。この場合。
543nobodyさん:2008/11/24(月) 11:40:02 ID:???
初心者です。
自分のサイトで100以上のページを管理しているんですが、
すべて拡張子がhtmlになっています。

これからは管理しやすいように、
フッターとヘッダーとサイドバーを
<?php
include_once("header.inc");
include_once("footer.inc");
include_once("sidebar.inc");
?>
<body>
<?php
echo "*********"
?>
</body>

みたいにphpで取り込んで出力しようと思うんですが、
これまでhtmlだったファイルの拡張子をphpに変更すると、URIが変わってしまうので
ページランクを継承できないかと思います。

URIを ***.html にしたまま、phpで取り込むうまいやり方はありませんでしょうか。

544nobodyさん:2008/11/24(月) 11:44:46 ID:???
>>543
あまりお勧めはしたくないが、拡張子「.html」をPHPとして動作するようにするかな。
「AddHandler htaccess」でググって見たらいい。

htaccessが許可されてないがSSIなら使えるサーバーなら
ヘッダ・フッタの読み込みにSSIの#includeを使うという手もあるね。
545nobodyさん:2008/11/24(月) 12:19:02 ID:???
>うう…。Java育ちにはつらい話です。しかし、みんなが undocumented な機能
>を多用していたら、Zend社がそれを突然廃止したとき、困るのではありません
>か?特に仕事で使っているのなら。

なんで更新内容も吟味せずに100%機械的なアップデートが前提なんだ?
マニュアル読めば分かるけど仮に将来廃止傾向にある要素があったとしても
相当前から警告してくれてるし、開発コミュニティで情報共有もされてる。

別に嫌味を込めていうわけじゃないが、もうちょっとPHPの経験積んでから色々いちゃもん付けたほうがいいんでないかな
546nobodyさん:2008/11/24(月) 12:21:03 ID:MXksGNjb
>>544さん
ありがとうございます

あまりお勧めされない理由とは何でしょう?
547nobodyさん:2008/11/24(月) 12:22:50 ID:???
>>545
まぁ言いたい事はよく分かるがそれぐらいにしとこうよ。
548nobodyさん:2008/11/24(月) 12:23:56 ID:???
>>532
おれもjava使いだけど、java育ちかどうかは関係ないんで、
java使いが誤解されるような書き方はちょっとね。

>>543
mod_rewriteが使えるならリクエストを1か所に集めて処理という手もある
549540:2008/11/24(月) 12:26:21 ID:161WFI/v
>>541
レスありがとうございます
local上なので権限はやっぱり関係ないですよね
エラーログは出ないんです
見た目問題無く済んだように見えて書き込みだけされていません
試しにfopenをwで行うとちゃんと新規ファイルが出来るのでどう考えてもfputsが原因のようなのです
fputs自体をチェックしてみたところfalse(0)が戻ってきました

file_put_contentsだったら書き込めるのでローカルではこれで動かしているのですが
サーバーでfile_put_contentsは使えないのでどうにか直したいのです
550nobodyさん:2008/11/24(月) 12:30:37 ID:???
結論としては開発思想があいまいなCakePHPなんて使わずにZend使えってこった、Zend
(てか「なぜ採用したのか」とかなぜCakeのdev-teamに聞かずにここの連中に聞く?)
551nobodyさん:2008/11/24(月) 12:35:15 ID:???
>>549
おいおい fopen r+ で新規ファイルできないのはちゃんと仕様で決まってるぞ
552544:2008/11/24(月) 12:35:30 ID:???
>>546
>>544のやり方は、一番簡単で手を抜いた方法。
Apacheモジュール使う方法とかもあるのだけど、その辺りはあえて紹介しなかった。(初心者と書いてたので)
簡単で手を抜いた方法は、サーバーにとっては易しくない場合がほとんどなので、
共有サーバーなら少し気をつけた方がいいかなと思ったまで。

他にもトラブルの元になる場合があるかな。

例えば、htaccess使って拡張子「.html」をPHPとして動作するようにすれば、
本当にただの「.html」ファイルでもPHPとして動作しようとするよね?

例えばphp.iniの設定で
short_open_tag が ON になっている場合、xmlの構文でパースエラーが起こる可能性があったり。
(理由はXMLは「<?xml」で始まるから)
553541:2008/11/24(月) 12:38:00 ID:???
>>549
fopen($path, 'w');
は新規ファイル出来るけど、
fopen($path, 'r+');
は駄目だよ??そこは大丈夫?(でもそれが原因ならエラーが出る筈だが)

file_put_contents()は糞便利なんだが、PHP5でしか使えないからねぇ。。
554540:2008/11/24(月) 13:02:49 ID:161WFI/v
レスありがとうございます
二度目の書き込みでwとかいたのはr+だとまったくファイルが変わらないためどこで詰まっているのかを確認するためにwで動かしてみた際の話です

サーバー上では問題ないんです
ローカルだけでfputsのみがおかしい状態です

>>553
鯖がPHP5でさえあればorz
555nobodyさん:2008/11/24(月) 13:23:36 ID:???
一回冷静に頭の中整理したほうがいいよ
言ってることがメチャクチャだw
556nobodyさん:2008/11/24(月) 14:28:28 ID:8C5l1Dvr
function echo_t_s_y($title, $sub_title, $year) {
echo "$title <span class=\"gray\">(<em>$sub_title</em>, $year)</span>"; }

みたいな定型処理を文中で利用しまくってるんですけど、
サーバへの負担は気にする必要有りますかね?
557nobodyさん:2008/11/24(月) 14:30:00 ID:???
ないよ
558nobodyさん:2008/11/24(月) 14:30:13 ID:???
ないことはないが気にするな
559nobodyさん:2008/11/24(月) 14:32:08 ID:8C5l1Dvr
>>557,558
了解、thanx
560nobodyさん:2008/11/24(月) 14:33:47 ID:???
thanx(笑)
561nobodyさん:2008/11/24(月) 15:57:33 ID:???
>>560は書いてる時間帯的に、
PHP関連の各スレへ1行で恥ずかしい無知な突っ込みいれてる馬鹿か?

ちなみにthanxは普通にスラングとして使われる綴りだが。
pleaseをplsとか書くだろ。
関数名でforを4と略したりtoを2と略したりするのと一緒だ。
562nobodyさん:2008/11/24(月) 16:03:11 ID:???
>>560は書いてる時間帯的に、
PHP関連の各スレへ1行で恥ずかしい無知な突っ込みいれてる馬鹿か?

ちなみにthanxは普通にスラングとして使われる綴りだが。
pleaseをplsとか書くだろ。
関数名でforを4と略したりtoを2と略したりするのと一緒だ。

(笑)
563nobodyさん:2008/11/24(月) 16:04:18 ID:???
>>562
恥ずかしかったら出てくるなw
564nobodyさん:2008/11/24(月) 16:40:25 ID:???
日本人の馬鹿にいちいちかまってやんなよ
565nobodyさん:2008/11/24(月) 17:24:18 ID:3UIztZ5+
質問

「file_put_contents」は文字列をファイルに書き込む関数、という
説明だが、もし「1」って書き込んだら、それは文字列と解釈され、
1+1などの計算をするときに、自動的に数値と解釈されなくなって
しまうのか?

それとも、コンテキストを見て判断して、数値と扱うべきところでは
自動的に数値になってくれるのか?
566nobodyさん:2008/11/24(月) 17:25:49 ID:???
>>565
マニュアル
567nobodyさん:2008/11/24(月) 17:33:21 ID:???
PHPはブラウザやテキストエディタ作れない時点で糞です
568nobodyさん:2008/11/24(月) 17:44:15 ID:???
変な釣りはよせやい!
569nobodyさん:2008/11/24(月) 17:52:18 ID:???
>>567
作れるよ
Webアプリケーションとして実装すれば
http://akid.s17.xrea.com/
こんなのもできるし
GTKとかを使ってクライアントGUIアプリなんかも作れるし
前者のWebアプリはともかく
後者のクライアントGUIアプリをPHPでやろうとするのはただの変人だけど
570nobodyさん:2008/11/24(月) 18:01:26 ID:3UIztZ5+
質問

データーが連続して蓄積されるような状況があったとして、それを
グラフで図とかで表したいんだけど、それってすっごく難しいの?
例えば、

1,2,3,4,5、、、

とかってデーターがあったとして、これを
折れ線グラフとかで表示したいんだけど?
571nobodyさん:2008/11/24(月) 18:04:12 ID:???
パクッ
572nobodyさん:2008/11/24(月) 18:08:53 ID:???
>>570
人による。
ググればそれなりのライブラリがヒットするよ
573nobodyさん:2008/11/24(月) 18:19:22 ID:???
>>572
構うな
574nobodyさん:2008/11/24(月) 18:44:37 ID:???
>>573

    〃〃∩  _, ,_
     ⊂⌒( `Д´) < ヤダヤダ! だって構って欲しかったんだもん
       `ヽ_つ ⊂ノ
              ジタバタ

      _, ,_
     (`Д´ ∩ < ヤダヤダ 灯油まいただけなのに逮捕なんてヤダヤダ
     ⊂   (
       ヽ∩ つ  ジタバタ
         〃〃
575nobodyさん:2008/11/24(月) 18:45:34 ID:3UIztZ5+
>>572
図を表示したいときは
ライブラリを使うのが常套手段なの?

PEARとかっていうのではだめなの?
576nobodyさん:2008/11/24(月) 18:48:41 ID:???
PEARはライブラリなんですけど・・・
577nobodyさん:2008/11/24(月) 18:58:00 ID:3UIztZ5+
質問

WEBアプリのAPIってどうやって作るの?
「5」とかの数値がサイト上にあって、
それに対するAPIを開放して、外部から利用できるように
したいんだけど?
578nobodyさん:2008/11/24(月) 18:58:59 ID:???
質問

毎日釣り糸垂らして楽しいの?
579nobodyさん:2008/11/24(月) 19:03:20 ID:???
>>577
<?php
echo "5";
?>
580nobodyさん:2008/11/24(月) 19:03:37 ID:???
581nobodyさん:2008/11/24(月) 19:09:55 ID:Z9Lf2PTJ
俺はつりをたらす>>577
とマジレスする>>579にときどき
涙する。
582nobodyさん:2008/11/24(月) 20:32:30 ID:???
質問しといてまともな答えが返ってこなくても
淡々と回答放置して次の質問出してるんだから
自己完結してるんだろ
独り言のようなもんなんだから構わなくていいよ
583nobodyさん:2008/11/24(月) 20:42:35 ID:???
文字コードで悩んでいて下記のブログに出会いましたが
実際、ブログで説明されていることはただしいのでしょうか?

http://hain.jp/index.php/tech-j/2007/02/13/p125
584nobodyさん:2008/11/24(月) 20:58:06 ID:???
>>582
PHP入門の心得 1.0.10p1

・質問は霞ヶ関でも通用するような完璧な形式に。
・過去ログは紀元前までさかのぼって完全に調べる事。
・新機能ができても細部にこだわってできるだけリリースしない。
・「正しい」か「誤っている」かを結論づけないと気が済まない性格になる事。
・質問自体は無視して語句の間違いの指摘に熱中する事。
・初心者を見たらできる限り冷酷に排除。
・回答は1行以内で簡潔に。 例:「マニュアル読め」
・古いバージョンを使っていることがわかると最新にしろという。
・一日三回食後必ずperlをあざ笑う事。
・自分の状態に「自覚症状」を持たないこと。
・板違いの質問をしたperlerを徹底的に叩く事。
・forkする時はアニメ絡みの名前をつける事。
・気に入らない投稿が流れてきたらメールアドレスも含めて全文コピペ
・意味もなく全角英数字を使うやつは小一時間問い詰める事。
585nobodyさん:2008/11/24(月) 21:09:02 ID:???
586nobodyさん:2008/11/24(月) 23:08:47 ID:???
>>583
大体正しいけど、実際の設定はその人の設定だから
何で書いて何で出力したいか次第。

厳密に言えばPHPに内部エンコーディングが無い訳じゃない。
例えばPHPはShift_JISで書いても5cを展開しないようにも出来る。
echo "表";ってやってもエラー出ない様に出来る。

ただその場合は、mb.stringだけでは無くて
Zendエンジン側を含めて設定しなければいけない。
コンパイル時にzend multibyteをONにしてなければいけなかったと思う。

mb関数はかなりの文字コード対応してるけど作ってるの日本人だから
PHPメーリングリストにバグとか含めて詳しい情報がある。

かなり挙動に癖があって分かり難いんだけど、コンパイル時に指定できて
外部ライブラリが要らないメリットはデカイから覚えておいたほうが良い。
587nobodyさん:2008/11/24(月) 23:17:04 ID:3K7Ub6cb
アクセス解析を作ろうとしています。
ログの保存で悩んでいるのですが、
MySQLなどのDBに保存するのかテキストベースで保存するのか
どちらの方がアクセス解析の処理がしやすいでしょうか?

前者だと思っているのですが、ログが膨大になるとレコード数が増えて
検索しづらくなるのではないか?と危惧しています。
それに毎回クエリを発行するよりも、ファイルに追加する方が早いのかな?っと感じたり。

具体的なソースがググって見つけられないので、
どちらが適しているかわかりませんが、2ちゃんの皆さんなら知っていると思い、
質問させていただきました。よろしくお願いします。
588nobodyさん:2008/11/24(月) 23:19:38 ID:Z9Lf2PTJ
グラフで作ろうぜ。
589nobodyさん:2008/11/24(月) 23:23:12 ID:???
>>587
勉強のためならどっちもやってみたら?
具体的なソースじゃなくてファイルベースの利点と欠点、DBの利点と欠点を調べたほうがいいと思うけど。
もしくは↓の人が丁寧に語ってくれる。
590nobodyさん:2008/11/24(月) 23:28:56 ID:???
apacheと同じ形式で書いて、analogに読ませる。
591nobodyさん:2008/11/24(月) 23:35:47 ID:3K7Ub6cb
>>589
一応、単純なログ保存ならどっちも試した事があるのですが
そんなに変わらない気がします。DBを使ったログ保存でも
レコードが一定数になったら、削除したりテキスト化すると言う方法もあるし。
>>590
それは良いですね。analogとかawstatsとかおそらくアクセス毎に
ログファイルに記録してますが、そんなに遅いイメージ無いですし。
592nobodyさん:2008/11/25(火) 11:31:32 ID:DHbzqImi
<form>の<select>にて参照した数値を次の画面で選ばれた数値により違うページを表示させたいのですが

<select>
<option>肉</option>
<option>魚</option>
</select>

で、肉を選ばれたら肉のページ、魚を選ばれたら魚のページ、といったようにです。
簡単な雛形でいいのでどう書けばいいか教えて頂けませんか?
593nobodyさん:2008/11/25(火) 11:50:53 ID:???
>>592

>>1
> ◆質問する時の注意
594nobodyさん:2008/11/25(火) 11:51:22 ID:sWMxGR9l
すまん php.ini のSJISはJSPでいうところのShift_JISとWindows-31J
のどっちに該当するの?
#というのが見つからんかった
595nobodyさん:2008/11/25(火) 11:53:59 ID:???
>>594

どこ調べた?
SJIS SJIS-win CP932等でググればわかる
596nobodyさん:2008/11/25(火) 12:02:07 ID:???
JSPでいうところのっていうのが説明になってないよ
文字コードのクライテリアの話をするときにJSPって(ry
597nobodyさん:2008/11/25(火) 12:10:45 ID:TqJfzk7a
ぼくは、java使いだから偉いんです。あなたとは違うんです
ぼくみたいな偉いjava使いがわからないphpなんておかしいです。

こんなぼくにもわかるphpの公式ドキュメントはどこですか?
598nobodyさん:2008/11/25(火) 12:23:12 ID:???
>>592
そういうのはjavascriptでやってくれたまえ

>>597
javadoc読めるならphpマニュアルだってなんとなく理解できるだろ
599nobodyさん:2008/11/25(火) 12:24:47 ID:???
>>598
別にPHPでも良くね?
JavaScriptのほうが簡単なのは分かるがPHPでやるデメリットが何かあるの?
JS切ってる人も多いし
600nobodyさん:2008/11/25(火) 12:30:56 ID:???
>>599
つまりいちいちメニュー選んだら送信ボタンを押せっていいたいんだな?
そんなマヌケなメニューなら最初から他の方法とったほうがいいと思うが
601nobodyさん:2008/11/25(火) 12:35:53 ID:???
高齢者やPCに詳しくないユーザにはインタラクションがあったほうが使いやすいよ
個人的にもイベントハンドラで勝手に画面遷移したり非同期通信したりするのはうざく感じる。
そんなとこより他の本質的な所に力使ってくれよみたいな。
あと切ってる人はどうすんの?
602nobodyさん:2008/11/25(火) 13:06:55 ID:???
>>601
<noscript>で代替も可能
というか切ってるわずか1%未満に対応させる必要はない
603nobodyさん:2008/11/25(火) 13:16:08 ID:sWMxGR9l
>>595
すまん 色々見てたらわかった気がする
#mbstring.configuration.html 見てもちゃんと記述されてない気がしたから
function.func-name.html でいいのかな?>namazuしたのから探した

#JSP出したのは、いわんとしてることが、わかる人には正確に伝わると
#思っただけで意味はないよ>こういう言い方があってるかは不明だけどw
#oracleのJA16SJISTILDE 相当のは指定できないの?
#と聞いて見たかったりもしたんだけど
#あまり考えるのはやめよう>SQL鯖だし
ありがとう
604nobodyさん:2008/11/25(火) 13:20:49 ID:???
高齢者やPC疎い人に配慮するなら、
そもそもそんなわかりにくいメニューを使うべきでない。
積極的にRIAを活用したほうがわかりやすいものができる。
しかしRIAのベースになるAjax(JavaScript)やFlashやSilverlightに
ブラウザが対応していない場合はどうするか?(テキストブラウザ等)
JavaScriptがOFFの場合JavaScriptをONにするように促せばいいし、
(そもそもデフォルトのままIEあたりを使うであろう高齢者やPC初心者がオフにするわけがない)
プラグインが入っていないならインストールを促すようにすればいい。
だが対応していないブラウザを使っているたかだか数%のユーザを考慮して、
あらたなコンテンツを作るのは要領が悪い。
html版やFlash版なんかを用意しているサイトもあるが、
全ての環境の全てのユーザーに100%対応させることは限界がある。
よって最初から少数派を切る覚悟はしないときりがない。
605nobodyさん:2008/11/25(火) 16:09:40 ID:QsUscf6u
PHPのソケットってWinSocketと繋がりますか?

606nobodyさん:2008/11/25(火) 16:26:20 ID:uwgP5Nan
【OS名】VineLinux
【PHPのバージョン】PHP Version 5.2.0
【連携ソフトウェア】なし
【質問内容】

1.青空文庫のようなXHTMLをXMLとして読み込んだ後に
2-1.テキスト要素だけを取り出したい
2-2.a属性のテキストだけ取り出したい
です
1は出来ているのですが、2がわかりません
2の条件として、XMLは外部のものを使うので、テキスト要素までのパスが可変で決め打ちできません
2-2は最後の属性がaのとき、という事です
宜しくお願いします
607nobodyさん:2008/11/25(火) 16:31:12 ID:???
SimpleXML
608nobodyさん:2008/11/25(火) 16:38:13 ID:???
>>607
すみません、SimpleXMLを使って読み込んでいますが、処理部がわかりません
2-2はXpathで一応出来ましたが正しいのかわかりません、2-1はさっぱりです
foreach ( $xml->xpath('//a') as $key => $val )
{
$array[] = $val;
}
609nobodyさん:2008/11/25(火) 16:38:47 ID:uwgP5Nan
606=608
ID忘れました
610nobodyさん:2008/11/25(火) 17:49:50 ID:???
値全部見てテキストだけ格納するんじゃだめなん?
611nobodyさん:2008/11/25(火) 21:59:38 ID:???
>>606
こういうのは言葉で質問しづらいでしょ
実際にXMLを見せてもらわないとわからんよ。
それと、2-2の意味を掴みかねる。
612nobodyさん:2008/11/25(火) 22:36:15 ID:???
>>606
SimpleXML使える環境ならどうとでもなるはずなので、
あとの事は実際にそのXMLの構造見て見ないとねぇ。。

>>605
なんか「ソケット」という言葉を激しく勘違いしてると思う。

>>598,600,602
携帯の事忘れてない?
最近は、フルブラウザならJavaScriptも動いたりするけどね。
613nobodyさん:2008/11/25(火) 22:43:29 ID:???
携帯対応にするとめんどくさいから
普通はコンテンツ絞って分離するんじゃね?
614nobodyさん:2008/11/25(火) 22:49:47 ID:???
>>613
そりゃそうだけど、結局携帯対応の為にJS使わない実装しないと駄目では?というお話。
615nobodyさん:2008/11/25(火) 22:53:26 ID:???
ASP.NETだと、携帯の種類をソフトが勝手に判別して
適切なコンテンツを送る、って聞いたけど、本当なのかな?
616nobodyさん:2008/11/25(火) 22:54:41 ID:???
自分の作りたいプログラムが作れるようになると
プログラミングがすっごく楽しい〜(*^〇^*)
617nobodyさん:2008/11/25(火) 23:01:38 ID:???
>>615
ソフトが勝手に判別というのは意味が分からないけど、聞いた事ないかな。

ASP.NETの前身の「ASP」での開発もしてた頃は、
小中規模の開発はみんなASPからPHPへと鞍替えしちゃったところが多かったよ。

最近はApacheモジュールで携帯向けの自動処理を何とかしようとするのが幾つかあるね。
どれもまだまだな感じだけど。
618nobodyさん:2008/11/25(火) 23:54:53 ID:c9fpFVNb
質問

「ボタンを押したら、画面上の数字が増える」
ってアプリを作ったんだが、ボタンを押したヤツの
IPを記録するって仕組みを作ろうと思うんだが、
さて、どんな風にしたらいいかな?
619nobodyさん:2008/11/26(水) 00:06:02 ID:???
さて、どんな風に答えたらいいかな。
620nobodyさん:2008/11/26(水) 00:06:33 ID:9Z6KcmDE
ボタンを押す、ときに
そいつのIPをトラップするような関数があるのかな?
621nobodyさん:2008/11/26(水) 00:07:00 ID:???
error_log($_SERVER['REMOTE_ADDR'], 1, '[email protected]');
622nobodyさん:2008/11/26(水) 00:08:14 ID:???
ん、画面遷移なしならajaxだからスレチだな
623nobodyさん:2008/11/26(水) 00:12:47 ID:???
お前ら本当学習しないですね
放置しろ
624nobodyさん:2008/11/26(水) 00:15:16 ID:9Z6KcmDE
質問

これってダメなの?

<?php
print "Hello World!";
?>
625nobodyさん:2008/11/26(水) 00:21:49 ID:???
そんなんで、いいわけがない
末尾の?>は省略すること
<?php
echo "Hello Again!";
626nobodyさん:2008/11/26(水) 00:48:04 ID:???
変数の展開の必要のない文字列はシングルクオートだろ。

<?php
echo 'Hello Again!';
627nobodyさん:2008/11/26(水) 01:12:59 ID:???
固定文字列出力だけならechoいらんだろ。

Hello Again!
<?php
〜〜
628nobodyさん:2008/11/26(水) 01:30:52 ID:???
いやいや、echoいらんならこれでよくね?

Hello Again!
629nobodyさん:2008/11/26(水) 01:35:40 ID:6NDVGzGm
$date = date("Y-m-d H:i:s");

と言う条件があったとして、「11月を抽出」させる場合、
どういう方法が一番簡単で処理が早いでしょうか?
やはり、上の状態からpreg_matchやexplodeで一旦配列に代入し、
そこからifで一致するか調べる方が良いでしょうか?
630nobodyさん:2008/11/26(水) 01:35:44 ID:???
www
631nobodyさん:2008/11/26(水) 01:47:12 ID:???
処理が早いでしょうかってベンチでも取らせる気か?
俺だったら元のunixtimeに戻してからその11月の範囲内か調べるね
632nobodyさん:2008/11/26(水) 03:54:17 ID:???
explodeが速そう。
まあ好きにやりなよ
633nobodyさん:2008/11/26(水) 07:43:17 ID:???
if(date("m") === '11') $date = date("Y-m-d H:i:s");
634nobodyさん:2008/11/26(水) 07:46:07 ID:???
>>633
23:59:59に実行したら失敗
635nobodyさん:2008/11/26(水) 08:05:37 ID:???
まじかw
失敗ってどんなんよ
636nobodyさん:2008/11/26(水) 08:07:21 ID:???
あぁ、意味わかった
637nobodyさん:2008/11/26(水) 08:09:29 ID:???
if ($time = time() && date("m", $time) === '11') $date = date("Y-m-d H:i:s", $time);
638nobodyさん:2008/11/26(水) 11:40:21 ID:???
質問

文字コードは全てUTF-8で統一しています。
$s = mb_convert_encoding( mb_convert_kana( $str, "K", "UTF-8" ), "ISO-2022-JP", "UTF-8" );
って感じで半角カナを全角カナに変換してから文字コード変換を行ったんですが

その変換した文字列をmail()で送信をしたら特定の文字が化けてしまいました。
文字化けした文字
全角半角のウ、全半角のゥ、全半角のェ

この文字化けって普通は起こらないんでしょうか?
同じようなことがあった人教えてください。
639nobodyさん:2008/11/26(水) 11:52:34 ID:???
化ける前はわかったけど、化けた後はどうなったの?
それによって何が起きたかわかるかもしれない。
640nobodyさん:2008/11/26(水) 12:19:28 ID:???
>>639
文字化けしたあとは
ウとゥは、
ウ瘢雹
のように末尾に不思議な文字が追加されて

ェは、
0街札・・w)・
という風に変換されてしまいます。

mb_convert_kana()で変換し、メールに合わせてエンコードした文字列は
smartyでfetchしたテンプレートにassignするように使っています。
641nobodyさん:2008/11/26(水) 12:37:05 ID:???
mb_language("Japanese");したうえで、mb_send_mailでもだめかね?
642nobodyさん:2008/11/26(水) 12:43:18 ID:???
mb_convert_kanaの段階では化けてないの?
mb_convert_kanaの結果も見てみて。
643nobodyさん:2008/11/26(水) 12:43:38 ID:???
それを行ったときに、mb_send_mail()で送信しようとすると
subjectが7文字までなら正常に送信できるのですが、
subjectが全角8文字以上を超えるとLFが送信するメールのどこかに含まれてしまい
RFCに準拠してないからSMTPエラーとなるので、mail()で送信するように変えました。
644nobodyさん:2008/11/26(水) 13:08:30 ID:???
>>643
そういう現象にはなったことないけど、mailを使うんであれば、
エンコードは自前で?それともmb_encode_mimeheader?
その部分はチェック済みなのかな。
645nobodyさん:2008/11/26(水) 13:24:59 ID:???
すみません、自己解決できました。

エンコードについてはmb_convert_encoding()とmb_encode_mimeheader()
でエンコードしました。
mb_send_mail()のsubjectの件についてはなぜ8文字以上だと
SMTPエエラーが起こるのかは詳しくわかりませんでしたが。
mail()で対処できたのでそれ以降はまだ調べていません。

文字化けについては、
assignするデータ、fetchしたデータにエンコードをしていて
2重でエンコードしたことが原因のようでした。

お騒がせしました。
646nobodyさん:2008/11/26(水) 14:56:01 ID:???
どこが自己解決なんだろう
647nobodyさん:2008/11/26(水) 15:02:08 ID:b+UaHm9e
http://alfalfa.livedoor.biz/archives/51372066.html
60 仕様書無しさん :2008/09/21(日) 22:34:33

Perler「Cとか古すぎwwwwwwメモリ管理やらせるとか何サマwwwwww」
Perler「MSの犬乙でありますwwwww」
Perler「ハッシュと配列の区別もつかねー糞言語が喋るんじゃねーよwwwwww」
Perler「ちょっとイテレーターとか使えるからって調子に乗ってんじゃねーよwwwwwendとかいちいちきもいんだよwwwww」
Perler「Javaとおんぶに抱っこなくせに出てくんなwwwwww」

俺の中だとPerlerはこのように極悪非道なやつらということになっている。
648nobodyさん:2008/11/26(水) 23:40:10 ID:uu4IqJDf
こんにちは。下記にあるサイトのコードを使ってみたんですが、検索と押しても何も表示されませんでした。
(特にエラーとかでませんでした)
ttp://www.ritsumei.ac.jp/~inabam/class/dd1_07/11th/

かれこれ3時間にらめっこしてるんですが、自力で解決することができませんでした。
是非ヒントだけでも教えていただけると幸いです。
649nobodyさん:2008/11/26(水) 23:44:08 ID:???
>>648
display_errors = On
650nobodyさん:2008/11/26(水) 23:57:19 ID:uu4IqJDf
display_errorsは Onになってます 
651nobodyさん:2008/11/27(木) 00:04:42 ID:???
>>650
error_reporing = E_ALL
652nobodyさん:2008/11/27(木) 00:08:08 ID:Y4lx+bCY
質問

http://www.phppro.jp/school/phpschool/vol2/3
このサイトに、

>XAMPP上で動くPHPでは初期設定で
>EUC-JP文字コードで動くようになって
>いるので、文字コードはEUC-JPに設定しよう

って書いてあるのだが、普通はUTF-8にする
ものではないのか?
653nobodyさん:2008/11/27(木) 00:28:40 ID:???
>>651
ありがとうございます。

Undefined variable: PHP_SELF in C:********csvdb.php on line 8

$myself = basename($PHP_SELF); これが原因だったみたいです!
これはファイルの名前を取得するみたいなので要らないと思い削除したんですが
解決することができませんでした(汗
654nobodyさん:2008/11/27(木) 00:30:29 ID:???
$myself= basename($_SERVER['SCRIPT_NAME']);
655nobodyさん:2008/11/27(木) 00:30:33 ID:???
>>これはファイルの名前を取得するみたいなので要らないと思い削除したんですが

( ゚д゚) ・・・
 
(つд⊂)ゴシゴシ
 
(;゚д゚) ・・・
 
(つд⊂)ゴシゴシゴシ
  _, ._
(;゚ Д゚) …!?



とりあえずregister_globals=Onにしてみたら?
656nobodyさん:2008/11/27(木) 00:48:45 ID:???
>>654-655
ありがとうございます!
無事動きました♪
657nobodyさん:2008/11/27(木) 07:01:16 ID:QDCpWLvT
>>652
s200辺りからUTF-8に変わったぞ
今は全部UTF-8かも?
658nobodyさん:2008/11/27(木) 09:57:53 ID:???
いつXREAの話題になったのだ
659nobodyさん:2008/11/27(木) 10:14:36 ID:???
いいんじゃねいつものやつだし適当な回答でwww
660nobodyさん:2008/11/27(木) 13:27:44 ID:7SaHUKLW
DB(Mysql)のhogeテーブルのpriceフィールドの内容を
hogehogeテーブルのpriceフィールドに格納したいのですが、
文字化けしてしまって困っています。

文字コードはSJISで
文字化けするのは"予"とか"ソ"といったいわゆる5Cを含む文字です。

1、a.phpのフォームからPOSTしてhogeテーブルに格納
2、b.phpでhogeから取得しhogehogeに格納
3、c.phpでhogehogeの内容を表示

といった動作なのですが、
1で予とPOSTしてもhogeには文字化けせずに格納されるのに
2でhogeから取得→hogehogeにINSERTすると文字化けしてしまいます。

つづく
661nobodyさん:2008/11/27(木) 13:28:31 ID:7SaHUKLW
つづき

b.phpは

$sql = "select * from hoge";
$res = mysql_query($sql, $conn) or die("エラー");
while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
$move_price[] = $row["price"];
}

$price_count=count($move_price);

for($i=0; $i<$price_count; $i++){
$move_price = $move_price[$i];

$sql = "INSERT INTO hogehoge(price)";

$sql .= "VALUES(";
$sql .= "'" . $move_price . "'";
$sql .= ")";
$res = mysql_query($sql, $conn) or die("エラー");
}

こんな感じなのですが、、、
どなたか解決のヒントだけでもお願いしますm(__)m
662nobodyさん:2008/11/27(木) 13:33:56 ID:???
SQLには副問い合わせってのもある
663nobodyさん:2008/11/27(木) 13:38:12 ID:???
SQL一発でできるし、
エスケープ、理解してる?
664nobodyさん:2008/11/27(木) 13:39:04 ID:???
ぅお、かぶった
665nobodyさん:2008/11/27(木) 13:40:43 ID:???
うむ
INSERT INTO hogehoge(price) SELECT price FROM hoge;
とかでコピーできる。
666nobodyさん:2008/11/27(木) 13:42:38 ID:7SaHUKLW
>>662
レスありがとうございます。
副問い合わせ
調べてみます。

>>663
エスケープ、、、いまいち理解していないと思います。

$move_price = stripslashes($move_price[$i]);

と試してみたのですが、文字化けは直りませんでした。。。
667nobodyさん:2008/11/27(木) 13:56:46 ID:???
どこで化けたか、もう少し正確で詳細な情報を。
668nobodyさん:2008/11/27(木) 13:56:51 ID:VS9OEG/Z
>>660
http://nonn-et-twk.net/twk/why-set-names-in-php-is-bad
のようなことではないでしょうか。
669660:2008/11/27(木) 14:12:12 ID:7SaHUKLW
>>665
ありがとうございます。
この方法では化けずにコピーできました。

>>667
どこで化けたか正確にわからないのですが、
b.phpのINSERT直前で var_dump($move_price); としても
化けていませんでした。
b.phpを走らせhogehogeに格納されたデータを
phpmyadminで確認したところ化けています。
c.phpでも化けて表示されてしまいます。

>>660
そのページはググって見つけました。
b.phpに
mysql_set_charset("sjis");
と記述してみたけど使い方が悪いのか文字化けは直りませんでした。
670nobodyさん:2008/11/27(木) 14:27:38 ID:???
普通はDBに文字列を突っ込む前にエスケープするもの。
たとえば、mysql_escape_string等で。
文字化けが起きないというa.phpでもやっとくべき。
それで化けるならむしろDBとの文字コード変換部分をチェックする必要がある。
このとき、内部エンコーディングとかが影響するので、
詳細な情報がないとエスパーするにも限界がある。
671660:2008/11/27(木) 15:40:26 ID:7SaHUKLW
>>670
mysql_escape_stringを調べてみて
mysql_real_escape_stringを使ってみたところ
見事文字化けは解消されました。

まだまだ基本的な事がわかっていないので、
コツコツと勉強します!!


大変勉強になりました。
皆さまどうもありがとうございました。
672nobodyさん:2008/11/27(木) 16:15:12 ID:nVMghs4x
野球,1
サッカー,2
テニス.3

という内容がテキストファイルに書き込まれていたとします。
例えば、野球の行の数字を2に変えたい時、どうすればいいのでしょうか?
イメージとしては、行を取得してその行の数字の部分を新しい数字に置換
すればいいのだと思っていますが、特定の行だけ取得する事って出来るのでしょうか?
673nobodyさん:2008/11/27(木) 16:20:51 ID:???
それは無理なので全部読み込め
674nobodyさん:2008/11/27(木) 16:20:54 ID:???
質問者はまず>>1を良く読むこと(必須!)
675672:2008/11/27(木) 16:26:55 ID:nVMghs4x
>>673
と言う事は、全部読み込んで一行ずつ処理し、
strstrなどでその行に「野球」という文字が含まれていたら
野球,2 という文字列に置換するという考え方でよろしいのでしょうか?
676nobodyさん:2008/11/27(木) 16:29:11 ID:???
まあそんな感じだけど、同一ファイルで読みながら書くのはやめたほうがいい。
長さが違うと不可能だし。
677nobodyさん:2008/11/27(木) 16:50:13 ID:nsjkEY4z
正規表現で複数行にまたがるマッチングって出来ませんでしたっけ?
$output = "foo\nbar";
preg_match('/.+/m', $output, $matches);
print_r($matches); //foo
しか出力されないのですが

なんか方法ありましたっけ?
なければ行ごとに分解するか、逆に改行を何かに置換するか・・・

お願いします。
678nobodyさん:2008/11/27(木) 16:53:03 ID:???
/.*/s
679677:2008/11/27(木) 16:56:30 ID:???
ああ、そっちでしたか。ありがとうございます。
680nobodyさん:2008/11/27(木) 17:20:51 ID:???
[[文字列>URL]]で<a>に置換してリンクできるようにしたいのですが
そのために文字列とURLを抜き出したいのですがどうすればいいでしょうか
[[ ]]の中だけは抜き出せるようになったのですが
\[\[([^\[]+)\]\]
681nobodyさん:2008/11/27(木) 17:50:09 ID:???
正規表現だけの話でPHPとは関係ないだろ
っていうかID出せやコラ
ていうかPukiWikiの真似ならPukiWikiのソース見れやコラ
682672:2008/11/27(木) 18:59:09 ID:nVMghs4x
>>676
なるほど。
じゃ、読み込んで新規ファイルに追加し、元ファイルを削除。
って流れが一番良さそうですね。

2ちゃんのログ検索とかどうしてるんでしょうね。
たぶんDBは使って無さそうだし。でも、結構速いし。
683680:2008/11/27(木) 19:15:46 ID:???
>>681
おちつけよwただの誤爆だw
pukiwikiは見たがわからなかったから質問した。
684nobodyさん:2008/11/27(木) 19:19:25 ID:???
>>682
へ?2chのログ検索ってDATファイルを開いて検索して書き直してんの?
685nobodyさん:2008/11/27(木) 21:53:53 ID:???
このスレで質問すれば誰かが見てくれるかもしれないですよ。
ただ催促すると放置される可能性があるので注意して下さいね。

基本、回答者に対して命令口調はやめてください。気分が悪いです。あなたは何様ですか?
回答者はいわば神です。一方、あなたは単なる質問者です。
神に対してはみんな、お願いをするものです。
平民以下の単なる質問者のくせして、神に命令するなんておかしいと思いませんか?

回答者はボランティアです。
自分の気分次第で嫌いな質問をスルーしたりすることに対しては何の問題もありません。
私は基本的に、自分の好きな時間に、自分が嫌いな質問や自分の嫌いなコテが書き込んだ質問を思う存分、集中的に叩きます。
自分勝手に私利私欲で叩きまくるのが基本です(笑)
私がPHP板の神ということを忘れないで下さい。
神を怒らせるととんでもないことになりますよ。
ヤスヒロや穴子という方をご存知ですか?彼は私を怒らせたのでまともな質問でも見つけ次第罵詈雑言浴びせまくっています。

その態度なんなんですか?
とても気に入らない質問の仕方です
686nobodyさん:2008/11/27(木) 21:57:06 ID:???
なにこれ
687nobodyさん:2008/11/27(木) 22:05:59 ID:???
>>686
荒らすな
688nobodyさん:2008/11/27(木) 22:15:45 ID:Y4lx+bCY
質問

自分が使ってるレンタルサーバーは
sendmailが停止されてるんだが、
この状態でもサーバーからメールを送ったりできるの?

PHPに独自に組み込まれたメール送信関数等を使って。
689nobodyさん:2008/11/27(木) 22:18:51 ID:exzeZtET
PHPのアクセス解析で[ gethostbyaddr ]関数を使って
ドコモユーザなど判別しているんですが
もっと詳しくドコモ関東、ドコモ九州など地域まで
判別するのは不可能なんでしょうか?
690nobodyさん:2008/11/27(木) 22:23:45 ID:Y4lx+bCY
>>689
IPアドレスの範囲で調べるとか?
0000−1111なら関東
4444−7777なら九州

とか、あらかじめ調べておいて、きめうち。
691nobodyさん:2008/11/27(木) 22:25:57 ID:???
>>688
そのレンタサーバの公式見てメール使えないとか書いてあるなら使えない
692nobodyさん:2008/11/27(木) 22:37:37 ID:???
0000−1111笑

>>691
ええかげんに
693nobodyさん:2008/11/27(木) 23:08:09 ID:???
>>688
phpのバージョンは?
php.ini等でSMTPに自前のSMTPサーバーを指定してやればできる可能性はある。
ポートが塞がれていたらちょっと工夫が必要になるだろうけど。
694nobodyさん:2008/11/27(木) 23:14:36 ID:xeQLOWxL
phpの拡張機能でMS ACCESSのデータベースファイルを読み書きすることは可能でしょうか?
695nobodyさん:2008/11/27(木) 23:25:32 ID:???
PHPもこのように教えて欲しい
http://jp.youtube.com/watch?v=C5Kp4VL77b8&feature=related
696nobodyさん:2008/11/28(金) 01:35:36 ID:dY3rvFPa
質問

「ボタンを押したら、文字列が表示される」

ってプログラムを書こうとして、その予習として、


<form action = "1.php" method="POST">
<input type="submit" value="a">
</form>
<?PHP
print $_POST;
?>

こういうプログラムを書いたんだけど、これを実行すると
ARRAY
って出るんだけど、どういうこと?
素人目には、理解不能は仕様なんだけど?
697nobodyさん:2008/11/28(金) 01:39:49 ID:HHS1We1t
694>>可能
695>>そうだね。
696>>エラーなんだが

698nobodyさん:2008/11/28(金) 01:54:20 ID:???
なんでアンカーが反対なの?
699nobodyさん:2008/11/28(金) 01:58:46 ID:dY3rvFPa
<form action = "2.php" method="POST" >
<input type="submit" name="a" >
</form>

<?PHP
if (isset($_POST["a"])) {
print "hello";
}
?>

これで、できたわ。
700nobodyさん:2008/11/28(金) 02:08:14 ID:???
>>695
PHPでどうやってそんな風に教えればいいんだ
この関数は再帰だから〜、とか、関数力つけておきましょう、とか?
701nobodyさん:2008/11/28(金) 02:26:28 ID:dY3rvFPa
>>700
ただコードを「ベタッ」とはりつけてきて
補助的な解説が皆無なのがムカツクの。
702nobodyさん:2008/11/28(金) 02:28:19 ID:???
>>701
具体的にどんな解説があったらええのん?
703nobodyさん:2008/11/28(金) 03:07:13 ID:???
コードの流れを教えて欲しいな。
再帰とか頭がこんがらがってしまうから、
フローチャートを使いながら説明するとか。
704nobodyさん:2008/11/28(金) 03:18:35 ID:???
何というボランティア精神養成講座
705nobodyさん:2008/11/28(金) 03:48:54 ID:???
再帰ってフローチャートで書いても再帰以上に分かりやすく書けないような・・・
706nobodyさん:2008/11/28(金) 07:54:41 ID:???
人に教えるのって難しいよね
まあこの程度しかできないとおもうけど・・・
http://jp.youtube.com/watch?v=P9cLDqHfyoc&feature=related
707nobodyさん:2008/11/28(金) 09:17:02 ID:???
さぁ週末だ♪いま陽が昇る♪
708nobodyさん:2008/11/28(金) 09:39:51 ID:eL/0HM2w
質問

なんでお前ら馬鹿なの?
709nobodyさん:2008/11/28(金) 10:06:45 ID:???
>>706
これはあまりよろしくないな
こんなこと頑張って覚えても実際の業務に何の役にも立たないし
このような概念的なことは教本見れ自分で勉強すれば済むこと
710nobodyさん:2008/11/28(金) 11:37:08 ID:skXTPrJy
public function &createNew($params) {
//code here
}
このとき、functionについている「&」はどういう役割をしているのでしょうか?
711nobodyさん:2008/11/28(金) 12:13:10 ID:???
712nobodyさん:2008/11/28(金) 13:54:03 ID:???
713nobodyさん:2008/11/28(金) 15:51:04 ID:skXTPrJy
>>711
ありがとうございます。
よくわかりました。

>>712
なるほど、マニュアルに書いてあったんですね。
ありがとうございました
714nobodyさん:2008/11/28(金) 21:21:59 ID:fzzy5FaA
文字の後、<br/>\nみたいに改行の意味を2つ続けて書くのはなぜですか?
715nobodyさん:2008/11/28(金) 21:24:16 ID:???
そりゃおまえあれやがな
ウェブで見てもエディタで見ても改行されて見えるからやがな
716nobodyさん:2008/11/28(金) 21:35:12 ID:fzzy5FaA
>>715
意味がわかりませんが
717nobodyさん:2008/11/28(金) 22:02:12 ID:???
715じゃないが実際にやってみればわかるが
<br>\n<br>\nってやれば
出力されるhtmlのソースは
<br>
<br>
という具合に改行されるが、
<br><br>とやれば
そのまま<br><br>と改行されずに出力される

ソースの見た目であってhtmlの見た目上は問題ない
718nobodyさん:2008/11/28(金) 22:27:32 ID:dY3rvFPa
PHPで書かれたフリーのメール送信フォームで
最強、定番のって、どれ?

自動スクリプトで5000通とか送信されて
ぶっこわれたりしない、対策がちゃんと考えられてるやつ。
719nobodyさん:2008/11/28(金) 22:41:20 ID:dY3rvFPa
http://kazuizm.com/2007/01/05-222959.php

アホが作るとこういう悲惨なことになるから。
最初からちゃんと聞いたほうがいい。
720nobodyさん:2008/11/28(金) 22:46:47 ID:dY3rvFPa
ちょっとまった。

もしかして、サーバー側で
sendmailが停止されている場合、
メール送信フォームを設置しても
動かない可能性が高いのか?
721nobodyさん:2008/11/28(金) 23:04:13 ID:???
PHPはコンパイル時に関数も制限できるはず。
722nobodyさん:2008/11/28(金) 23:06:34 ID:???
http://jp2.php.net/manual/ja/mail.setup.php
コンパイル時にsendmailのパスを含んでないと駄目。

サーバ管理者がメール送らせたくないって思ってんだから諦めろ。
723nobodyさん:2008/11/28(金) 23:10:48 ID:HHS1We1t
sendmail関数を使えないサーバーってあるの?
qmailとかで送れってか?
724nobodyさん:2008/11/28(金) 23:37:30 ID:???
PHPにはsendmail関数なんてないだろ。
PHPにあるのはmail関数。

mail関数を使っても、送られてきた情報を
そのままアパッチのsendmailに丸投げするだけだけど。
725nobodyさん:2008/11/28(金) 23:56:55 ID:???
アパッチのsendmail?
726nobodyさん:2008/11/29(土) 00:00:45 ID:???
php.iniに
sendmail_path = /usr/sbin/sendmail

SMTP = localhost
smtp_port = 25
っていう設定があるけど、mail関数を使った時は、sendmailコマンドに
送られるのかね、それとも、SMTPを直接叩いてくれるんだろうか
727nobodyさん:2008/11/29(土) 00:15:45 ID:???
>>726
sendmail に丸投げするだけでしょ
728nobodyさん:2008/11/29(土) 01:35:49 ID:???
SMTP鯖に投げられるのはWindows版の仕様、ってマニュアルに書いてなかったっけ?
729nobodyさん:2008/11/29(土) 01:52:20 ID:Zwy93qXL
sendmailコマンドに送られる
730nobodyさん:2008/11/29(土) 08:12:28 ID:Q7h0AD5b
自分もメールシステム作ってみようかと思ってるんだけど、
やっぱりZendFWやPearの本に載ってるような簡単なサンプルじゃ
大量の送信とかでエラー起こすものなんですか?
731nobodyさん:2008/11/29(土) 08:19:35 ID:???
どこでエラーがおきるっていうんだい?
732nobodyさん:2008/11/29(土) 09:19:26 ID:???
>>730
その簡単なサンプルがどの程度のものか知らんが、
スパムメール配信システムでも作るの?

メールサーバーによっては同時配信数に制限をかけているものがあるから、
その最大数に合わせて分割配送とか独自のキューを実装する必要があるかもね。
Web経由でやるんなら、タイムアウトとかもケアするとか。
733nobodyさん:2008/11/29(土) 09:20:37 ID:???
スパマーだろ
放置放置
734nobodyさん:2008/11/29(土) 10:14:58 ID:Q7h0AD5b
>>732-733
いや、そんなの作る気ないよ>スパム
せっかくサーバ借りるからやってみようって好奇心だけなんだけど
変なものできてトラブりたくないから聞いてみた 気に障ったならごめんね
735nobodyさん:2008/11/29(土) 14:10:37 ID:???
mysql_connect() or die;
とかの or die の使い方がのっているマニュアル該当部分てありますか?
探したんですが、orじゃ検索できないしいまいち動作がはっきりしないので情報を探しています。

論理演算子の or と同じ意味でしょうか。
736nobodyさん:2008/11/29(土) 14:24:46 ID:???
>>1
737735:2008/11/29(土) 14:27:57 ID:khza+QN5
test() and print("after or!");

function test(){
print "in test()!!";
return true;
}

とか色々やってみてやっぱり演算子なんですね。
しかも、die以外もprintなら使えるけど、date()は使えない。
でも、自作関数使えるみたいで
test() and test();
は出来た。

dateは駄目で、自作関数は駄目って基準が分からないw
738nobodyさん:2008/11/29(土) 14:29:57 ID:???
マニュアル読め
739nobodyさん:2008/11/29(土) 14:37:15 ID:???
>>737
式を評価する優先度と順番の問題。
A or B
でAがtrueならBは評価しない。だから、Aがfalseの時にしたい処理をBに書く。
C and Dで
CがfalseならDは評価しない。
740nobodyさん:2008/11/29(土) 14:43:38 ID:???
>>739
737のはどちらも実行されますよ。
その上でprintと自作関数は実行されるのに、dateとかは駄目というのが現在の疑問です。

>>738
論理演算子
http://www.php.net/manual/ja/language.operators.logical.php
は読んだんですが・・。

ここまで書いて、booleanを返さないといけないということに気づきました。
ありがとうございました。
741735:2008/11/29(土) 14:48:51 ID:khza+QN5
下記の通りで問題なく、他の関数も実行できました。
dateに限ってはprintを実行してなかっただけという orz

test() or print(date("Y"));

function test(){
print "in test()!!";
return false;
}

function test2(){
print "in test()!!";
//return false;
}

742nobodyさん:2008/11/29(土) 14:51:43 ID:???
うーん、釣り?
function testがtrue返してんだから、
test() and test()
は、最初がtrueだから、次をチェックしにいくんだから、両方実行されて当然でしょ。
仮にtestでfalse返してみなよ
test() and test()は1度しか実行されないから
743745:2008/11/29(土) 14:52:05 ID:???
補足ですが、>>740の「booleanを返さないといけない」は大嘘ですね、すいません。
だらだらと書きましたが、誰かの参考になれば幸いです。

test() or ($test = date("Y"));
print $test;

function test(){
print "in test()!!";
return false;
}

とかやって、エラーフラグを変数に代入していけば、一個ずつif書くよりいいかもとか思いました。
744nobodyさん:2008/11/29(土) 14:52:19 ID:???
date()は空文字返すでしょ
745nobodyさん:2008/11/29(土) 14:52:27 ID:???
or dieはperlの真似した特殊な式だから
perlのほうで調べてみ
746nobodyさん:2008/11/29(土) 14:53:07 ID:???
printの返り値とか考えてる?
747735:2008/11/29(土) 14:54:31 ID:khza+QN5
>>742
えーと、そこは意図してそのような動作に・・。
既に書きましたが、test() or の後にdie以外を見たことが無かったので試していたら混乱したということです。
結果的には普通に何でも出来ますね。

アドバイス頂きありがとうございました。
748nobodyさん:2008/11/29(土) 15:00:07 ID:???
>>1も読まないマニュアルも読まずに見当違い質問して混乱させるとかひどい
749735:2008/11/29(土) 15:01:17 ID:khza+QN5
>>744,746
なるほどそのあたりも漏れてました。
しかし、>>741のtest2()で試したところ返り値があるかないかは、論理演算子の右辺は関係ないかと。

>>745
情報ありがとうございます。
perl絡みで調べてみます。
どうもこの構文はPHPとしては唐突でしっくりこなかったんですが、そういう経緯もあるんですね。
750735:2008/11/29(土) 15:02:35 ID:khza+QN5
>>748
ここってくだ質じゃないんですか?
何か勘違いしていたらすいませんw
751nobodyさん:2008/11/29(土) 15:07:41 ID:???
くだらない質問用スレだけど下らない人間用スレじゃない
いい加減にしてくれ
752nobodyさん:2008/11/29(土) 15:20:06 ID:???
perlかphpかは関係ないと思うな。
構文のパースに過ぎないんだから。
チューリングマシンの基礎だな。

> 論理演算子の右辺は関係ないかと。

そう書く気持ちはわかるが、そういう考えでは本質は理解できんよ。
753nobodyさん:2008/11/29(土) 15:28:41 ID:???
くだらない質問用スレだけど、下らない回答者用のスレでもないがな
754735:2008/11/29(土) 15:34:46 ID:khza+QN5
>>752
個人的には基礎が足りないというのは理解しております。。
もしよろしければですが、どういうアプローチをしたら右辺の意味について理解できるでしょうか?
755nobodyさん:2008/11/29(土) 15:57:48 ID:Q7h0AD5b
>>751
「まあ答えてやるか」って人間がいる限り、そういう書き込みが一番空気悪くする
いやなら答えなきゃいいし見なきゃいいだけだと思うが
756nobodyさん:2008/11/29(土) 16:27:03 ID:yRFYIZ4c
じゃあまとめるね。
・式だけでも正しい構文
・PHP では and/or は短絡評価
・functionはreturn文が実行されなかったときはNULLを返す
バージョンによる違いは調べてません。
757nobodyさん:2008/11/29(土) 17:19:53 ID:N9fdCVij
Zend_Dbでは、行、カラムを指定してfetchOneすれば、
単体の値を抜き出せるのに、Zend_Db_Table使うと、
結局イテレータで出てきちゃうので、
$row->カラム名
ってしないと値が取り出せず、面倒な気がするんですけど・・・。

何か良い解決方法があったら教えてください。

758nobodyさん:2008/11/29(土) 17:30:09 ID:???
ZFスレで聞けよ
759735:2008/11/29(土) 17:30:45 ID:khza+QN5
>>756
ありがとうございます。
・式だけでも正しい構文
というのは計算式だけでもOKって事でしょうか?

自作関数だけでもnullが返ってるんですね。勉強になりました。
たしかにvar_dumpで見たらnullが返ってました。
これもざっと見るとマニュアルに書いてないような・・。

やっぱりorの両辺は返り値(何らかの値)が無ければ駄目って事かな・・。
760nobodyさん:2008/11/29(土) 18:44:16 ID:???
>>759
論理演算子で解釈できるようなものならOK
基本、関数ならいいけど命令ならダメ。
右辺なら関係ないとかやめてね
test1() or test2() or test3()
こういうことも可能なわけで、右辺はいつでも左辺になる可能性がある。
test() or echo "error";とかダメだから
761nobodyさん:2008/11/29(土) 18:55:54 ID:yRFYIZ4c
2項演算子の右と左を右辺、左辺というのですか?
762nobodyさん:2008/11/29(土) 18:57:37 ID:???
式だろ
763nobodyさん:2008/11/29(土) 19:02:02 ID:???
左辺値/右辺値
764nobodyさん:2008/11/29(土) 19:04:04 ID:???
うーんまぁ、式なんだけど、彼流に言えばって話
765nobodyさん:2008/11/29(土) 20:05:02 ID:dnGnExVM
あるオブジェクトが、
自分に渡された引数が自分自身(同じインスタンス)かどうかを調べるには
どうすればいいですか?
===は、ちょっと違いますよね?
766nobodyさん:2008/11/29(土) 20:06:02 ID:???
>===は、ちょっと違いますよね?
なんで?
767nobodyさん:2008/11/29(土) 20:19:38 ID:???
オブジェクトの話をするなら、phpのバージョンは必須じゃね?
まぁ、省略したらphp5ってことで桶てなら、>>1のテンプレに加えた方がいいかも。
768nobodyさん:2008/11/29(土) 20:35:59 ID:yRFYIZ4c
「5なら○○だ」って回答して、「4なんですけど…」って返ってきたら
「先にいえボケ」って言えばいいんだよ。
769nobodyさん:2008/11/29(土) 22:44:20 ID:oQuyl2Tg
PHP5です。
===は、値と型の同一性チェックで、
オブジェクトが自分自身の場合のチェックには使えないのでは?
770nobodyさん:2008/11/29(土) 22:45:12 ID:???
ID変わったけど769=765です
771nobodyさん:2008/11/29(土) 22:53:24 ID:???
>>769
オブジェクトが自分自身の場合は値と型が異なるの?
772nobodyさん:2008/11/29(土) 22:58:17 ID:???
>>769
マニュアルの「PHP 5におけるオブジェクトの比較」読みました?
===はインスタンスの同一性チェックって書いてない?
773nobodyさん:2008/11/30(日) 02:32:51 ID:???
>>772
そのとおりでした
ありがとうございました。
774nobodyさん:2008/11/30(日) 22:01:17 ID:l1FWuDL6
こんばんは
CSVは一つ一つデータを検索する必要がありますが、XMLだとどうなんですか?
XMLの方がデータ検索は高速になるんでしょうか?

mysqlはナシで
775nobodyさん:2008/11/30(日) 22:05:26 ID:???
XMLは単なる記述形式
776nobodyさん:2008/11/30(日) 22:25:19 ID:???
どれでも検索する必要はあるよ
関数が実装されてるかどうかの違いじゃないの。
777nobodyさん:2008/11/30(日) 22:48:33 ID:???
CSVを舐めていくのが早いかXMLをパースするのが早いかって話なら、
試してみればいい。そして結果をここに報告すればみんな幸せ。
778nobodyさん:2008/11/30(日) 23:11:39 ID:???
どっちが早いかなんて実装方法次第だろ
イメージではパースする分XMLの方が遅い
779nobodyさん:2008/12/01(月) 02:35:22 ID:L8HEfjQ3
一般的なレンタルサーバーに自前のPHPのスクリプトをアップして実行させたはいいけど、
下手くそなプログラムが災いして暴走し出した場合、これを止めるにはどうしたらいいと思う?

たとえば誤って無限ループを入れてしまったりした場合とか。
780nobodyさん:2008/12/01(月) 02:39:01 ID:???
鯖缶の仕事だから好きなだけ無限ループさせてもおk
781nobodyさん:2008/12/01(月) 03:10:28 ID:???
max_execution_timeで止まると思う。
782nobodyさん:2008/12/01(月) 12:02:32 ID:qgihvL7P
アクセス解析で疑問があるのですが
日がたつとIPからホスト名への変換は正しくできるのか疑問でして
たとえば11/1に121.32.2.1というOCNのIPがあったとします。
そのIPを12/1にホスト名変換したときにOCNとして取得できるのでしょうか?

IPとホスト名は両方ログに書き込んだほうがいいですか?
783nobodyさん:2008/12/01(月) 12:08:52 ID:???
>>782
変わり得る。
ダイナミックDNSでもなけりゃそうコロコロ変わるもんでも無かろうけど。
784nobodyさん:2008/12/01(月) 12:09:17 ID:???
一体なんのために解析してるの?そこをまず考えないと
785nobodyさん:2008/12/01(月) 12:12:39 ID:???
いや、その理由分かるな。大量のアクセスがあるサイトだと、
ホスト変換に時間が掛かる。俺もログに書込む時はIPアドレスだけにして、
cronで、ホスト変換するプログラムを書いている。

そのプログラム分けて上げても良いけど、20万円でどう?期間は無制限でいい。
786nobodyさん:2008/12/01(月) 12:14:18 ID:???
5分で書けるだろw
787nobodyさん:2008/12/01(月) 12:14:56 ID:???
貧乏SOHOが必死に宣伝中wwwwww
788nobodyさん:2008/12/01(月) 12:16:16 ID:???
webalizer入れるだけで解決しそうな予感。
789nobodyさん:2008/12/01(月) 12:16:29 ID:???
残念ながら500円ぐらいですね^^;
790nobodyさん:2008/12/01(月) 12:18:49 ID:qgihvL7P
アクセス拒否をしたいのですがIPですとコロコロ変わるため
ホスト名でu1.p102.tokyo..setagaya.OCN.jpみたいに取得しておけたら
ピンポイントで規制できると考えてます。
プロバイダへ接続の度にIPが変わる所もあるのですが、そうアクセス拒否する機会もそんなにないとは思うのですが
規制する時になったときのことを考えてどうしたらいいのかわかりません。
ちなみにcronは使えません。
791nobodyさん:2008/12/01(月) 12:21:59 ID:???
そんなに負荷が死ねるくらいアクセス数があるの?
792nobodyさん:2008/12/01(月) 12:23:23 ID:qgihvL7P
2500〜5000/1dayぐらいです
ネタは情報発信系です
793785 :2008/12/01(月) 12:26:36 ID:???
>>792
それなら、俺の書いたプログラムが最適。
通常は20万円だけど、同じ2chの同胞ってことで18万円でいいよ。どう?
794nobodyさん:2008/12/01(月) 12:27:26 ID:???
>>792
余裕すぎじゃん
795nobodyさん:2008/12/01(月) 12:32:42 ID:L8HEfjQ3
>>780
>>781
どうも(・ω・)ノシ

つまりレン鯖のユーザーとしては一度暴走を許してしまったプログラムに関しては
鯖管が見つけて止めてくれるまでどうしようもないということでok?
796nobodyさん:2008/12/01(月) 12:33:46 ID:qgihvL7P
でもやっぱりipとホスト名を両方書くのはログが増えるのでやめます
>>785さんのプログラムだと私のサーバではcronが使えないのです
ホスト名で取得することにします
どうもありがとうございました
797nobodyさん:2008/12/01(月) 12:35:58 ID:???
>>796なーんだ 自分で答え出せるじゃん

>>795シグナルアラーム使えば?
798nobodyさん:2008/12/01(月) 12:39:31 ID:???
IPも変わればDNSも変わるんじゃないの?
799798:2008/12/01(月) 12:40:28 ID:???
DNSじゃなくてホスト名だ・・・
ネットワークプログラミングってむずかしいね
800nobodyさん:2008/12/01(月) 12:52:20 ID:L8HEfjQ3
>>797
シグナルアラーム( ´・ω・)?
801nobodyさん:2008/12/01(月) 12:52:55 ID:???
ネットワークプログラミングですらないし
802 ̄ ̄ ̄ ̄ ̄)/ ̄ ̄ ̄ ̄ ̄ ̄ ̄:2008/12/01(月) 12:58:29 ID:???
     /⌒ヽ
    / ^ ω^j、
 _, ‐'´  \  / `ー、_
/ ' ̄`Y´ ̄`Y´ ̄`レ⌒ヽ
{ 、  ノ、    |  _,,ム,_ ノl
'い ヾ`ー〜'´ ̄__っ八 ノ
\ヽ、   ー / ー  〉
\ \`ヽ-‐'´ ̄`冖ー-く
|| \ \         \     ∧_∧
||   \ \         \  ( ´Д`) オイ、なんか変なのがいるぞ
||    \ \         \ /     ヽ
||      \ \         / |  | |
||       \ \∧_∧ (⌒\|__/ /
          ヽ(     )絶対目合わせるな  ∧_∧
           /   く          \  (    ) うわー、なんか言ってるよ
           |     \           \/    ヽ
803nobodyさん:2008/12/01(月) 13:22:43 ID:???
kentwebではホスト名を記録してるから7年間ホスト名で記録してる俺が通りますよ
804nobodyさん:2008/12/01(月) 13:24:10 ID:???
それはサーバ側で変換してくれてんだよ
805nobodyさん:2008/12/01(月) 15:04:18 ID:YUzphIUV
http://x-row.cc/igwebcap/
これってphpでどうやってんですか?
806nobodyさん:2008/12/01(月) 15:37:34 ID:L8HEfjQ3
>>797
> >>795シグナルアラーム使えば?

signal()
alarm()

に関してもう少しkwsk・・・
807nobodyさん:2008/12/01(月) 17:55:32 ID:???
ふつうの設定では、クライアントが接続を切ったら(停止ボタンを押したら)
PHPの実行は停止されるよ。

ignore_user_abort() とか調べてね。
808nobodyさん:2008/12/01(月) 18:11:17 ID:L8HEfjQ3
>>807
それだとwhile(ture)ループや、一度始めると時間がかかる処理を途中で停止させることはできないよね?
809nobodyさん:2008/12/01(月) 18:41:30 ID:???
>>808
PHP内部の処理なら、ループの中だろうとなんだろうと接続断で死ぬ。
外部コマンドをコンソールを切り離して(1>&2 > /dev/nullとかで)実行してたなら
そいつは生き残るはず。
810nobodyさん:2008/12/01(月) 18:47:06 ID:L8HEfjQ3
>>809
> PHP内部の処理なら、ループの中だろうとなんだろうと接続断で死ぬ。

え?そういう仕様だったの?

> 外部コマンドをコンソールを切り離して(1>&2 > /dev/nullとかで)実行してたなら
> そいつは生き残るはず。

一度プログラムが呼び出されればユーザーがいなくても処理を続行させる方法と、
そうやって一度動か始めたプログラムを途中で好きなタイミングで停止させる方法を
解説してくれたサイトってない(´・ω・`)?
811nobodyさん:2008/12/01(月) 18:52:18 ID:???
>>810
マニュアル
812nobodyさん:2008/12/01(月) 19:16:24 ID:L8HEfjQ3
>>811
マニュアル無さす(´・ω・`)
813nobodyさん:2008/12/01(月) 19:19:38 ID:???
あるよ
814nobodyさん:2008/12/01(月) 19:36:18 ID:???
POSTで送信されたデータを全てに対してaddslashes等の処理を行うのが面倒なので
一括で処理する方法はありますか?
815nobodyさん:2008/12/01(月) 19:38:01 ID:???
スレタイ
816nobodyさん:2008/12/01(月) 19:38:42 ID:g9VSv8cf
すみません、上げ忘れました
817nobodyさん:2008/12/01(月) 19:39:35 ID:???
>>1
818814:2008/12/01(月) 19:39:43 ID:???
自己解決しました
816は偽者です
819nobodyさん:2008/12/01(月) 19:41:16 ID:???
なんかそういう関数あったよな
思い出せない・・・
820nobodyさん:2008/12/01(月) 19:45:49 ID:???
>>814
magic_quotes_gpc
まぁ非推奨な上にPHP6で廃止されるけどな
821nobodyさん:2008/12/01(月) 19:49:07 ID:???
array_mapあたりかなぁ
$_POST = array_map("addslashes", $_POST);
って感じかな
822814:2008/12/01(月) 19:50:47 ID:g9VSv8cf
皆さんありがとうございます。
>>821を試してみます
823nobodyさん:2008/12/01(月) 19:57:15 ID:L8HEfjQ3
>>813
具体的にどのあたりでしょうか?
824nobodyさん:2008/12/02(火) 00:24:01 ID:PVQb/nvw
「等しくない」の書き方が2つあるんですが、
PHP的にはどっちを使うの。違いあるのですか?

1 != 1
1 <> 1

あと、&&をandとか||をorとかも
どっちで書くこと多い?
825nobodyさん:2008/12/02(火) 00:25:51 ID:???
>>824
マニュアルの演算子のとこ
826nobodyさん:2008/12/02(火) 00:47:56 ID:PVQb/nvw
>>825
http://search.net-newbie.com/php/language.operators.comparison.html
ここですよね?

!=と<>の違いは結果の文章の最後に「。」があるか、無いかしかわかりませんでした
827nobodyさん:2008/12/02(火) 00:58:49 ID:???
ワロタw
828nobodyさん:2008/12/02(火) 04:54:35 ID:???
>>826
好きなの使えばいい
他言語に慣れてる人を考慮していくつか用意してるだけだから
!=なんかはほとんどの言語で一般的に使われる
<>はSQLなんかで使う
else ifなんかもelseifと半角スペースあけなくてもPHPの場合問題ない
829nobodyさん:2008/12/02(火) 09:14:45 ID:???
>>826
別に違いは書き方が違うだけでコチラじゃないと駄目というものは
無かったと思う
自分ひとりがメンテし続けるなら好きにしても良いんじゃないの?
828じゃないがif():endif;なんて書き方もあったりする
830nobodyさん:2008/12/02(火) 09:32:14 ID:???
結合順位がちがくね?
831826:2008/12/02(火) 12:45:41 ID:???
>>825 >>828 >>829
ありがとうございました。
好きなほうを使います。
>>830さんの書き込みが気になりますが・・・
832nobodyさん:2008/12/02(火) 12:49:24 ID:???
気になるならなんで調べないの?
833nobodyさん:2008/12/02(火) 13:03:23 ID:???
ゆとり世代にそんな高度なこと言っても・・・
834nobodyさん:2008/12/02(火) 19:42:23 ID:???
>>831
優先順位のことならこっち
http://www.php.net/manual/ja/language.operators.php
835nobodyさん:2008/12/03(水) 14:18:09 ID:769N0vO+
すいません質問です。
 Start
  >>1 >>3 こんにちわ
 End
上記の文章で2chのようなテキストの「>>1」をURLリンク付けて置き換えしたいと思ってます。
eregなどで >>[0-9]+ これで対象部分はマッチ可能なんですが
マッチされたものを取得する方法等はありますか?
ereg_replace等であれば 変換された後のテキスト取得となってしまいます。
置き換えできればいいじゃないと思われますが、>>の後の数値が必要でして。。
何か良い事例などあるでしょうか。


836nobodyさん:2008/12/03(水) 14:36:30 ID:???
>>835
preg_match("/pattern/", $string, $matchs);
837835:2008/12/03(水) 14:39:18 ID:769N0vO+
半分自己解決です。
色々と繰り返す中eregの第三引数で取得できると判明しました。すません

$match=">>[0-9]+";
$text=">>1 >>2 おはよう";
ereg($match,$text,$getstr);
var_dump($getstr);

しかしながら、2つめを取得できません。どうしたものでしょう・・><
838835:2008/12/03(水) 14:41:52 ID:769N0vO+
>>836
ありがとう!そこまではなんとか辿りつきました。
839nobodyさん:2008/12/03(水) 14:45:40 ID:???
preg_match_all("/>>[0-9]+/", ">>1 >>2 おはよう", $matchs);
print_r($matchs);
840アッー:2008/12/03(水) 14:46:26 ID:???
×matchs
○matches
841835:2008/12/03(水) 14:49:23 ID:769N0vO+
>>839
アーーッ eregばかりみてましたよ!
preg・・ すばらし
本当、くだらないヤツで申し訳ありませんでした。
解決いたしました! ありがとうございました。
842nobodyさん:2008/12/03(水) 16:11:57 ID:???
来年の新卒からゆとり世代が社会進出するから気をつけろ
843nobodyさん:2008/12/03(水) 16:29:46 ID:???
うぁ、現場にゆとり世代参入か、やべぇ
お守り買ってこなきゃ
844nobodyさん:2008/12/03(水) 16:36:30 ID:K11Uk0Wn
すいませんアクセス解析で得たIPがプロクシかPHPを通さないで調べたいのですが
そういうサービス提供しているURLご存知のかたいらっしゃいましたら教えてください。
845nobodyさん:2008/12/03(水) 16:39:11 ID:???
846nobodyさん:2008/12/03(水) 17:35:06 ID:sIznGeZK
勉強がてらにこういう処理を書いてみたいんだが

$test->foo->bar();

$test->bar(); なら書けるんだけど、これってどうすればいいの?
どこか分かりやすいサンプルか解説があれば教えて欲しい。
847nobodyさん:2008/12/03(水) 17:36:58 ID:???
barの最後にインスタンス返してないんじゃ?
848nobodyさん:2008/12/03(水) 17:38:30 ID:???
どうすればいいのって何が?
メンバ変数fooにオブジェクト入れとけばいいのでは?
つか本当にしたいのはメソッドチェーンでなく?
849nobodyさん:2008/12/03(水) 17:44:09 ID:f7FsbaSI
メール送信フォームをつくっています。
ある環境では想定どおりにメールが届くんですが、
別の環境でテストすると、メールの件名が途切れて、
メールのボディの先頭に

 =?ISO-2022-JP?B?MUlVJDEkXiQ3JD8bKEI=?=
From: [email protected]

のようなヘッダが露出してしまいます。
正常に送信できたりするのは、MTAによって自動で長さを調整したりしてくれるのかな、と予想してるのですが、
わざわざヘッダを全部チェックして何文字目で折り返すとかいう処理を書かなきゃいけないんでしょうか。。。
850nobodyさん:2008/12/03(水) 17:48:23 ID:???
>>849
受信したメールのソースを見るべき
件名が切れている部分に注目
症例: Headerの内容がBodyに流れると言うことはその箇所に改行が2つある可能性

折り返しの処理をどうするか、とかはそもそもメールが意図したソースで送信されているか確認した後に考えた方がいい
あれもこれもじゃ混乱するから
851nobodyさん:2008/12/03(水) 17:59:53 ID:f7FsbaSI
>>850
アドバイスどおりメールサーバに入ってメールのファイルをviで見たところ、
---------
Subject: =?ISO-2022-JP?B?GyRCIVokKkxkJCQ5ZyRvJDshWyQqTGQkJDlnJG8kOyVVJSkhPCVgJE5B?=
 =?ISO-2022-JP?B?dz8uJUYlOSVIGyhC?=
From: [email protected]

以下のお問い合わせがありました

---------
こんな感じになっていました。

Thunderbirdで受け取ると、ボディに
 =?ISO-2022-JP?B?dz8uJUYlOSVIGyhC?=
というヘッダが表示されてしまいます。

Subject: =?ISO-2022-JP?B?GyRCIVokKkxkJCQ5ZyRvJDshWyQqTGQkJDlnJG8kOyVVJSkhPCVgJE5B?=
 =?ISO-2022-JP?B?dz8uJUYlOSVIGyhC?=

メールの仕様は確か、ヘッダの1行が長いと、改行したあと、スペースを付与する、
という仕様だったはずなので、↑を見る限り正しいように見えますが・・・
852nobodyさん:2008/12/03(水) 18:47:25 ID:f7FsbaSI
subjectをbase64_encodeして、=?ISO-2022-JP?B? とかを自分でつけたして送信したらうまくいきました。

mb_encode_mimeheader()とMTAの相性が悪かったのか。。。
むやみに既存の関数に頼るのはよくないですね
853nobodyさん:2008/12/03(水) 19:02:44 ID:???
>>851
メールの仕様は確か、ヘッダの1行が長いと、改行したあと、スペースを付与する、
という仕様だったはずなので、↑を見る限り正しいように見えますが・・・

ってそんなことRFC 2822の何処にも書いてなかったはず(記憶が定かじゃないが)
Subject:のケツの改行コードの問題な気がする
854nobodyさん:2008/12/03(水) 19:02:51 ID:sIznGeZK
>>848
えっと、fooがいったい何でどう書けばいいのかが分からないんです。

メソッドチェーンではないです。
855nobodyさん:2008/12/03(水) 19:03:48 ID:???
>>854
何言ってんのか分からない
もっと詳しく
856nobodyさん:2008/12/03(水) 19:11:45 ID:???
>>854
$test->foo->bar();
これの意味が知りたいということ?
それなら、>>848が答え書いてると思うけど・・
$testというインスタンスのメンバー変数にあるインスタンスが格納されて
そのインスタンスのbarメソッドを呼び出してるわけだよね

class A {
function bar() { echo "hoge";}
}
class B {
function __construct() { $this->foo = new A(); }
}
$test = new B();
857nobodyさん:2008/12/03(水) 19:27:24 ID:NrG8DUhG
PHPよりFirefoxの質問っぽいけど同じ問題にぶつかった人がいるかも と思ったので
こちらで質問させてください。

オンラインのPHPマニュアルを頻繁に使っていますが、
ブラウザがWindows+Firefox3だと、"search for"(alt+S)のショートカットが効きません(ブラウザメニューに食われる)
唯一これが障害でデフォルトブラウザをFirefoxにできません。
何か良い方法はないですか
858nobodyさん:2008/12/03(水) 19:30:36 ID:???
>>857
IE Tab等のプラグインを入れて
php.netをIEエンジンで開くようにする

というか完全にスレ違いだ
859nobodyさん:2008/12/03(水) 19:54:30 ID:sIznGeZK
>>856
サンプルコードありがとうございます。
勉強する取っ掛かりになりました。
860nobodyさん:2008/12/03(水) 21:29:34 ID:???
ctrl+Fは?
861nobodyさん:2008/12/04(木) 10:26:46 ID:???
インスタンス自身をそっくり入れ替えるメソッドを実装することは可能でしょうか?
メソッド中で$this = new hoge();とかで・・・
862nobodyさん:2008/12/04(木) 10:28:26 ID:uRUEQ8oc
861です
ID忘れ
863nobodyさん:2008/12/04(木) 11:20:50 ID:???
>>861
PHP4は出来たと思う
でも明らかにおかしな動作だからPHP5では修正されているはず
オブジェクト自身が再アサインとかアフォかと
864nobodyさん:2008/12/04(木) 12:42:52 ID:???
おまえらてさ童貞の臭いがプンプンするんだよね(苦笑
865nobodyさん:2008/12/04(木) 12:46:18 ID:???
下手すぎるからもっと煽りの修行してから来いよ
866nobodyさん:2008/12/04(木) 12:46:26 ID:???
童貞の臭いをプンプンさせながらPHPの勉強をする毎日です

よろしくです
867nobodyさん:2008/12/04(木) 14:17:49 ID:???
print_rの()を省略して出力する方法ない?
var_dumpでもいいけど
デバッグのためにデバッグ出力関数の後に()つけるのだるい

print_r $debug

みたいな感じで出力できれば、()でくくる時間が短縮できる
868nobodyさん:2008/12/04(木) 14:20:33 ID:???
>>1
869nobodyさん:2008/12/04(木) 14:21:31 ID:???
>>867
つスレタイ
870nobodyさん:2008/12/04(木) 14:22:38 ID:???
>>867
関数は括弧で引数取る、これ基本
と言うわけでムリ
871nobodyさん:2008/12/04(木) 15:33:31 ID:Yfb/CJck
秀丸マクロ作った。

setcompatiblemode 0x0F;
selectline
replaceall "^([\t ]*)(.*)$" , "\\1print_r($\\2);" , regular, nocasesense, inselect;
872nobodyさん:2008/12/04(木) 16:06:10 ID:???
【OS名】Debian etch
【PHPのバージョン】php4.06
【連携ソフトウェア】XML-RPC
【質問内容】
掲示板の更新があったときにホームサーバーにpingを飛ばして更新をチェックしています。
しかし、このpingを飛ばす処理に時間がかかり、掲示板の書き込み完了となるまで遅いです。

そこで、pingを飛ばす関数の処理を待たずに次の処理を開始することは可能でしょうか?
(別プロセスにするのでしょうか??)
<?php
send_ping(); ←この処理が完了する前にnext_processに移りたい
next_process();
?>
function send_ping(){
}
宜しくお願いします
873nobodyさん:2008/12/04(木) 16:09:01 ID:???
>>1
874872:2008/12/04(木) 16:17:52 ID:4vOGiir2
すみません、ID晒し忘れていました。
875nobodyさん:2008/12/04(木) 16:26:06 ID:???
>>874
別プロセスにして、切り離す方法もありだろうね。
execとかでスクリプトファイルを使う手がありそう。

あとは、先に出力をフラッシュしちゃってignore_user_abortで処理を続行する方法

負荷が高いなら、キューに保存しといて、cronで定期的にping飛ばすとか。
876nobodyさん:2008/12/04(木) 16:27:30 ID:???
>>872
pingの処理を別プロセスでするしかないな

投稿と同時にping送る必要がないなら、
ファイルなりDBなりにフラグ立てて、バックグラウンド(cronとか)で定期的にフラグを確認してping送信
短い期間で複数の投稿があった場合、それらをまとめて1回のpingで済ませられる
877874:2008/12/04(木) 16:35:22 ID:4vOGiir2
>>875
とてもていねいなレスありがとうございます。
せっかくphpで書いたのですが、cronの方が良さそうですね。
cronでシェルスクリプト回すことにします。
ありがとうございます。
878nobodyさん:2008/12/04(木) 17:29:45 ID:???
蛇足だけど、cronでphp廻してもいい
879nobodyさん:2008/12/04(木) 17:40:42 ID:???
>>878
cronでPHP動かすことってできるの?
PHPって確か実行するユーザーがいなくなると自動的に停止してクリアしてしまうはずだが
もし時間がかかるPHPプログラムをcronで回した場合、cronはそのプログラムが終了する
まで付き合ってくれるんだろうか?
880nobodyさん:2008/12/04(木) 17:54:13 ID:3hZlaj6e
数十〜数百人程度にメール送るphpをcronでまわしているけど問題ないよ
881nobodyさん:2008/12/04(木) 17:54:53 ID:???
おまえは何を言ってるんだ
882nobodyさん:2008/12/04(木) 17:56:39 ID:???
ユーザーがいなくなるとっていうのは、cgiインターフェースのときに
ユーザーの接続断で停止って話のことだろうけど、
cronで起動するのはcliインターフェースだから、cronをセットした実行ユーザーで
制限時間まで実行できる。ちなみにWeb用の制限時間とは別だから普通は問題ない。
883nobodyさん:2008/12/04(木) 17:58:34 ID:???
コマンドラインで動けばそのまま載せられるでしょう。
jspをcronでwgetで実行とかもやってるけど。
884nobodyさん:2008/12/04(木) 18:29:16 ID:???
>>882
webサーバーがPHPをサポートしてると明言しているときは
CLIもCGIもどちらもサポートしていると思ってok?
885nobodyさん:2008/12/04(木) 18:33:22 ID:???
html の中に php のブロックをいれるとき、

<?php
// ここのインデントどうしてます?
?>

<?php
echo 'hoge';
?>

か、

<?php
____echo 'hoge';
?>

か。

php の class の場合は

<?php
class hoge
?>

ってインデントとらないほうをよくみるんですが、<?php の次のインデントは
どうあるのが美しいのかな、と。
886nobodyさん:2008/12/04(木) 18:38:57 ID:???
スレタイ読まない人ばっかで悲しいですね
887nobodyさん:2008/12/04(木) 18:42:15 ID:???
>>884
cronいじれる環境ならcliサポートしてるのが普通だと思うが、
レンサバだとサーバー会社によるだろうね。
シェルスクリプトを許可しているところもあれば、そうじゃないところもある。
そりゃ、サーバー会社の運用にそんな細かいガイドラインがあるわけないから・・・
888nobodyさん:2008/12/04(木) 21:27:00 ID:LmXIHk8w
同じページにCSVを2枚読み込みたいんですが、可能でしょうか?
889nobodyさん:2008/12/04(木) 21:41:05 ID:0wd2VBCD
可能だよ。
読み込んでどうするの?
890nobodyさん:2008/12/04(木) 22:46:15 ID:???
コピペでやって上書きされてるに3echo
891nobodyさん:2008/12/04(木) 23:31:54 ID:???
>>889
CD.csv と book.csvに別けてるんですけど
このデータを全部表示させたいんですよね
どうやるか教えてくれません?
892nobodyさん:2008/12/04(木) 23:32:43 ID:LmXIHk8w
ID表示忘れました OTZ
893nobodyさん:2008/12/05(金) 00:11:00 ID:???
>>891

1.CD.csvを読み込む
2.book.csvを読み込む
3.出力
894nobodyさん:2008/12/05(金) 00:15:34 ID:???
どういう風に表示したいわけ?
ファイルそのままを出力したいの?
895nobodyさん:2008/12/05(金) 09:04:09 ID:???
>>891
内容をすべて一番手っ取り早く表示するならこんな感じ
echo nl2br(file_get_contents("CD.csv"));
echo nl2br(file_get_contents("book.csv"));

カラム単位でも分けたいならfgetcsvを使えばいい
ただしfgetcsvはロケールに注意すること
896nobodyさん:2008/12/05(金) 09:07:35 ID:???
>>891
echo file_get_contents("CD.csv");
echo file_get_contents("book.csv");
897nobodyさん:2008/12/05(金) 09:19:32 ID:???
>>896
m9(^Д^)プギャー
898nobodyさん:2008/12/05(金) 10:11:08 ID:bKPFEWzI
$part1から$part30まである変数にそれぞれ$_POST['OOO']をセットして
if(!empty($partO))でechoする場合$part1から$part30までの式をいちいち
書く意外に方法ありますか?
899nobodyさん:2008/12/05(金) 10:17:41 ID:???
${'part'. $i}
900nobodyさん:2008/12/05(金) 11:20:49 ID:???
>>898
可変変数
for($i=1;$i<31;$i++){
$name = "part".$i;
echo $$name;
}
901nobodyさん:2008/12/05(金) 12:25:28 ID:bKPFEWzI
>>899>>900

ありがとう!これでいけた!

<?php
for($i=1;$i<31;$i++){
$name = "part".$i;
$part=$$name;
if(!empty($part)){
echo "$name <a target=\"_blank\" href=\"$part\">$part</a><br />";
}
}
?>
902nobodyさん:2008/12/05(金) 12:50:04 ID:AszAo48q
連想配列の要素に式で値を入れるにはどうしたらいいでしょうか?

define ('ABC', 'abc');

とあって、

$aaa = array ( 1 => ABC . 'aiueo');

のような事を実現する方法はありますか?
903nobodyさん:2008/12/05(金) 12:57:48 ID:???
>>902
言ってることがわからないのだが
>$aaa = array ( 1 => ABC . 'aiueo');
これは普通にできるでしょ?
904902:2008/12/05(金) 13:19:06 ID:AszAo48q
>>903
すいません、普通にはできたんですが、やりたかったのは、
下記のような事です。

<?php

define ('ABC', 'abc');

class TestClass
{
var $a1 = array ( 1 => ABC . 'aiueo');
var $a2 = "あいうえお";

function debug()
{
print_r ($this->a1);
print_r ($this->a2);
print_r (ABC);
}
}

$_test = new TestClass();
$_test->debug();

?>
905902:2008/12/05(金) 13:20:15 ID:AszAo48q
途中で送信してしまいました。
>>904 のようにやりたいのですが、何か方法はありますか?

よろしくお願いします。
906nobodyさん:2008/12/05(金) 13:28:46 ID:???
>>905
>>1にもあると思うが、何がどうできないかを説明しないと。
907nobodyさん:2008/12/05(金) 13:29:12 ID:???
php5.26で開発してます
blogのトラックバック機能を作りたいのですが車輪の再開発になるので
ライブラリなどありましたら教えてください
pearは知ってるので除きます
908nobodyさん:2008/12/05(金) 13:30:11 ID:???
>>905
もしかして、ちがうとこでエラーが出てるとか?
var $a1 = array ( 1 => ABC . 'aiueo');
演算を含むならコンストラクタで代入した方がよさげ
909907:2008/12/05(金) 13:32:05 ID:LaqO+lJQ
id出し忘れました
910nobodyさん:2008/12/05(金) 13:44:11 ID:lJXzjhqe
サイトのトップページに
[1] <img src="access.php?ac=1" width="1" height="1">
[2] <img src="access.cgi?ac" width="1" height="1">

を両方埋め込んでアクセス件数をカウントしてるんだけど、
一日の合計で見ると、[1]の方が必ずカウント数が少なくなる。。
何故でしょう?
911nobodyさん:2008/12/05(金) 13:49:10 ID:???
>>906
よーしエスパーしちゃうぞ〜

アレの中の値に定数で定義した値を埋め込みたいということだろうっと思う
やり方は知らんがね
最悪置換えとか?
912902:2008/12/05(金) 14:04:17 ID:AszAo48q
>>906

すみません、

Parse error: syntax error, unexpected '.', expecting ')' in \hoge\aaaaa.php on line 7

で、7行目というのが、

var $a1 = array ( 1 => ABC . 'aiueo');

ここです。

メンバ変数を定義する時点では、定数しか定義できないのでしょうか?
913nobodyさん:2008/12/05(金) 14:18:43 ID:???
>>912
出来ない
そもそも演算子が使えなかったはず
(定義方法にはよるがスコープ演算子は除く)
914nobodyさん:2008/12/05(金) 14:20:36 ID:???
ややこしい例出さないで
class Test {
var $a = "hoge" . "hoge";
}
ができないって言えばよかったのに
915nobodyさん:2008/12/05(金) 14:22:10 ID:???
>>912
やってみたがJavaでは可能だがPHPじゃ無理なようだ
>>908の言うとおりコンストラクタでやるのがよさそう
916902:2008/12/05(金) 14:27:18 ID:AszAo48q
できないんですね…。
ありがとうございました。
917nobodyさん:2008/12/05(金) 18:44:56 ID:kogFg3iz
mail関数の第5引数のadditional_parametersって
-fスイッチのとき(Envelope Fromの設定)ぐらいしか使わないような気がするんですが、
経験上他に使ったことありますか?

何が良いたいかというと、mailのラップ関数を作っているんですが、
additional_parametersをenvelope_fromという引数にして、
その引数はメールアドレスだけ受け取るというようにしようかなと悩んでいるのです。
つまり、"[email protected]"と受け取らないで、
"[email protected]"と簡潔にメールアドレスだけ受け取るようにしようかと迷っています。
918nobodyさん:2008/12/05(金) 19:11:41 ID:nX6TiXRu
おい人力検索ボランティアども俺様の質問に答えろやクソがっ!
919nobodyさん:2008/12/05(金) 19:29:03 ID:???
>>918
答えてほしかったら質問してみろやw。
920nobodyさん:2008/12/05(金) 22:42:21 ID:Ovdffo4F
magpieでrssを取得したいのですが、実行してみたところ何にも出力されません。
http://boon.s355.xrea.com/magpierss/nullx.php

コードは
http://boon.s355.xrea.com/magpierss/test.txt
ですが、何が原因でしょうか?
921nobodyさん:2008/12/05(金) 23:02:57 ID:???
どこで止まってるかくらい切り分けてから質問しろ
922nobodyさん:2008/12/05(金) 23:27:21 ID:???
全自動デバッガか何かと勘違いされてるな
923nobodyさん:2008/12/05(金) 23:43:05 ID:???
何かを表示するプログラムには見えなかったけど、気のせい?
配列のキーって0から始まるのがデフォルトだよね。
表示するところ、forをやめてforeachで作り直したらどうかね。
924nobodyさん:2008/12/05(金) 23:44:17 ID:???
mktime(date(G), date(i), date(s), date("m"), date("d")-7, date("Y"));
なんじゃこりゃ
925nobodyさん:2008/12/05(金) 23:45:24 ID:???
↑あぁ、うそ。気にしないでww
926nobodyさん:2008/12/05(金) 23:46:18 ID:???
あぁ、ごめ、誤爆。923のことね
927nobodyさん:2008/12/05(金) 23:46:42 ID:???
誤爆・・・?
928nobodyさん:2008/12/05(金) 23:49:13 ID:Ovdffo4F
ttp://ameblo.jp/yamasita-94nsr/entry-10018566158.html
これから、コピペしたんですが・・
929nobodyさん:2008/12/05(金) 23:50:07 ID:???
だから?
930nobodyさん:2008/12/05(金) 23:52:19 ID:???
これ、セットしてあるRSS用URLがRSS返してないだけじゃないの?
931nobodyさん:2008/12/06(土) 00:07:55 ID:???
つうか丸投げすんなよ
他人が作ったスクリプトが使えませんって製作者に聞け
自分で作ろうとする意思がないならそもそもスレ違いだろ
932nobodyさん:2008/12/06(土) 00:13:01 ID:8p/zyVJf
>>930
http://dailynews.yahoo.co.jp/fc/rss.xml
にしてみたんですが、やっぱりダメです。。
933nobodyさん:2008/12/06(土) 00:16:52 ID:???
だから切り分け位しろと。
どんだけ初心者なんだよ

適当にdie('OK');を入れてどこまで実行出来てるかくらい確認しろ。
934nobodyさん:2008/12/06(土) 00:18:01 ID:???
>>932
なんで921はシカトなの?
935nobodyさん:2008/12/06(土) 03:49:04 ID:???
これが本当のコピペにマジレスだなw
936nobodyさん:2008/12/06(土) 07:21:02 ID:???
恐ろしいことに気付いてしまった

htdocs以下のディレクトリにあるファイルしか
表示できない、とマニュアルに書いてあるが、

<?php
$fh=fopen("C:/CONFIG.SYS","r");
$a=fgets($fh);
print $a;
?>

とかってやれば、ファイルのフルパスさえわかっていれば、
ハードディスクの中の、すべてのファイルに
アクセスできるではないか。
937nobodyさん:2008/12/06(土) 08:06:24 ID:???
※下らねぇ質問をID出さないで書き込むスレではありません。
938nobodyさん:2008/12/06(土) 08:08:21 ID:???
>>936
それは、質問ですらない
939nobodyさん:2008/12/06(土) 13:13:44 ID:???
おいはやく質問しろよザコども
940nobodyさん:2008/12/06(土) 13:14:41 ID:???
941nobodyさん:2008/12/06(土) 13:20:21 ID:MnyC9XAb
配列のcurrent()ですが、ループ処理をする時によく使いますけど、
指定したキーまたは検索した値を元に、currentの位置を移動・指定することはできますか?
942nobodyさん:2008/12/06(土) 13:32:56 ID:???
ここみればできるかできないか判断できますね
ttp://www.phppro.jp/phpmanual/php/function.current.html
943nobodyさん:2008/12/06(土) 13:58:39 ID:MnyC9XAb
ありがとうございます。
そこを見る限り、できるようには書いていないですよね。
ただ、他にポインタを移動する方法がないとまでは
書いてないように思ったんですが?
944nobodyさん:2008/12/06(土) 13:59:33 ID:???
currentの位置を移動・指定って何だよ
945nobodyさん:2008/12/06(土) 14:04:17 ID:MnyC9XAb
たとえば、
$a = array("apple", "grape", "orange", "pear");
ってあったときに、
next($a);ってすれば、
$a->current();で"grape"を取得できますが、
いきなり、orangeや$a[3]に移動したい。
で、3やorangeに移動したことを知らない他のメソッドから$a->current()で
$a[3]と同じ値を取得したいのです。
946nobodyさん:2008/12/06(土) 14:06:16 ID:???
>>945
$a = array("apple", "grape", "orange", "pear");
$a->current();
Fatal error: Call to a member function current() on a non-object
と出ます
947nobodyさん:2008/12/06(土) 14:06:46 ID:MnyC9XAb
おっと、すんまそ、ArrayObjectでやってたから、
current($a)ですね。ありがとう。
948nobodyさん:2008/12/06(土) 14:26:03 ID:MnyC9XAb
質問をちょっともう少しわかりやすくしますと、ArrayObjectだと、

$a = array("apple", "grape", "orange", "pear");
$ao = new ArrayObject($a);
$ite = $ao->getIterator();
$ite->seek(3);
echo $ite->current(); // pearが出力される

同じことが配列でできますでしょうか?
あと、できれば、array_searchなどの値検索でポインタを移動したいんです。
949nobodyさん:2008/12/06(土) 15:03:26 ID:h6rmosdR
糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ
糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ
死死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
その老いたすがた気持ち悪すぎ白髪しわ気持ち悪すぎ
その老いたすがた気持ち悪すぎ白髪しわ気持ち悪すぎ
その老いたすがた気持ち悪すぎ白髪しわ気持ち悪すぎ
その老いたすがた気持ち悪すぎ白髪しわ気持ち悪すぎ
そのみにくい姿で世の中に出てくんなよ
死ぬとき このレスの事思い出してくれよ
しわしわしわしわしわしわしわしわしわしわしわしわ
ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・)
ちょっとは落ち込めよ そのみにくい姿で世の中に出てくんなよ
何回も言わすな死ねよ ボケ
950nobodyさん:2008/12/06(土) 15:08:20 ID:F3HkPIHB
PHPの勉強として作ってたDBへの登録と検索を行うアプリを
ttp://d.hatena.ne.jp/toku-hiro/20061129
の記事を参考に、オブジェクト指向でMVCっぽく書き直してみたんですけども
記事のように

Controllerでユーザからのアクションを判定

各処理用のクラスが定義されたphpファイルを読み込む

インスタンスを生成し、クラス内のコンストラクタで処理を行う
(Controllerからメソッドは呼び出さない。
コンストラクタは$this->関数 でメソッドを呼び出し、実際の処理は行わない)

処理した結果をpublicのプロパティに保存

Controllerがそのプロパティをテンプレートエンジンに投げる

テンプレートエンジンが整形を行って画面表示を行う

っていう方法は、正しいOOP+MVCのやり方なのでしょうか?
サンプルソースがあまり見つけられなくて上の記事が正攻法なのか判断できないもので。
951nobodyさん:2008/12/06(土) 15:30:23 ID:???
>>948
できる
952nobodyさん:2008/12/06(土) 15:44:18 ID:MnyC9XAb
>>951
ありがとう
やり方をおしえてください!
953nobodyさん:2008/12/06(土) 15:58:54 ID:???
>>950
「正しい」やり方なんてないので自分のやりたいことに適したやり方でやるべし
954nobodyさん:2008/12/06(土) 19:46:53 ID:yGRUMO6W
>>948
できる
955nobodyさん:2008/12/06(土) 21:12:24 ID:MnyC9XAb
>>954
ありがとう
やり方をおしえてください!
956nobodyさん:2008/12/06(土) 21:12:56 ID:???
少しは自分の頭使って考えろ乞食
957nobodyさん:2008/12/06(土) 21:38:56 ID:MnyC9XAb
>>956
考えます orz.
958nobodyさん:2008/12/06(土) 21:40:57 ID:MnyC9XAb
考えてみたら、ArrayObjectじゃなくて、ArrayIteratorを使った方が早いですね。
$a = array("apple", "grape", "orange", "pear");
$ai = new ArrayIterator($a);
$ai->seek(2);
echo $ai->current(); // orangeが出力される
959nobodyさん:2008/12/06(土) 21:56:52 ID:???
>>958
おお、確かに948より1行も少なくなってるね、素晴らしい!
960nobodyさん:2008/12/06(土) 22:00:05 ID:???
おまえらいいこと考えたぞ

http://www.1x1.jp/blog/2008/06/php_framework_function_count.html

ここのページに、「よく使われる関数」を、頻度順に、上から20個
リストしてあるので、よく使われる順に、初心者に教える
ページを作れば喜ばれるぞ

1. 16645 array
2. 1519 in_array
3. 1151 isset
4. 889 empty
5. 486 is_array
6. 454 str_replace
7. 378 unset
8. 314 strpos
9. 302 array_merge
10. 270 count
11. 241 sprintf
12. 235 preg_quote
13. 169 define
14. 165 date
15. 148 file_exists
16. 148 preg_match
17. 146 strtolower
18. 144 explode
19. 134 extract
20. 134 substr
961nobodyさん:2008/12/06(土) 22:04:24 ID:???
arrayって関数っていうか言語構造だし
962nobodyさん:2008/12/07(日) 00:37:09 ID:yd2i9hRL
プロキシ規制スクリプトを作りたいのですが
2chの公開プロキシリストってどこにあるかご存知の方いらっしゃいましたら教えてください
963nobodyさん:2008/12/07(日) 00:58:16 ID:???
スレ違いもここまでくると気持ちがいい
964nobodyさん:2008/12/07(日) 02:28:04 ID:???
【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
ttp://pc11.2ch.net/test/read.cgi/php/1221471692/l50


>>316-342
意見頼む
965nobodyさん:2008/12/07(日) 02:34:11 ID:???
>>961
array()は関数
966nobodyさん:2008/12/07(日) 02:40:15 ID:???
かわいいは正義
967nobodyさん:2008/12/07(日) 05:41:46 ID:???
>>965
関数じゃね?
http://php.net/manual/ja/function.array.php
function.arrayってファイル名だし
引数とって配列を返すんだから
968nobodyさん:2008/12/07(日) 05:46:38 ID:???
注意: array()は、実際にはリテラル配列を表現するための 言語構成要素であり、通常の関数ではありません。
969nobodyさん:2008/12/07(日) 05:54:55 ID:???
>>965涙目w
970nobodyさん:2008/12/07(日) 06:03:44 ID:???
通常じゃない関数なんだろw
971nobodyさん:2008/12/07(日) 06:36:31 ID:???
ソフトウェア板のfirefoxスレで聞いたほうがいいんじゃない?
ていうか、URL貼らないとわからないよ http://search.net-newbie.com/php/ か?
普通単語検索は ctrl+Fだと思うけどとにかく説明不足
972971:2008/12/07(日) 06:37:59 ID:???
クソ、リロードし忘れてスレ違いに亀レスしてた
バッキリ無視してくださいね
973nobodyさん:2008/12/07(日) 11:33:48 ID:TyvySTN3
まったくの初心者です
1から始まって 1 2 3 4 ・・・ と

一つずつ数字を足していくIDをつくりたいのですが、

$id = "1";
$id = "$tb++";

ではできませんでした。どうしたら上手くいくのでしょうか?
974nobodyさん:2008/12/07(日) 11:47:26 ID:???
$id = 1;
$id = $id+1;
975nobodyさん:2008/12/07(日) 11:48:18 ID:???
>>968
言語構造はちゃんと言語構造と書いてあるよ

ちなみにechoの注意
    注意: これは、関数ではなく言語構造のため、可変関数 を用いてコールすることはできません。
976nobodyさん:2008/12/07(日) 12:07:11 ID:???
>>963
ちょっと遊んでみるならこんなんもあり
function newID ()
{
static $lastid;
return ++$lastid;
}
$id1 = newID();
$id2 = newID();
977nobodyさん:2008/12/07(日) 12:23:37 ID:???
スレ違いなレス

963 名前:nobodyさん[sage] 投稿日:2008/12/07(日) 00:58:16 ID:???
スレ違いもここまでくると気持ちがいい
978nobodyさん:2008/12/07(日) 13:22:19 ID:???
>>975
結局arrayは関数なの?関数でないの?
979nobodyさん:2008/12/07(日) 13:34:34 ID:GLlaP0t9
phpbbとusebbはどっちがセキュリティが高いかおしえてください
980nobodyさん:2008/12/07(日) 13:57:58 ID:???
phpbb
981nobodyさん:2008/12/07(日) 14:32:05 ID:???
その根拠は?
982nobodyさん:2008/12/07(日) 14:56:41 ID:???
>>1
983nobodyさん:2008/12/07(日) 14:59:43 ID:???
あたし女だけど自信満々に>>1とかいう人って自分に自信がないと思うの
984nobodyさん:2008/12/07(日) 15:05:11 ID:???
ルールを守らない人間はルールにも守られない
985nobodyさん:2008/12/07(日) 15:08:54 ID:???
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
986nobodyさん:2008/12/07(日) 15:26:35 ID:???
>>978
関数
987nobodyさん:2008/12/07(日) 15:33:18 ID:???
>>986
なんで?
988nobodyさん:2008/12/07(日) 15:33:50 ID:???
>>985
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
989nobodyさん:2008/12/07(日) 15:39:15 ID:???
>>987
マニュアルに書いてあるから
ttp://www.php.net/manual/ja/ref.array.php
990nobodyさん:2008/12/07(日) 15:40:04 ID:???
>>989
例の文面は?
991nobodyさん:2008/12/07(日) 15:44:19 ID:???
通常の関数じゃないなら特別な関数なんだろ
992nobodyさん:2008/12/07(日) 15:53:15 ID:???
うるせーよ!arrayは関数なんだよ!
993nobodyさん:2008/12/07(日) 15:59:56 ID:???
プロシージャだろ
シス単p.157の922にあるぜ
994nobodyさん:2008/12/07(日) 16:01:13 ID:???
注意: array()は、実際にはリテラル配列を表現するための 言語構成要素であり、通常の関数ではありません。
Note: array() is a language construct used to represent literal arrays, and not a regular function.

通常の関数でないということが明示的に定義されてるだけで
特別な関数であるとは言っていない。
それだけで判断するのは早とちりであり間違い。
995nobodyさん:2008/12/07(日) 16:01:59 ID:???
何?そ
996nobodyさん:2008/12/07(日) 16:08:22 ID:???
配列関数のところで、配列を育成するとして一覧されており、
ヘルプのファイル名もfunction.array.phpとなっている。
関数でなければ、そのような分類にはならないでしょう。
というのは状況証拠。

言語構成要素が関数であってはならないということはない。
無論「regular」ではないわけだが、言語構成要素である
イレギュラーな関数という可能性が高い。

結局、関数であるという傍証はあるが、関数でないという反証はない。
だから、関数だ!と言い切るつもりはないが。
997nobodyさん:2008/12/07(日) 16:08:30 ID:???
>>994
関数じゃないならわざわざ「通常の」なんてつける必要ないだろ
998nobodyさん:2008/12/07(日) 16:12:07 ID:???
そもそもhoge()の形で呼び出してる時点で関数
999nobodyさん:2008/12/07(日) 16:14:12 ID:???
そもそも関数だろうがなんだろうが貴様らには関係ないことだ
1000nobodyさん:2008/12/07(日) 16:15:37 ID:???
>>1-1000は全部俺の自演
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。