トップページphp
1001コメント348KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2008/11/13(木) 04:15:32ID:???
質問者はまず>>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等)・フレームワークは各該当スレへ
0002nobodyさん2008/11/13(木) 04:16:37ID:???
■過去ログ
【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/
0003nobodyさん2008/11/13(木) 04:17:28ID:???
関連リンク
■本家マニュアル   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/
0004nobodyさん2008/11/13(木) 04:18:00ID:???
【簡易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プログラムとして実行された結果になる。
0005nobodyさん2008/11/13(木) 04:18:32ID:???
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に保存?
 → 好きにしてください
0006nobodyさん2008/11/13(木) 04:22:52ID:???
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 .')';
}
000762008/11/13(木) 04:24:01ID:???
使い方

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

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

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

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

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

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

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

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

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

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

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

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

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

ってサイトに書いてあるんですが、そうなの?
0029nobodyさん2008/11/13(木) 16:51:29ID:???
>>28
わざわざDocumentRoot以下に置く理由もないでしょ。
危険の芽はつんでおくに限る。
0030nobodyさん2008/11/13(木) 17:12:56ID: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]");
?>

0031nobodyさん2008/11/13(木) 17:16:44ID:???
>>30
下手のこと考えるより、array_rand
0032nobodyさん2008/11/13(木) 17:28:24ID: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つづつ抽出してくれるという事ですか?



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

ttp://okwave.jp/qa4419102.html

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

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

長年やってるプロでも
こんなバカなミスやるんだな。
0035nobodyさん2008/11/13(木) 17:55:33ID:???
賠償まだー?
0036nobodyさん2008/11/13(木) 18:46:21ID:???
賠償はでないんじゃないかな?
本では結構かっこいいこといっていたし、
近藤さん好きだったんだけどな。
残念です。
0037nobodyさん2008/11/13(木) 19:27:04ID:???
お前らがちゃんと
パーミッションの設定について
教えないせい
0038nobodyさん2008/11/13(木) 20:15:10ID: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のみ真っ白になるらしいです。
(数人から連絡を受けたので、どうも見えるほうが少数派のようです)

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

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

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

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

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

0045nobodyさん2008/11/13(木) 20:43:16ID:???
外部アプリ使ってんでしょ
0046たまちゃん2008/11/13(木) 20:47:04ID:rj1jn7su
>>42
外部アプリ…
ってことは、aspxや、PHPだけではこのツールを作成することは不可能なのですか?
そのアプリは、どんなアプリでしょうか?
Windowsアプリケーションexeは、携帯には対応してません。
0047nobodyさん2008/11/13(木) 20:49:23ID:???
別に可能ではあるんじゃない?
あとWindowsアプリケーションexeが携帯に対応してないってのが良く分からないけど
0048382008/11/13(木) 21:16:44ID:???
>>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

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

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

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

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

そこで質問ですが、どちらの方法の方がより安全で有効なのでしょうか?
前者であれば手間もかからず、負荷も少ないと思いますし、
後者であればセッション発行時のIPアドレスやUSER AGENTを保存すれば
セッションハイジャックやなりすましは防止出来るのではないかと思っています。
0056272008/11/13(木) 23:43:40ID: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)しか返ってきません。
やっぱりうまくいかないようです。
0057nobodyさん2008/11/14(金) 00:06:41ID:???
>>50-52
なんぞそれ?
0058nobodyさん2008/11/14(金) 06:44:08ID:LBY0wnii
アパッチで、ファイルの所有者が、
アパッチの場合と、nobodyの場合と、yamadaの場合と、
3種類あるようなんだが、これってどこで決まってるの?
0059nobodyさん2008/11/14(金) 07:04:36ID:???
>>56
普通1はtrueなんだ
0060nobodyさん2008/11/14(金) 09:07:18ID:???
>>56
print is_resource($process);
こんな事するより
var_dump($process);か
echo var_export($process,true);
0061nobodyさん2008/11/14(金) 12:43:13ID:???
>>58
PHPのスクリプトでtouch()とかで作られたファイルはアパッチになるよ。
nobodyやyamadaは知らん。俺yamadaになんてなった事ないから。
0062nobodyさん2008/11/14(金) 15:00:32ID:???
「nobody」も「アパッチ」も同じこと
Apacheの実効ユーザで作成されてるってこと、PHPがApacheモジュールで動いてるからな
suExec環境ならスクリプトの所有者で生成される、それがyamadaなんじゃね?
0063nobodyさん2008/11/15(土) 06:36:19ID:oW2TcjIK
http://www.standpower.com/php_form.html
ここの、
input.htmlと、output.phpの2つのファイルをドコのフォルダに置けば入力した名前が表示されるのでしょうか?
input.htmlファイルをクリックしてinput.htmlを表示させ、「太郎」と入力まではうまく行くのですが、
クリックして、output.phpを表示させると、ソースコードが表示されます。 いったいどうしたらいいのでしょうか?
0064nobodyさん2008/11/15(土) 06:39:47ID:oW2TcjIK
ちなみに、
【OS名】winXP
【PHPのバージョン】php5.26
です。
0065nobodyさん2008/11/15(土) 06:54:07ID:oW2TcjIK
つーか、
<form action="output.php" method="post">
この部分を、
<form action="http://localhost/php/output.php" method="post">
にしたらうまくいきました。
これは正しいやり方だったのでしょうか?
0066nobodyさん2008/11/15(土) 07:23:37ID:???
>>65
そんな小細工しなくても
素のままで普通に動いたけど。

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

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

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

<form action="input.php"

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

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

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

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

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

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

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

と改行無しになってしまいます。パイプで改行を得るにはどうすればよろしいですか?
0074nobodyさん2008/11/15(土) 12:44:33ID:???
>>73
パイプカットした方がいいよ
0075nobodyさん2008/11/15(土) 12:55:15ID:???
【脆弱性】GoogleのログインページにXSSの脆弱性 ユーザー情報が盗まれる恐れも(08/11/13)
http://pc11.2ch.net/test/read.cgi/pcnews/1226550324/
0076nobodyさん2008/11/15(土) 17:15:47ID:???
基本的にXSS対策って、htmlspecialcharsすればいいよね?
0077nobodyさん2008/11/15(土) 17:32:56ID:???
改行の違いは?
0078nobodyさん2008/11/15(土) 17:33:18ID: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しか返ってきません。
なぜなのでしょうか?
0079nobodyさん2008/11/15(土) 17:40:18ID:iYDkBqcl
変数定義する時
$var=(int)$var;
って横にデータ型の名前入れたカッコってこれどういう意味?
0080nobodyさん2008/11/15(土) 17:43:58ID:???
型キャスト
0081nobodyさん2008/11/15(土) 17:46:19ID:???
>>80
サンクス
0082632008/11/15(土) 18:03:29ID:oW2TcjIK
>>72
> ブラウザにhttp://localhost/root/input.htmlと入れるのが正解
> (ちなみにrootはアパッチのconfファイルで設定した所ね)
これで解決しました、どうもありがとうございました。

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

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

などの順番で、上から順に探していく。
そして、そのファイルがあったら、表示する。
0087nobodyさん2008/11/15(土) 18:56:59ID:???
ちなみに、グーグルのボットもそのような動作をする。
つまり、「ありそうな名前のファイル」で、手当たり次第に
アクセスをかけて、ファイルがあったら勝手にキャッシュされてしまう。
0088nobodyさん2008/11/15(土) 19:17:45ID: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をインクルードしています。

解決策がある人いませんか?
0089nobodyさん2008/11/15(土) 19:19:01ID:???
どうせ2回実行してるんだろ
0090632008/11/15(土) 19:23:33ID: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 .」の記述にはどういう意味があるのでしょうか?
0091nobodyさん2008/11/15(土) 19:24:01ID:???
定数
0092nobodyさん2008/11/15(土) 19:31:36ID:???
>>90
最初にrequireしているconf.inc.phpの中をよく見ればいいよ
phpの初心者本くらいは手元においておいた方がいいと思うぞ
0093632008/11/15(土) 19:33:01ID:oW2TcjIK
>>91
ってことは、ファイルfilectl.class.phpをP2_LIB_DIRに置き換える、ということですか?
その辺のことはマニュアルのどこに書いてあるのでしょうか?
↓には書いてありません。

http://php.benscom.com/manual/ja/function.require-once.php
0094nobodyさん2008/11/15(土) 19:35:24ID:???
死んでくれ
0095nobodyさん2008/11/15(土) 19:37:25ID:???
>87
初めて知った。
クラックツールとか脆弱性監査ツール紛いの挙動だなw
0096nobodyさん2008/11/15(土) 19:40:39ID:???
>93
conf.inc.phpをP2_LIB_DIRで検索。
そこで使われてる関数をマニュアルで調べる。
0097632008/11/15(土) 19:46:34ID:oW2TcjIK
>>96
はい、やってみました。 そうすると、
require_once P2_LIB_DIR . DIRECTORY_SEPARATOR . 'p2util.class.php';
というのが出て来ました。
これはどういう意味なのでしょうか?
0098nobodyさん2008/11/15(土) 19:47:20ID:???
頼むからリファレンスくらい目を通してからプログラミングしてくれ
0099632008/11/15(土) 19:49:12ID: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';
0100632008/11/15(土) 19:51:57ID:oW2TcjIK
本は、はじめてのPHPプログラミング基礎編と、PHP5リファレンス&逆引きユーザー便利帳というのを持っています。
0101nobodyさん2008/11/15(土) 19:52:27ID:???
それを読んでからまた来てくれ
0102nobodyさん2008/11/15(土) 19:54:43ID:???
>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'を「つなげたもの」はひとつの文字列だ。
0103nobodyさん2008/11/15(土) 19:56:20ID:???
>>99
もう一度言う

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

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

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

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

に設定変更してapacheを再起動してみそ
0115nobodyさん2008/11/16(日) 00:55:29ID:???
ハンガリアン規約ってどうなんだろうね。
0116632008/11/16(日) 05:25:49ID:???
>>114
どうもありがとうございました。
0117632008/11/16(日) 05:55:48ID:TeIkZlvH
Q:DIRECTORY_SEPARATORとは何ですか?
0118632008/11/16(日) 06:06:46ID:TeIkZlvH
Q:DIRECTORY_SEPARATORとは何ですか?
A:
ディレクトリの区切り文字は、Windowsで「\」ですが、Linuxなどでは「/」が使用されています。
つまり、
"dirname" . DIRECTORY_SEPARATOR . "filename";
と書いた場合、
Windows環境では、dirname\filenameとなり、
Linux環境では、dirname/filenameとなるのです。
で、いいですか?
0119632008/11/16(日) 06:43:03ID: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__)はインクルードされてるファイルの置かれているフォルダ名を返します。
で、いいですか?
0120nobodyさん2008/11/16(日) 07:00:02ID:???
あのさ、
気持ち悪いからマニュアルは
http://jp.php.net/manual/ja/
http://jp2.php.net/manual/ja/
のどっちかを参照してくんない?
0121632008/11/16(日) 07:09:41ID:TeIkZlvH
<html><body><?php
$sWeek=date("l");
$sDisp="今日は英語で言うと".$sWeek."よ!";
print $sDisp;
?></body></html>

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

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

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

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

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

$_login->authorize(); // ユーザ認証
0128nobodyさん2008/11/16(日) 10:04:55ID:???
>>126
やってれば__FILE__が定数だなってことは自然とわかってくるわけで
長くやってるやつにそんな理由を聞いても返答に困るだけ
このスレをROMってるだけで相当力つくから独学でやるならROMってるといいよ
そのうちなんとなくわかってくるから
0129nobodyさん2008/11/16(日) 10:21:49ID:???
PHP初心者勉強会に参加しろよw
0130nobodyさん2008/11/16(日) 11:19:20ID:???
昨日チョベリバな質問をした者です。
カウンターが+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>
となるように修正し解決しました。
0131nobodyさん2008/11/16(日) 11:53:15ID:qwIcjEj2
>>ID:TeIkZlvH
・全部よむ
・検索する
どちらでもたどり着けます。検索する方がすぐ見つけられるけど、
一度全部読んでみるといいね!
検索の仕方がわからないんなら、教えてあげるからまた質問してね。

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

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

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

おお、有り難うございます。 
では、フォルダの中に、サブフォルダもある。
その中に沢山の.phpファイルがある。
その多数のファイルの中から、authorizeの文字列を探したい。
この場合、どうすればいいのでしょうか?
0139nobodyさん2008/11/16(日) 18:33:08ID:???
>>138
grepツールを使う。
具体的にどういうソフトを使うかは環境次第。
0140632008/11/16(日) 18:43:46ID:TeIkZlvH
>>139
そうですか、有り難うございます。
0141nobodyさん2008/11/16(日) 20:50:14ID:???
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で定期的にやってくれるように問題可決できるんでしょうか?教えてください。

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

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

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

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

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

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

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


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

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

書き込みしている途中で
書き込み処理が完了していない状態で
誰かが同時に読み込みすると、中途半端な
書き込み途中のデーターを読み込んでしまって、
それで壊れるの?
0163632008/11/17(月) 04:19:43ID:VEc9l7C0
そうだよ
0164nobodyさん2008/11/17(月) 05:31:37ID:???
排他制御とかデッドロックとかでググってみ
01651412008/11/18(火) 01:56:19ID: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関数かなんかでメールしたってください
01661412008/11/18(火) 01:58:29ID: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;
}
0167nobodyさん2008/11/18(火) 02:13:47ID:???
行数で取得するのは危険ではないか
DOM使おう
0168nobodyさん2008/11/18(火) 02:22:11ID:???
手っ取り早さ重視か。
fopenでhttpストリーム開く場合って、Proxyかましたい時とかどうすんだろ。
0169nobodyさん2008/11/18(火) 02:39:27ID:???
fsockopenかpear使えば?
01701412008/11/18(火) 02:40:15ID:V5bkwf3L
>>167
危険性ってなんですか?
DOMですか?勉強してきます

>>168
さぁ\(^o^)/
0171nobodyさん2008/11/18(火) 07:04:09ID:WbAApVvS
「DOMを使う」ってなんだ?
PHPプログラマに関係あることなのか?
0172nobodyさん2008/11/18(火) 08:31:03ID:???
お前は何を言ってるんだ
0173nobodyさん2008/11/18(火) 09:42:35ID:???
XML専門のプログラマでも呼ぶのかw
0174nobodyさん2008/11/18(火) 09:59:19ID:???
お前は何を言ってるんだ
0175nobodyさん2008/11/18(火) 10:21:28ID: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>
01762008/11/18(火) 10:29:16ID:ueNxgoBD
PHPを使わずにWEBブラウザーに直接アドレス入れても同じエラーが返ってきます。
0177nobodyさん2008/11/18(火) 10:42:24ID:???
じゃ間違ってるんだろ
APIの仕様を確認してこい
01781752008/11/18(火) 11:41:14ID:ueNxgoBD
もちろん何回も確認して、他のサイトもいろいろ調べました。
自分で調べもしないで質問するのは失礼だと思いますし。
0179nobodyさん2008/11/18(火) 11:53:06ID:???
>>176の時点でPHP関係ないのでは?
0180nobodyさん2008/11/18(火) 11:53:09ID:???
>>175
まずエラーコードが何かどういう意味なのか調べろよ

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

これでもエラーになるならエラーになるID晒すか
問合せしないと解んないと思うぞ
01811752008/11/18(火) 11:54:01ID:ueNxgoBD
確かに関係ないです............
01821752008/11/18(火) 12:02:40ID:ueNxgoBD
>> 180
> developer profileで登録されていない。
というのは私も見ましたがデベロッハーIDを取得している時点で
「developer profileで登録されていない」ということはないと思っていますが
どうでしょうか。何回IDを確認してもあってますし、新しいIDを取得しても同じです。
意味がなくてもUTF-8にエンコードしたものを使用したりurlencode()したり、いろいろやってみましたが
やっぱりだめです。
0183nobodyさん2008/11/18(火) 12:39:05ID:???
情報を登録してないから有効化されてないんじゃない?
もしくは使いすぎて無効化されてるとか
0184nobodyさん2008/11/18(火) 12:45:14ID:???
多分だけど古いAPI使ってるからじぇねーの
本来のサイト見ずに誰かが書いてる解説サイトみてたりしない?
01851752008/11/18(火) 12:49:13ID:ueNxgoBD
>>183
最初私もそう思って、次の日やっみましたが、だめでした。
まだ数十回しかエラーみてません。大丈夫だと思います。
01861752008/11/18(火) 12:55:52ID:ueNxgoBD
>>184
それは思い当たるふしがあります。
それかな。
書店で立ち読みしたり、いろんなサイト参考にしました。
肝心なグーグルにはRESTの仕方がどこにあるかわからなかったんです。
http://code.google.com/intl/ja/apis/youtube/developers_guide_protocol.html#Developer_Key
このへんを普段は見てるんですが、RESTのやり方出てるところご存じないですか?
0187nobodyさん2008/11/18(火) 12:58:32ID:???
>>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が何か理解しろよ
0188nobodyさん2008/11/18(火) 13:01:25ID:???
リンクして表示してるphp書いてるってことは
動画の取得と検索したいんだろ?
なんで認証セクション読んでるんだよ
0189nobodyさん2008/11/18(火) 13:08:22ID:???
ようつべapiの仕様って意外と丁寧に書いてあるんだな
なんでわざわざ古いほう使うの?なにか問題があるのか?
0190nobodyさん2008/11/18(火) 13:19:11ID:???
古いのを使いたいんじゃなくて
APIのページを読んでないから新しいのを知らない
マニュアル読まないタイプ
0191nobodyさん2008/11/18(火) 13:31:28ID: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が付加された状態になります。
作ったリスト通りに表示させたいのですが方法はありますか?
0192nobodyさん2008/11/18(火) 13:37:00ID:???
リストをincludeで読み込むって
PHPのソースコードじゃないただのテキストをincludeしてるのか?
簡略化しないでちゃんとしたソースを出さないとエスパーすぎて答えようがない
0193nobodyさん2008/11/18(火) 13:45:17ID:A89iT03e
>>192
つまりそういうことです。
言葉足らずですみません。

ソースと言っても

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

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

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

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

(GETで送られたデーターも受けてしまう等)
0202nobodyさん2008/11/18(火) 16:36:39ID: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);
?>
0203nobodyさん2008/11/18(火) 16:45:20ID:WbAApVvS
phpの中で

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

preg_match("/<!--topentry-->(.*?)<!--\/topentry-->/",$data,$match);
0225nobodyさん2008/11/19(水) 02:14:09ID:???
<?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を使った正規表現処理" }
0226nobodyさん2008/11/19(水) 02:20:13ID:???
「<!--topentry-->PHPを使った正規表現処理<!--/topentry-->」は正しく抽出されますが、

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

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

上げ忘れちゃったのでもっかい。
0232nobodyさん2008/11/19(水) 04:30:11ID:???
ソース見てみれば?
0233nobodyさん2008/11/19(水) 06:38:29ID:???
>>226
ヒント:パターン修飾子
http://jp.php.net/manual/ja/reference.pcre.pattern.modifiers.php
0234nobodyさん2008/11/19(水) 08:18:27ID:???
頭が悪い人間が使いやすい言い回しや
言い間違いが目立つならそいつの間違いを
最初に考える。

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

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

数学の試験問題みたいなフォーマルな
記述が出来ている質問ならそいつは
馬鹿じゃない可能性が高いんでバグが
あるのかもねと調べてみる。
0235nobodyさん2008/11/19(水) 08:20:23ID:???
日本語でおk
0236nobodyさん2008/11/19(水) 08:47:03ID:???
http://www.on-sky.net/~hs/index.cgi?date=20070724

これって危険?
0237nobodyさん2008/11/19(水) 08:56:35ID:???
>>219=>>234
こういう馬鹿なことを書くやつは文字通り馬鹿
0238nobodyさん2008/11/19(水) 09:01:44ID:???
>>231
多分、memory_limit
エラーログ見てみ
0239nobodyさん2008/11/19(水) 11:32:57ID:???
>>238
その通りでした。ありがとうございました。
0240nobodyさん2008/11/19(水) 14:25:02ID:???
俺は精神の筋力がまるでないため、強いストレスを
感じると死体が往来を徘徊する幻覚が見えて、全く
無関係の人間をリビングデッドだと判断して物理的に
攻撃してしまうため、その症状を薬で抑えている。

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

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

「ボタンが押されたら」

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

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

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

ここのサイトなんだが、

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

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

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

じゃあ、それ専用のメール送信フォームをphpで書くところからだな
0256nobodyさん2008/11/19(水) 21:30:21ID:???
最後のhiddenわらた
XXSし放題じゃん
0257nobodyさん2008/11/19(水) 21:35:56ID:???
>>256
XSSした所でそれをそのまま他の人に表示しなければ
問題ないからあんな所気にする必要無い
0258nobodyさん2008/11/19(水) 21:39:17ID:???
GETでパラメータ付けたURL踏ませたら?
0259nobodyさん2008/11/19(水) 21:40:47ID:???
誰に踏ませるの?
自分で踏んで自爆か?
0260nobodyさん2008/11/20(木) 00:15:53ID: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言語が間違ってるんだと思います
0261nobodyさん2008/11/20(木) 00:39:20ID:???
質問

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

って処理で、issetで&&で

if(A && B) {
○○
}

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

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

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

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


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

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

unexpected ';'

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

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


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

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

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


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

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

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

フリーで探したんですけどなくて・・・
0280nobodyさん2008/11/20(木) 04:00:01ID:???
それで日付が取れるだろ?
んで31個文章作るだろ?
あとはそれ同士をくっつけて取ってくればおk
0281nobodyさん2008/11/20(木) 05:25:19ID:???
date()から日付けを文字列で返してそれを違う文配列のキーにすればおk
0282nobodyさん2008/11/20(木) 05:34:31ID:???
ID:bw3b61Qh
ID:LBY0wnii
ID:uO1yzOV4
ID:WbAApVvS
ID:rh/HC40w
ID:HLYnX99e
0283nobodyさん2008/11/20(木) 05:36:52ID: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日)でる処理で大丈夫ですか?
よろしくお願いします。

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

<?php
$today = getdate();

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

?>

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

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

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

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

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

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

$a= "";

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


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

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

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


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

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

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

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

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

構文チェックしたら

No syntax errors detected

になるんだけど、なんで??
無料のエディター使ってるから?
0318nobodyさん2008/11/20(木) 18:02:44ID:???
>>307
その通り
ファイルの存在チェックとincludeできるかの評価を
一緒の式ですべきでない
もしやるとしたら
if (file_exists($inc_file)) {
if (include($inc_file)) {
}
}
どうみても冗長だけど
0319nobodyさん2008/11/20(木) 18:04:30ID:???
無料のエディタ使うとエラーになるとかwwww
03203142008/11/20(木) 18:06:04ID:???
>>316
ってまぁ>>289で既に書かれてたから蛇足もいいところだけど
>>318
それだったら波括弧いらなくね?
てかifの中に入れる場合の議論をする必要性がわからないw
「ifだったら>>291は動作しない」→「仮にifに入れても動作は同じ」っていう仮定の話だったのにw
0321nobodyさん2008/11/20(木) 18:06:44ID:AwsGLaDA
>>318
「すべきでない」理由とはなんですか?
0322nobodyさん2008/11/20(木) 18:07:47ID:???
>>307
0323nobodyさん2008/11/20(木) 18:07:52ID: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はちゃんと判別できるの?
0324nobodyさん2008/11/20(木) 18:08:42ID:???
>>323
自分で表示してみればいいじゃん
0325nobodyさん2008/11/20(木) 18:14:43ID: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'];//プリント
?>
------------------------
↑これで、画面になんも表示されなくなった。
ということは、ボタンをプッシュする行為では、
変数には、なんの値もセットされない、という
理解でいいのか?
0326nobodyさん2008/11/20(木) 18:15:17ID:???
よくない
0327nobodyさん2008/11/20(木) 18:18:31ID:HLYnX99e
そうだよねー

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

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

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

推測するしかないけど設計上の問題じゃない?
0338nobodyさん2008/11/20(木) 18:48:54ID: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」って表示されるようになった。
しかし、変数の初期化ができないではないか?
変数の初期化をすると、画面に何も表示されなくなってしまう。

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

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

無視できる人は無視すればいいです。私も無視しています。
0347nobodyさん2008/11/20(木) 19:01:58ID:???
初期化してるからでは?
0348nobodyさん2008/11/20(木) 19:02:36ID:???
>>346
林先生に相談した方がいいんじゃ
0349nobodyさん2008/11/20(木) 19:03:32ID: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
とう項目があります。
これは関係ないんでしょうか?

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

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

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

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

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

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

仕事自体も完全請負もあれば
一部の機能単位での開発や開発補助というものもある
開発補助の場合はできたら相手に送って
何かしらの問題がでれば対応という風になったりする訳だが
そういう事も考えられんのんだろ?
0375nobodyさん2008/11/20(木) 20:49:04ID:???
たまにいるんですよ
俺は仕事でPHPやってるんだ!ってウソでもアピールして
自分ペースに有利に話進めようとするのが
0376nobodyさん2008/11/20(木) 20:58:04ID:???
たまにいるんですよ
自分で考えられない事を突っ込まれてウソを言ってる!ってアピールして
自分ペースに有利に話進めようとするのが
0377nobodyさん2008/11/20(木) 21:04:31ID:???
必死すぎてフイタw
0378nobodyさん2008/11/20(木) 21:14:48ID:???
必死すぎてフイタw
0379nobodyさん2008/11/20(木) 22:03:29ID:???
痛いとこを突かれて猿真似に走ったか
雑魚め
0380nobodyさん2008/11/20(木) 22:23:23ID:L838VyLV
ベジータみたいなのがいるな
0381nobodyさん2008/11/20(木) 22:35:59ID:???
痛いとこを突かれて猿真似に走ったか
雑魚め
0382nobodyさん2008/11/20(木) 22:55:38ID: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だけないとかあるんでしょうか?

よろしくお願いします。

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

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

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

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

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

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

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

何が原因でしょうか。
ご教授をよろしくお願いいたします。
0404nobodyさん2008/11/21(金) 02:06:07ID:???
>>403
>>1
http://www.google.com/search?q=%E3%81%94%E6%95%99%E6%8E%88
0405nobodyさん2008/11/21(金) 02:09:46ID:AgX6JP+G
403です。
ID出し忘れました。失礼しました。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

型の概念が理解できているなら「===」と「!==」を使う事をお勧めしとく
0430nobodyさん2008/11/21(金) 22:37:01ID:???
>>201
http://www.php.net/manual/ja/reserved.variables.request.php
0431nobodyさん2008/11/21(金) 22:58:47ID:???
>>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でもユーザー認証無しでとれるようになったしね。
個体識別番号取れないようにしてる機種に対してはエラーを出すのを忘れない事。
0432nobodyさん2008/11/21(金) 23:58:42ID:???
↑かっこよすぎるw

てかID:zW/fBXPAは連日むかつくよ。
PHP以外の言語も知っているような口ぶりだけど
なんでそんなにえらそうな聞き方するんでしょう?
自分で調べようとしてなさそうだし
教えてもらったのならありがとうの一言くらい言えばいいのに。
0433たまちゃん ◆ExGQrDul2E 2008/11/22(土) 00:21:58ID: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>";
これでは、ただ(省)とだけ表示され、略される前の(文字列)と言う文字は表示されません
どのようにすればよいか、教えてください。
0434nobodyさん2008/11/22(土) 00:22:11ID:???
>>432
if (淡々と答える事が出来る) {
  淡々と答える;
} else {
  スルー;
}

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

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

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

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

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

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

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

って感じだな。

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

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

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

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

2. 対話環境がないとしたら、 php -f PHPファイル名 しかないと思うのですが、
printのような関数で、最後に改行してくれるものはありませんか?
Java の System.out.println(), Ruby の puts のようなものです。
0454nobodyさん2008/11/22(土) 21:02:14ID:???
自己フォローです。2.については自己解決しました。
http://fdays.blogspot.com/2008/02/php5.html
対話的操作なら、var_dump()で良さそうです。
0455nobodyさん2008/11/22(土) 21:25:18ID: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/"とした時、アップロードするとエラーが出てしまいます。

0456nobodyさん2008/11/22(土) 21:27:11ID:???
無理です
0457nobodyさん2008/11/22(土) 22:03:15ID:P3cvCpOq
iisでphpを動かすのと
apache + mod_phpで動かすのだと
どっちの速度が速い?
0458nobodyさん2008/11/22(土) 22:03:44ID:???
場合による
0459nobodyさん2008/11/22(土) 22:05:15ID:???
>>455
他のサーバにアップロード用のプログラム用意して、socketで画像データをpostするとか
勿論セキュリティ上出来ない場合もあるだろうし、何より改変は変数一つ書き換えるだけでは済まない
0460nobodyさん2008/11/22(土) 22:11:43ID:???
他のサーバにPOSTするぐらいなら、ftpで保存先に送るシェルスクリプトを
流すようにした方が多分作るのは楽だろw
0461nobodyさん2008/11/22(土) 22:13:32ID:???
その保存したいサーバで実行すればいい
0462nobodyさん2008/11/22(土) 22:17:29ID:P3cvCpOq
>>458
どんな?
0463nobodyさん2008/11/22(土) 22:50:38ID:???
>>456>>459
そうなんですか・・・
有難うございました
0464nobodyさん2008/11/23(日) 08:59:40ID: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
0465nobodyさん2008/11/23(日) 09:28:04ID:???
ファイル偽装したいけどできないってこと?

mod_mime_magicあたりが効いてるとかじゃないかな
0466nobodyさん2008/11/23(日) 10:12:13ID: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に処理を
渡しちゃうんですかね・・・
そうすると、スレチですか。。
0467nobodyさん2008/11/23(日) 10:40:35ID:7jpbyfc1
mod_mime_magic を外してみたんですが、一緒でした。
もう少し調べてみます
0468nobodyさん2008/11/23(日) 12:42:11ID:???
*nix系ならfileってコマンドでファイルのタイプが分かるよ。

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

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

まあ細かい手順はともかく、*nix系なら、
fileコマンドでチェックすれば、拡張子にかかわらずファイルのヘッダ見てくれる。
0469nobodyさん2008/11/23(日) 12:51:12ID:???
普通に設定してたらありえなくねー?
んなもんが余裕でできてたら今ごろ被害者続出だろ
0470nobodyさん2008/11/23(日) 16:42:57ID:???
質問です。
こんなコードが、問題なく動くようなのですが、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の「クラスとオブジェクト」を読みましたが、載っていないようです。
0471nobodyさん2008/11/23(日) 16:43:21ID:I9fabXwC
あ、ID出し忘れました。
0472nobodyさん2008/11/23(日) 16:57:45ID:I9fabXwC
補足すると、この書き方はCakePHP1.2のソースを読んでいて見つけたものです。
0473nobodyさん2008/11/23(日) 17:01:02ID:???
定義しなきゃ代入しちゃだめなんて誰が言ってたの
0474nobodyさん2008/11/23(日) 17:15:59ID:I9fabXwC
以前知り合いから聞きました。
JavaやRubyではできませんから、自分もそうだと思ってました。

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

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

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

$test = new Test();
$test->hogehoge = 3;
var_dump($test->hogehoge);
$test->fugafuga();
?>
0477nobodyさん2008/11/23(日) 17:49:13ID: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のような実変数
だと実行できない理由です。
0478nobodyさん2008/11/23(日) 18:17:42ID:???
>特に知りたいのは、レシーバが $this なら実行できて、$testのような実変数
だと実行できない理由です。
実行できない理由は、そういう風に作られているから
実行できないように作られた理由は、知らん
0479nobodyさん2008/11/23(日) 18:22:18ID:???
前の方の
>問題なく動くようなのですが
は親クラスで何か定義されてるんじゃないの?

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

じゃ無いとインスタンスの内部に保存した変数が
上書きされちゃって困るだろ。
0480nobodyさん2008/11/23(日) 18:33:47ID:???
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
ぜんぜん釣りじゃないよ。
どこがデタラメなのか真剣に知りたいんだけど。
0481nobodyさん2008/11/23(日) 18:35:37ID:???
>>477
なんでCakePHPスレから
0482nobodyさん2008/11/23(日) 18:35:38ID:I9fabXwC
>>479
> は親クラスで何か定義されてるんじゃないの?

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

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

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


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

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

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

釣りや煽りの意図はまったくありませんが、意図が伝わらなくてイライラして
いたことは事実です。ごめんなさい。
0484nobodyさん2008/11/23(日) 18:58:46ID:???
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インスタンスの中に無いから。
0485nobodyさん2008/11/23(日) 19:08:59ID:???
可変変数は関係なくて、難しく考えすぎてるだけじゃないの?
0486nobodyさん2008/11/23(日) 19:12:17ID:???
>>477
やってみたけどvar_dump($test->$y);も実行できたよ(int(1))

> 特に知りたいのは、レシーバが $this なら実行できて、$testのような実変数
> だと実行できない理由です。
$y = "hoge"の末尾にセミコロンがない
0487nobodyさん2008/11/23(日) 19:13:15ID: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)についてもお願いいたします。
0488nobodyさん2008/11/23(日) 19:21:59ID:I9fabXwC
>>485-486
大正解…。自分も確認しました。セミコロンか…ごめんなさい。
プロパティ名はどこでも変数でパラメタライズできる、ということのようです。

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

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

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

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

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

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

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

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

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

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

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

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

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

Cakeスレの人たちもそのように誤解したのでしょうか。自分でははっきり書い
たつもりだったのですが、実際は分かりにくかったようです…。
0496nobodyさん2008/11/23(日) 20:28:25ID:???
書いてねーよ。内容といい嘘といい人に迷惑かけまくりな奴だな
0497nobodyさん2008/11/23(日) 20:30:02ID:???
あぁ、ちなみに、仕様がどこに書いてあるかは知らないけど
標準クラスの挙動が知りたいだけなら、Reflectionでソースを見ればだいたいわかる
0498nobodyさん2008/11/23(日) 20:30:32ID: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>';
?>
0499nobodyさん2008/11/23(日) 20:35:19ID:???
> var_dump($test->hoge());が
> $a = "hoge";
> var_dump($test->$a());
> って出来る筈なのに出来ないのは何故だーって話だったのか。

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

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

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

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


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

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

ありがとうございました。恥ずかしいっスorz
05044982008/11/23(日) 21:32:36ID:???
恥ついでにもう一つ質問お願いします。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;
}
05054982008/11/23(日) 21:33:15ID:DgqkQkfl
↑ID出し忘れてしまいました。すいません
0506nobodyさん2008/11/23(日) 21:37:58ID:???
>>491
これってVBみたいにポトペタで作れるんで無くて、
コードをガリガリ書くタイプでしょう?
0507nobodyさん2008/11/23(日) 21:40:21ID:EISunP9D
質問

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



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

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

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


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

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

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

MySQLを導入するのがダルいってんなら、SQLiteかなんかに突っ込んでおけばいい。
インストール不要、ユーザー管理不要のお手軽DBMS。PHP5は標準で対応してる(5.2以降だっけか?)。
0524nobodyさん2008/11/24(月) 01:18:49ID: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?
0525nobodyさん2008/11/24(月) 01:24:51ID:Wj+KImYJ
>>522
> 自前でフレームワークを作ろうとしてるの?
> 観点が利用するという感覚じゃないようなので

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

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

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

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

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

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

「Reflectionでソースを見る」とはどういう意味なのか、残念ながら見当が付
きません。リフレクションで分かるのは、ソースではなくて、生成されたイン
スタンスやクラスの特性だと思うのですが。
0530nobodyさん2008/11/24(月) 01:49:19ID:???
そんなマニュアルが揃ってる言語てあるんですか?
WEBプログラムはWindowsアプリなどよりも
ネットでのドキュメント量が豊富だと思いますが
0531nobodyさん2008/11/24(月) 01:56:57ID:???
>>529
http://php.plus-server.net/language.oop5.reflection.html#language.oop5.reflection.extending
0532nobodyさん2008/11/24(月) 01:59:09ID: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よりネット上のドキュメントが多いのは同意ですが、問題は、公式でな
い仕様はいつ変わるか保証が無いことです。
0533nobodyさん2008/11/24(月) 01:59:59ID:???
>>528
単純にあなたの検索力がかなり低いと思うのだが・・・
0534nobodyさん2008/11/24(月) 02:06:26ID:???
クラス機能が壊れてるから公式ドキュメントが無いんじゃないのw
0535nobodyさん2008/11/24(月) 02:16:41ID:Wj+KImYJ
>>531
すみませんがますます分かりません。コードを実行してみましたが、メソッド
名やクラス名、アクセス修飾子といった属性が取得できただけです。まあリフ
レクションとはそういうものですが。

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


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

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


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

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

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

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

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

名前空間のセパレータが\になりそうで
\tHogeとか\nhogeの場合に気持ち悪すぎるって
騒ぎがあったのが最近だし。
0537nobodyさん2008/11/24(月) 02:59:52ID: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のソー
スは見始めたばかりで、こんなコードがあるかどうかはわかりませんが。


夜も遅くなりましたので、これで失礼します。明日また来ると思います。
0538nobodyさん2008/11/24(月) 03:12:39ID:???
宣言してないと notice とか e_strict とか出ないっけ
0539nobodyさん2008/11/24(月) 08:19:42ID:???
>>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のソースを扱うのは無駄です。労力的に。
貧弱でルーズなオブジェクト指向でむりくり実装しているので、それぞれのシステム
のポリシーに振り回されることになります。
0540nobodyさん2008/11/24(月) 09:37:17ID: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);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

毎日釣り糸垂らして楽しいの?
0579nobodyさん2008/11/24(月) 19:03:20ID:???
>>577
<?php
echo "5";
?>
0580nobodyさん2008/11/24(月) 19:03:37ID:???
>>578

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

これってダメなの?

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

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

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

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

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

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

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

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

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

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

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

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

お騒がせしました。
0646nobodyさん2008/11/26(水) 14:56:01ID:???
どこが自己解決なんだろう
0647nobodyさん2008/11/26(水) 15:02:08ID: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はこのように極悪非道なやつらということになっている。
0648nobodyさん2008/11/26(水) 23:40:10ID:uu4IqJDf
こんにちは。下記にあるサイトのコードを使ってみたんですが、検索と押しても何も表示されませんでした。
(特にエラーとかでませんでした)
ttp://www.ritsumei.ac.jp/~inabam/class/dd1_07/11th/

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

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

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

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

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

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

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



とりあえずregister_globals=Onにしてみたら?
0656nobodyさん2008/11/27(木) 00:48:45ID:???
>>654-655
ありがとうございます!
無事動きました♪
0657nobodyさん2008/11/27(木) 07:01:16ID:QDCpWLvT
>>652
s200辺りからUTF-8に変わったぞ
今は全部UTF-8かも?
0658nobodyさん2008/11/27(木) 09:57:53ID:???
いつXREAの話題になったのだ
0659nobodyさん2008/11/27(木) 10:14:36ID:???
いいんじゃねいつものやつだし適当な回答でwww
0660nobodyさん2008/11/27(木) 13:27:44ID: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すると文字化けしてしまいます。

つづく
0661nobodyさん2008/11/27(木) 13:28:31ID: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
0662nobodyさん2008/11/27(木) 13:33:56ID:???
SQLには副問い合わせってのもある
0663nobodyさん2008/11/27(木) 13:38:12ID:???
SQL一発でできるし、
エスケープ、理解してる?
0664nobodyさん2008/11/27(木) 13:39:04ID:???
ぅお、かぶった
0665nobodyさん2008/11/27(木) 13:40:43ID:???
うむ
INSERT INTO hogehoge(price) SELECT price FROM hoge;
とかでコピーできる。
0666nobodyさん2008/11/27(木) 13:42:38ID:7SaHUKLW
>>662
レスありがとうございます。
副問い合わせ
調べてみます。

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

なんでお前ら馬鹿なの?
0709nobodyさん2008/11/28(金) 10:06:45ID:???
>>706
これはあまりよろしくないな
こんなこと頑張って覚えても実際の業務に何の役にも立たないし
このような概念的なことは教本見れ自分で勉強すれば済むこと
0710nobodyさん2008/11/28(金) 11:37:08ID:skXTPrJy
public function &createNew($params) {
//code here
}
このとき、functionについている「&」はどういう役割をしているのでしょうか?
0711nobodyさん2008/11/28(金) 12:13:10ID:???
>>710
調べてみた
http://d.hatena.ne.jp/cloned/20060510
0712nobodyさん2008/11/28(金) 13:54:03ID:???
いやマニュアル見ようよ
http://jp2.php.net/manual/ja/functions.returning-values.php
http://jp2.php.net/manual/ja/language.references.return.php
0713nobodyさん2008/11/28(金) 15:51:04ID:skXTPrJy
>>711
ありがとうございます。
よくわかりました。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

signal()
alarm()

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

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

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

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

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

1 != 1
1 <> 1

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

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


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

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

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

$test->foo->bar();

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

 =?ISO-2022-JP?B?MUlVJDEkXiQ3JD8bKEI=?=
From: blahblah@example.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

print_r $debug

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

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

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

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

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

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

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

<?php
echo 'hoge';
?>

か、

<?php
____echo 'hoge';
?>

か。

php の class の場合は

<?php
class hoge
?>

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

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

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

define ('ABC', 'abc');

とあって、

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

のような事を実現する方法はありますか?
0903nobodyさん2008/12/05(金) 12:57:48ID:???
>>902
言ってることがわからないのだが
>$aaa = array ( 1 => ABC . 'aiueo');
これは普通にできるでしょ?
09049022008/12/05(金) 13:19:06ID: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();

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

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

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

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

すみません、

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

で、7行目というのが、

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

ここです。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
0961nobodyさん2008/12/06(土) 22:04:24ID:???
arrayって関数っていうか言語構造だし
0962nobodyさん2008/12/07(日) 00:37:09ID:yd2i9hRL
プロキシ規制スクリプトを作りたいのですが
2chの公開プロキシリストってどこにあるかご存知の方いらっしゃいましたら教えてください
0963nobodyさん2008/12/07(日) 00:58:16ID:???
スレ違いもここまでくると気持ちがいい
0964nobodyさん2008/12/07(日) 02:28:04ID:???
【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
ttp://pc11.2ch.net/test/read.cgi/php/1221471692/l50


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

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

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

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

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

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

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

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

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