【PHP】下らねぇ質問はID出して書き込みやがれ 76
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2008/11/13(木) 04:15:32ID:???過去スレ、関連スレ、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:???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:???→ 確認すべきは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:???$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 .')';
}
00076
2008/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:???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:???PHPの質問ではありませんが、どなたか教えてください。
画面遷移の管理(というかセッションの管理)で、
ttp://www.j-tokkyo.com/2001/G06F/JP2001-160033.shtml
のような特許が開示されているのですが、みなさん気にされていますか?
自分の場合、他サイト間連携の画面遷移なんかで以前から使いまくってたりするのですが、
コンプラ強化の流れで制限されそうになってますです。。
はて困った。。
0014nobodyさん
2008/11/13(木) 14:07:26ID:bw3b61Qhアパッチのモジュールモードで動かしているときは、
関係ないしろものなの?
0015nobodyさん
2008/11/13(木) 14:21:37ID:???0016nobodyさん
2008/11/13(木) 16:01:38ID:bw3b61Qh「suEXECが入っていない場合」、というのを
見て参考にすればいいの?
0017nobodyさん
2008/11/13(木) 16:06:10ID:???apacheが動作しているユーザーが読めればいいだけ。
0018nobodyさん
2008/11/13(木) 16:07:54ID:???読み書きする外部ファイルの扱いはcgiと同じ。
0019nobodyさん
2008/11/13(木) 16:14:35ID:???>レンタルサーバではグループの権限はゼロに設定すべきです。
>レンタルサーバではCGIは705、データファイルは606にすべきです。
>レンタルサーバでtelnetを開放している場合、他の住人のディレク
>トリーにも自由に入れます。CGIのパーミッションが755なら、telnet
>経由で他のユーザーはあなたのCGIのソースファイルを見ることが
>できます。CGI ファイルの中にパスワードが書いてあれば、パスワ
>ードも漏れます。データファイルのパーミッションが666ならtelnet経
>由でデータファイルを見るだけでなく、書き換え・削除できます。
↑ここのサイトに、こんなこと書いてあった。
こんな重要なことなのに、はっきり書いてある
サイトが少なくって。怖いなぁ。
0020nobodyさん
2008/11/13(木) 16:15:35ID:???CGIモードでなくて、アパッチの
モジュールモードで動くときに、
パーミッションの設定をどうしたらいいのか、
ちゃんと解説してあるサイトが少なくて
見つけられないんだよね。
0021nobodyさん
2008/11/13(木) 16:16:47ID:???0022nobodyさん
2008/11/13(木) 16:20:27ID:bw3b61Qhって書いてあるから、「suEXECが入っている場合」、の
説明をマネすればいい感じかな?
0023nobodyさん
2008/11/13(木) 16:20:59ID:bw3b61Qhそのサーバーでtelnetが有効であれば
入れる、と書いてあります。
0024nobodyさん
2008/11/13(木) 16:24:07ID:???でも、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ってサイトに書いてあるんですが、そうなの?
0030nobodyさん
2008/11/13(木) 17:12:56ID:mUWlC/Ng例えばこれを $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]");
?>
0032nobodyさん
2008/11/13(木) 17:28:24ID:mUWlC/Ng<?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/Ngttp://okwave.jp/qa4419102.html
array_rand で検索してみたところ、
上記の記事でうまいこと出来そうです。
ありがとうございました。
0034nobodyさん
2008/11/13(木) 17:51:59ID:???長年やってるプロでも
こんなバカなミスやるんだな。
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どうも文字コードの自動判別がうまく働かないようで、
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:rj1jn7suhttp://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詳しくお願いします。
文字列関数…
ただ、拡張子だけでなく、ヘッダーもかえたいです。
.mp3が.3gpになっただけでは、携帯からは音楽が聞けません…
0044たまちゃん ◆Emjcf.lfLU
2008/11/13(木) 20:39:25ID:rj1jn7suこれ以外、どうやってると思いますか?
0045nobodyさん
2008/11/13(木) 20:43:16ID:???0046たまちゃん
2008/11/13(木) 20:47:04ID:rj1jn7su外部アプリ…
ってことは、aspxや、PHPだけではこのツールを作成することは不可能なのですか?
そのアプリは、どんなアプリでしょうか?
Windowsアプリケーションexeは、携帯には対応してません。
0047nobodyさん
2008/11/13(木) 20:49:23ID:???あとWindowsアプリケーションexeが携帯に対応してないってのが良く分からないけど
004838
2008/11/13(木) 21:16:44ID:???ソースは取得できており、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どのようなプログラムを書けばよいか、大まかにでも教えてください。
0050nobodyさん
2008/11/13(木) 21:21:00ID:KF88aCBc0051nobodyさん
2008/11/13(木) 21:57:04ID:???>>47じゃないが>>47がいいたいのは
サーバ側で別のアプリケーションを起動させて変換して返すってもの
wavをmp3に変換するツールとかあるでしょ?
そういうのでコマンドラインから実行できるようなものを
リクエストがあったらコマンドラインから該当ファイルを変換して返すような仕組み
ようするに処理自体はPHPでやってるわけじゃないってこと
0052nobodyさん
2008/11/13(木) 22:02:04ID:???そうそう。君はそうやって人の言うことを聞いとくべきだよ。
六年生とは思えないほど稚拙な文章だったけど、面白かったよ。
005327
2008/11/13(木) 22:14:36ID:TS7LMUyhCGIならmecabを動かせるし。
でもCGIやった事無いから分からないけど
一つのファイル内でCGIとPHPを混在させる事できる?
PHPで文字列受け取ってCGIで処理してPHPで表示したい。
または例えばPHPファイル内で処理するスクリプト中に
CGIファイルをインクルードして結果の配列をPHPに再び渡すってできない?
0055nobodyさん
2008/11/13(木) 23:42:29ID:rLX4EmuOググって調べると、携帯サイトではGETでURLにsession_idを
付与するようですが、別サイトにリファラが残る場合があり、
セッションハイジャックの危険性があります。
他のプログラム(OpenPNEやMT)などをみると、
セッションをDBに保存して、毎回照合しているみたいです。
そこで質問ですが、どちらの方法の方がより安全で有効なのでしょうか?
前者であれば手間もかからず、負荷も少ないと思いますし、
後者であればセッション発行時のIPアドレスやUSER AGENTを保存すれば
セッションハイジャックやなりすましは防止出来るのではないかと思っています。
005627
2008/11/13(木) 23:43:40ID:TS7LMUyh確かにそうでした。ありがとうございます。
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)しか返ってきません。
やっぱりうまくいかないようです。
0058nobodyさん
2008/11/14(金) 06:44:08ID:LBY0wniiアパッチの場合と、nobodyの場合と、yamadaの場合と、
3種類あるようなんだが、これってどこで決まってるの?
0060nobodyさん
2008/11/14(金) 09:07:18ID:???print is_resource($process);
こんな事するより
var_dump($process);か
echo var_export($process,true);
0061nobodyさん
2008/11/14(金) 12:43:13ID:???PHPのスクリプトでtouch()とかで作られたファイルはアパッチになるよ。
nobodyやyamadaは知らん。俺yamadaになんてなった事ないから。
0062nobodyさん
2008/11/14(金) 15:00:32ID:???Apacheの実効ユーザで作成されてるってこと、PHPがApacheモジュールで動いてるからな
suExec環境ならスクリプトの所有者で生成される、それがyamadaなんじゃね?
0063nobodyさん
2008/11/15(土) 06:36:19ID:oW2TcjIKここの、
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">
にしたらうまくいきました。
これは正しいやり方だったのでしょうか?
0067nobodyさん
2008/11/15(土) 07:24:50ID:???HTMLのformタグを使ってデータの受け渡しを行います。
action属性で指定してるファイルにデータを渡します。
ここではoutput.phpというファイルを指定してます。 method
属性ではデータを送る際の送信方法を指定します。post
とはURLとは別にデータを送る方法です。
↑ここの部分が間違ってる。
<form action="input.php"
↑ここ。inputでなくてoutputだから。
でもなぜかそのすぐ上の元のソースでは
ちゃんとoutputってなってるところがなぞ。
0068nobodyさん
2008/11/15(土) 08:59:21ID:oW2TcjIKじゃあ、input.htmlと、output.phpの2つのファイルをドコのフォルダに置きましたか?
なんつーか、この辺がよくわかんないんですよね。
つまり、PHPの影響が及ぶエリアと、及ばないエリアがあると思うんです。
>>67
それは僕も思いました。
0071nobodyさん
2008/11/15(土) 10:02:28ID:???0072nobodyさん
2008/11/15(土) 12:17:12ID:???初心者が陥りやすい問題だよね。
htmlのファイルはクリックしたらダメなのよ。
あくまでブラウザ操作が基本。
ブラウザにhttp://localhost/root/input.htmlと入れるのが正解
(ちなみにrootはアパッチのconfファイルで設定した所ね)
ファイルをダブルクリックで開くとwindowsのディレクトリが表示されてしまう
(C:/root/input.html)
こうなると次にPHPファイルを開いてもアパッチでなくwindowsがテキストとして開いちゃうんだよね。
0073nobodyさん
2008/11/15(土) 12:39:59ID:2pgE9K6yパイプを使って得た文字列に改行がありません。
コマンドプロンプトで表示させると
ラーメン 名詞,*,ラーメン
うまい 形容詞,*,うまい
と表示されるのに
パイプで取得すると
ラーメン 名詞,*,ラーメンうまい 形容詞,*,うまい
と改行無しになってしまいます。パイプで改行を得るにはどうすればよろしいですか?
0075nobodyさん
2008/11/15(土) 12:55:15ID:???http://pc11.2ch.net/test/read.cgi/pcnews/1226550324/
0076nobodyさん
2008/11/15(土) 17:15:47ID:???0077nobodyさん
2008/11/15(土) 17:32:56ID:???0078nobodyさん
2008/11/15(土) 17:33:18ID:nBA7qJcqfor($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:???008263
2008/11/15(土) 18:03:29ID:oW2TcjIK> ブラウザに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:???そんなものはapacheの設定次第だが、普通はindex.htm index.html index.phpくらいだな
008463
2008/11/15(土) 18:40:26ID:oW2TcjIKありがとうございます。実際、index.phpというファイルがありました。
0085nobodyさん
2008/11/15(土) 18:53:10ID:???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.htm や http://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:???009063
2008/11/15(土) 19:23:33ID:oW2TcjIKrequire_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:???最初にrequireしているconf.inc.phpの中をよく見ればいいよ
phpの初心者本くらいは手元においておいた方がいいと思うぞ
009363
2008/11/15(土) 19:33:01ID:oW2TcjIKってことは、ファイル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:???初めて知った。
クラックツールとか脆弱性監査ツール紛いの挙動だなw
0096nobodyさん
2008/11/15(土) 19:40:39ID:???conf.inc.phpをP2_LIB_DIRで検索。
そこで使われてる関数をマニュアルで調べる。
009763
2008/11/15(土) 19:46:34ID:oW2TcjIKはい、やってみました。 そうすると、
require_once P2_LIB_DIR . DIRECTORY_SEPARATOR . 'p2util.class.php';
というのが出て来ました。
これはどういう意味なのでしょうか?
0098nobodyさん
2008/11/15(土) 19:47:20ID:???009963
2008/11/15(土) 19:49:12ID:oW2TcjIK↑をみると、require_once 関数の変数(?)は1つしかない。
なのに、↓は変数(?)が3つもある。
これが意味不明なのです。
require_once P2_LIB_DIR . DIRECTORY_SEPARATOR . 'p2util.class.php';
010063
2008/11/15(土) 19:51:57ID:oW2TcjIK0101nobodyさん
2008/11/15(土) 19:52:27ID:???0102nobodyさん
2008/11/15(土) 19:54:43ID:???他にもあるだろ。もっと検索しろ。
もういい、自分で勉強する気がないようだから解答。
どっかで
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:???もう一度言う
最初にrequireしているconf.inc.phpの中をよく見ればいいよ
よく見て中になんて書いてあるか自分で調べて、それでも分からなければ
そこを引用して質問してくれ
あまりにも周りの書き込みをちゃんと読み解けていない
0104nobodyさん
2008/11/15(土) 19:59:31ID:???ほんとに腐った根性してる
010563
2008/11/15(土) 20:03:23ID:oW2TcjIK> P2_LIB_DIR と DIRECTORY_SEPARATOR と 'p2util.class.php'を「つなげたもの」はひとつの文字列だ。
なるほど、色々、宣言したものをつなげてるわけだ。 なんとなく理解出来ました。
0107nobodyさん
2008/11/15(土) 20:23:30ID:???買った本は肥やしにもなっていないことが容易に想像される
010863
2008/11/15(土) 20:26:06ID:oW2TcjIK↑では、require_once()となっています。
しかし、↓には()がありません。
ということは、「あらゆる関数で()を省略していい」というルールなのでしょうか?
あるいは、「require_once()関数のみ()を省略していい」というルールなのでしょうか?
require_once './conf/conf.inc.php';
0109nobodyさん
2008/11/15(土) 23:39:35ID:???0110nobodyさん
2008/11/16(日) 00:07:50ID:???0111nobodyさん
2008/11/16(日) 00:10:31ID:???0112nobodyさん
2008/11/16(日) 00:14:17ID:???011363
2008/11/16(日) 00:35:00ID:???ありがとうございます。
話は変わり、
<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:???AddType application/x-httpd-php .html
に設定変更してapacheを再起動してみそ
0115nobodyさん
2008/11/16(日) 00:55:29ID:???011763
2008/11/16(日) 05:55:48ID:TeIkZlvH011863
2008/11/16(日) 06:06:46ID:TeIkZlvHA:
ディレクトリの区切り文字は、Windowsで「\」ですが、Linuxなどでは「/」が使用されています。
つまり、
"dirname" . DIRECTORY_SEPARATOR . "filename";
と書いた場合、
Windows環境では、dirname\filenameとなり、
Linux環境では、dirname/filenameとなるのです。
で、いいですか?
011963
2008/11/16(日) 06:43:03ID:TeIkZlvHQ:__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/
のどっちかを参照してくんない?
012163
2008/11/16(日) 07:09:41ID:TeIkZlvH$sWeek=date("l");
$sDisp="今日は英語で言うと".$sWeek."よ!";
print $sDisp;
?></body></html>
この場合、
print $sDisp;
でも、
print$sDisp;
でも、
エラーにならずに表示されますねw
012263
2008/11/16(日) 07:14:46ID:TeIkZlvHググったら↑のページがヒットしたのです。
>>120
じゃあ、↑のページに相当するページは、↓ではどこになるのか教えて下さい。
あと、そのページに、あなたが、どうやって行き着いたか?も教えて下さい。
http://jp.php.net/manual/ja/
0123nobodyさん
2008/11/16(日) 07:25:26ID:???同じマニュアルだろ
ただ上は非公式のミラーサイト
だから本家で参照しろと>>120は言いたいんだろ
ドメインが違うだけだからあとは基本的に同じだ
http://jp.php.net/manual/ja/language.constants.predefined.php
マニュアルの使い方は使ってるうちにそのうち覚える
最初のうちは気にしないことだ
疑問を持つのはいいことだが
いちいち出てくる疑問に大していちいち人に聞いてたら
いつまでたっても先に進まないよ
とりあえず細かいことを気にせず前へ進め
012463
2008/11/16(日) 07:30:21ID:TeIkZlvHhttp://jp.php.net/manual/ja/
おお、どうもです。
つーか、あなたがどうやって、↑から↓にたどり着いたか?
を教えて欲しいのですが。
http://jp.php.net/manual/ja/language.constants.predefined.php
0125nobodyさん
2008/11/16(日) 07:43:30ID:???012663
2008/11/16(日) 08:32:44ID:TeIkZlvHhttp://jp.php.net/manual/ja/
つーか、『__FILE__』に疑問を持った人が、
どうすれば、↑から↓にたどり着けるのか?
という質問なのです。
http://jp.php.net/manual/ja/language.constants.predefined.php
012763
2008/11/16(日) 09:01:56ID:TeIkZlvHで、このauthorize()がわからんのです。
$_login->authorize(); // ユーザ認証
0128nobodyさん
2008/11/16(日) 10:04:55ID:???やってれば__FILE__が定数だなってことは自然とわかってくるわけで
長くやってるやつにそんな理由を聞いても返答に困るだけ
このスレをROMってるだけで相当力つくから独学でやるならROMってるといいよ
そのうちなんとなくわかってくるから
0129nobodyさん
2008/11/16(日) 10:21:49ID:???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・全部よむ
・検索する
どちらでもたどり着けます。検索する方がすぐ見つけられるけど、
一度全部読んでみるといいね!
検索の仕方がわからないんなら、教えてあげるからまた質問してね。
>>127
わからないことを、みんながわかるように書いてね。
0132nobodyさん
2008/11/16(日) 12:06:52ID:???>>89
>>131
>>98
どんな世界でも使用法も読まないで分からないと質問するのは最も嫌われる行為。
君の怠惰のせいでどれだけ他人に迷惑かけた?
特にこのスレでは>>1にも書いてある。>>1も読まないのね。
0134nobodyさん
2008/11/16(日) 12:14:36ID:???0135nobodyさん
2008/11/16(日) 16:32:17ID:???PHPが実行されるようにアパッチを改造するのって
セキュリティ的に、少し危険な行為なんじゃないの?
0136nobodyさん
2008/11/16(日) 16:33:21ID:???0137nobodyさん
2008/11/16(日) 16:35:53ID:???アホなコードを書けばすぐPHPが実行されてしまう考え方が、
と思ったけど、そんな状態なら拡張子がphpだろうがhtmlだろうが、関係ない気もする。
013863
2008/11/16(日) 18:30:34ID:TeIkZlvH> 検索の仕方がわからないんなら、教えてあげるからまた質問してね。
おお、有り難うございます。
では、フォルダの中に、サブフォルダもある。
その中に沢山の.phpファイルがある。
その多数のファイルの中から、authorizeの文字列を探したい。
この場合、どうすればいいのでしょうか?
014063
2008/11/16(日) 18:43:46ID:TeIkZlvHそうですか、有り難うございます。
0141nobodyさん
2008/11/16(日) 20:50:14ID:???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で定期的にやってくれるように問題可決できるんでしょうか?教えてください。
0143nobodyさん
2008/11/16(日) 21:04:25ID:???いいんじゃあ
0144141
2008/11/16(日) 21:31:12ID:wBVwAFbgすみませんでした sageチェックはずしわすれてました。
>>143
cronでの実行ラインは/usr/bin/php ファイルパスで、
端末で実行するとメールと同じ内容のエラーメッセージがでてきますね・・・
で、ファイルも作成されずです。
コマンドラインじゃエラーになってブラウザだと通るって、なんでですかね?
0145nobodyさん
2008/11/16(日) 21:43:23ID:???0146nobodyさん
2008/11/16(日) 22:17:07ID:???ここの、「PHP エディタのリスト」ってリンクをクリックすると
エラーになるな。単純ミスか?
こんなことだから
PHPプログラマーは低脳だってバカにされるんだ
014763
2008/11/16(日) 22:24:57ID:TeIkZlvH> cronで定期的にasahi.comから天声人語だけ抜き取って自分にメールを送るのと、
> バックアップとしてその日の日付の名前でテキストファイルに保存するphpを作ったんですけど
それ、面白そうですね。
規模でいうと何行ぐらいのphpなんですか?
0148nobodyさん
2008/11/16(日) 22:44:08ID:???>>144
コマンドラインで実行するとエラーが出るのはたまに経験あるな。
大抵、環境変数とかPHP側の設定とかが原因だった気がするが。
0149141
2008/11/16(日) 23:05:52ID:wBVwAFbg50行ちょい
苦戦したといえば
自分は携帯にメールしてるため、
携帯で見れるための文字コード変換がややこしかった
>>148
やっぱり、PHP側の設定ですか
いや、今の箱の前に使用してたfedora7の箱だったら正常に作動してたから
phpのコーディングミスではないと確信だったので
0150nobodyさん
2008/11/16(日) 23:05:59ID:???ソース書くのが楽しくてPHPやってんのに。
0151nobodyさん
2008/11/16(日) 23:12:55ID:???015263
2008/11/16(日) 23:27:27ID:TeIkZlvH> 50行ちょい
どうもです。少ないですね。 よかったらソースを晒して下さい。
0153nobodyさん
2008/11/16(日) 23:43:59ID:???015463
2008/11/16(日) 23:57:20ID:TeIkZlvH0155nobodyさん
2008/11/17(月) 00:12:42ID:uO1yzOV4015663
2008/11/17(月) 00:15:17ID:DKgH+i/40157nobodyさん
2008/11/17(月) 00:18:36ID:???ここのPHPマニュアルわかりやすい
0158nobodyさん
2008/11/17(月) 00:25:34ID:???0161nobodyさん
2008/11/17(月) 03:59:05ID:???貪欲に知識を吸収しようとする姿勢がカッコイイと思ってる。
アップルに感化されやすいタイプ。
マインドマップとか描いちゃうタイプ。
でも致命的にバランス感覚に欠けている。
身の周りの中では達観してるほうだと自分では思ってるが
そのままなら1,2年もすれば煙たがられるようになる。
なんかしらんけどムカつくわ ハゲ!!
0162nobodyさん
2008/11/17(月) 04:07:56ID:uO1yzOV4書き込みしている途中で
書き込み処理が完了していない状態で
誰かが同時に読み込みすると、中途半端な
書き込み途中のデーターを読み込んでしまって、
それで壊れるの?
016363
2008/11/17(月) 04:19:43ID:VEc9l7C00164nobodyさん
2008/11/17(月) 05:31:37ID:???0165141
2008/11/18(火) 01:56:19ID:V5bkwf3L$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関数かなんかでメールしたってください
0166141
2008/11/18(火) 01:58:29ID:V5bkwf3Lfunction 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:???0171nobodyさん
2008/11/18(火) 07:04:09ID:WbAApVvSPHPプログラマに関係あることなのか?
0172nobodyさん
2008/11/18(火) 08:31:03ID:???0173nobodyさん
2008/11/18(火) 09:42:35ID:???0174nobodyさん
2008/11/18(火) 09:59:19ID:???0175nobodyさん
2008/11/18(火) 10:21:28ID:ueNxgoBDちょうどいいスレがわからなかったのでここにかきます。
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>
0176↑
2008/11/18(火) 10:29:16ID:ueNxgoBD0177nobodyさん
2008/11/18(火) 10:42:24ID:???APIの仕様を確認してこい
0178175
2008/11/18(火) 11:41:14ID:ueNxgoBD自分で調べもしないで質問するのは失礼だと思いますし。
0180nobodyさん
2008/11/18(火) 11:53:09ID:???まずエラーコードが何かどういう意味なのか調べろよ
>8 : Bad or unknown dev_id specified
>developer profileで登録されていない。
これでもエラーになるならエラーになるID晒すか
問合せしないと解んないと思うぞ
0181175
2008/11/18(火) 11:54:01ID:ueNxgoBD0182175
2008/11/18(火) 12:02:40ID:ueNxgoBD> developer profileで登録されていない。
というのは私も見ましたがデベロッハーIDを取得している時点で
「developer profileで登録されていない」ということはないと思っていますが
どうでしょうか。何回IDを確認してもあってますし、新しいIDを取得しても同じです。
意味がなくてもUTF-8にエンコードしたものを使用したりurlencode()したり、いろいろやってみましたが
やっぱりだめです。
0183nobodyさん
2008/11/18(火) 12:39:05ID:???もしくは使いすぎて無効化されてるとか
0184nobodyさん
2008/11/18(火) 12:45:14ID:???本来のサイト見ずに誰かが書いてる解説サイトみてたりしない?
0185175
2008/11/18(火) 12:49:13ID:ueNxgoBD最初私もそう思って、次の日やっみましたが、だめでした。
まだ数十回しかエラーみてません。大丈夫だと思います。
0186175
2008/11/18(火) 12:55:52ID:ueNxgoBDそれは思い当たるふしがあります。
それかな。
書店で立ち読みしたり、いろんなサイト参考にしました。
肝心なグーグルにはRESTの仕方がどこにあるかわからなかったんです。
http://code.google.com/intl/ja/apis/youtube/developers_guide_protocol.html#Developer_Key
このへんを普段は見てるんですが、RESTのやり方出てるところご存じないですか?
0187nobodyさん
2008/11/18(火) 12:58:32ID:???まず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:???動画の取得と検索したいんだろ?
なんで認証セクション読んでるんだよ
0189nobodyさん
2008/11/18(火) 13:08:22ID:???なんでわざわざ古いほう使うの?なにか問題があるのか?
0190nobodyさん
2008/11/18(火) 13:19:11ID:???APIのページを読んでないから新しいのを知らない
マニュアル読まないタイプ
0191nobodyさん
2008/11/18(火) 13:31:28ID:A89iT03e<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:???PHPのソースコードじゃないただのテキストをincludeしてるのか?
簡略化しないでちゃんとしたソースを出さないとエスパーすぎて答えようがない
0193nobodyさん
2008/11/18(火) 13:45:17ID:A89iT03eつまりそういうことです。
言葉足らずですみません。
ソースと言っても
〜HTML文〜
<?php
include(list.dat);
?>
〜HTML文〜
くらいしかないので
0194nobodyさん
2008/11/18(火) 13:51:07ID:???<a href="./http://hoge.net/">hoge</a>
0195nobodyさん
2008/11/18(火) 14:00:37ID:???自分の環境だと正常だけども・・・
fileで読み込んでループさせて表示するとかでもいいんじゃない?
foreach(file("list.dat") as $value) {
echo $value;
}
とか
0197nobodyさん
2008/11/18(火) 14:36:50ID:???俺にはさっぱり理解できないや
0198nobodyさん
2008/11/18(火) 15:35:24ID:WbAApVvS本当にロックされているのかどうか、わからない。
「ファイルロック発動!!」
「カシーーーン!!!!!」
とかって派手に音が鳴って欲しい。一回ごとに。
0200nobodyさん
2008/11/18(火) 15:58:00ID:???音がなったとこでどのみち一緒
音はなってるけど本当にロックされてるのかわからないとか言い出しそうだな
0201nobodyさん
2008/11/18(火) 16:31:39ID:WbAApVvSPOSTでデーターがくるってわかりきってるときに
$_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<!-----この形式------>
のコメント書いても、ちゃんとコメントとして機能
するんだよね?
だったら、全部、<!-----この形式------>で
コメント統一してもいい?
0205nobodyさん
2008/11/18(火) 17:03:53ID:???phpのコメントは「// 〜〜」と「/* 〜〜 */」
0207202
2008/11/18(火) 17:42:47ID:???回答ありがとうございます!
$arrayの中身を確認したら、不可視ファイルのサイズまでgetしようとしている事がわかりました。
お手間かけました。解決しました。
ありがとうございました。
0209nobodyさん
2008/11/18(火) 21:13:41ID:If9cERb/どういう名前で受け取るのですか?
一般的にポストは$_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:minqEeYS0214nobodyさん
2008/11/18(火) 23:05:07ID:WbAApVvS↑ここを読んで、
「Notice: Undefined index: 」というエラーを消すための
方法を勉強してたんだけど、なんで
if(isset($_GET[”s”]) && $_GET[”s”]) {
/* 以下略*/
}
って、2つ書かないとだめなのかな?
理由をわかりやすく教えてくれる?
0215nobodyさん
2008/11/18(火) 23:06:05ID:WbAApVvS理由が書いてないんだよね
0217nobodyさん
2008/11/18(火) 23:20:42ID:WbAApVvSこっち見てたら、また別のサンプルコードが見つかった。
if (!isset($_POST['action']))
{
//If not isset -> set with dumy value
$_POST['action'] = "undefine";
}
どれを使えばいいんだ?
0218nobodyさん
2008/11/18(火) 23:27:21ID:???少しは学習しろよ低能
パーミッションの時からちっとも態度が変わってねーじゃねえか
下らんことばっか聞いてないで少しは自分で考えろ
0219nobodyさん
2008/11/18(火) 23:31:02ID:???ネット上に存在する2種類の人種の人たちを示す揶揄された敬称のことであるが
その影には「教えない君」という人種が多数いるの事にはあまり注目されていない。
しかし、実はその「教えない君」という人種が一番厄介かつ迷惑な存在だったりするのである。
そもそも荒れる原因というものは「教えない君」の、無秩序かつ、無神経なレスにある部分が
大多数なのだが、彼らの多くは、そういった感覚はどうやら持ち合わせていないようである。
第三者がそうした場面を見た場合に、誰に一番の非があるというのは
「教えない君」にあるというのが客観的事実であるのは明らかなのであるが、
彼らは認めようとしない。
表面上は、「教えない君」はネット上のルールや倫理や秩序などを叫ぶのであるが
どうやら真相は、現実社会において蔑まれる存在である「教えない君」の
鬱憤晴らしのようである。
上記でそういった悲哀のレスを付けた人たちは、勇気を持って自らの弱さと過ちを認め
反省しなければならない。
それが、キミたちニートの人間的に成長できる数少ないチャンスなのである。
0220nobodyさん
2008/11/18(火) 23:38:38ID:WbAApVvSここ見てたら、さらに別の書き方を発見。
if (isset($_SESSION['DefaultBlogDate']) && is_null($_SESSION['DefaultBlogDate']))
いったい、どれを使えばいいのか?
0221nobodyさん
2008/11/18(火) 23:45:08ID:???これはだめなの?どれ使えばいいの?
いちいちそんな細かいことばっか疑問もってたら先に進まない
使ってみてだめなのかマニュアル見ながら動かしてみろよ
好きなの使ってみていろいろと発見してみろよ
全ての疑問に説明が必要な要領の悪いやつはプログラム向いてないからやらなくていいよ
それでもやりたいなら金払って学校でもいけよ
0222nobodyさん
2008/11/18(火) 23:50:50ID:???ま少しは自分の頭使って考えてみ
0223nobodyさん
2008/11/19(水) 00:18:07ID:???そもそも変数が存在しない(送信されていない)ときはどうするのかということを考えろ
お前が考えている仕様次第だ
0224nobodyさん
2008/11/19(水) 02:04:29ID:73F27S5Bから「PHPを使った正規表現処理」という文字列を抽出したいのですが、上手くいきません。
↓の方法のどこがいけないのでしょうか?
preg_match("/<!--topentry-->(.*?)<!--\/topentry-->/",$data,$match);
0225nobodyさん
2008/11/19(水) 02:14:09ID:???$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-->」はマッチしないのですが、この場合どうすればよいでしょうか・・・?
0227nobodyさん
2008/11/19(水) 02:28:26ID:???(データベース内容をCSVで表すと
"1","aaa","100"
"2","bbb","150"
"3","ccc","130"
↑このaaa、bbb、cccを配列として持ちたい)のですが
やり方として、新しい空の配列を作ったあと、
mysql_fetch_array() とかで行を抜き出して
欲しい列の値を配列にarray_push するのが
一番効率いいのじゃないかと思っているのですが
どうでしょうか。もしもっといい方法があったら教えてください。お願いします。
0229nobodyさん
2008/11/19(水) 02:46:37ID:???0230nobodyさん
2008/11/19(水) 04:08:03ID:???【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【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:???ヒント:パターン修飾子
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:???0236nobodyさん
2008/11/19(水) 08:47:03ID:???これって危険?
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:???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/HC40wemptyを使う方法、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:???http://agribiz-fair.jp/
ここのサイトなんだが、
http://agribiz-fair.jp/2007/list/
http://agribiz-fair.jp/2007/list/detail.php
↑こういうリンクをクリックすると、phpのソースがまるっと
出てきてしまう。アパッチの設定ミスか?
0254nobodyさん
2008/11/19(水) 21:23:44ID:???お、本当だ
つーかそこの人に連絡してやれよ
多分PHPが使えるディレクトリ等を制限してるんじゃないかな
んでそこを使えるように.htaccessかconfの変更忘れかで
そういう状況
0256nobodyさん
2008/11/19(水) 21:30:21ID:???XXSし放題じゃん
0258nobodyさん
2008/11/19(水) 21:39:17ID:???0259nobodyさん
2008/11/19(水) 21:40:47ID:???自分で踏んで自爆か?
0260nobodyさん
2008/11/20(木) 00:15:53ID:GXD6uC7d1.氏名を表示させる
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が空白になるの?
今度それがわかんない。
0262260
2008/11/20(木) 00:51:53ID:GXD6uC7d練れないです たすけてくだしあ
0263nobodyさん
2008/11/20(木) 01:37:59ID:???result.phpの、
21行目くらいの、
if(isset($_POST["hobby"];)){
↑これ、余計なセミコロン;がついてる。
0264nobodyさん
2008/11/20(木) 01:48:14ID:???0265260
2008/11/20(木) 01:49:02ID:GXD6uC7d本当に感謝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 ';'
って書いてあるもんだから、余計な;セミコロンが
あるんだろうなー、、、てわかったんだけど、
エラーメッセージは見なかったのかな?
0267260
2008/11/20(木) 01:52:55ID:GXD6uC7d付け加えたら氏名がhobbyになりますた
0268nobodyさん
2008/11/20(木) 01:53:02ID:???0269nobodyさん
2008/11/20(木) 01:59:33ID:???print $sports ;
?>
↑これが唐突に出てきてるんだけど、
$sports はどこで定義されてるの?
0270nobodyさん
2008/11/20(木) 02:00:15ID:???0271nobodyさん
2008/11/20(木) 02:02:58ID:YCb8rCMrマニュアルをコピペしてるだけのサイトってなんなの?
検索でひっかかってすげーウザいんだけど。
0272260
2008/11/20(木) 02:08:17ID:GXD6uC7d修正した
>>270
会社ではあいよ
専門学校
>>266
エラー吹いたら英語の時点で読む気がwww
0273nobodyさん
2008/11/20(木) 02:16:54ID:HLYnX99eWindowsでphpファイルを作成しているんだが、
エディタの設定で、改行コードは、windowsの標準のCR/LFで
保存されてるんだが、サーバーにアップロードするときに、
特に何もしないで、CR/LFのままアップロードしてるんだが、
本当はUNIX標準改行コードのLFに直してから
アップロードしないとだめなの?
0274nobodyさん
2008/11/20(木) 02:24:44ID:HLYnX99e自己解決した。
アスキーモードでアップロードするなら、
FTPソフトが自動で改行コードも
変換してくれるそうです。
0275272
2008/11/20(木) 02:24:59ID:GXD6uC7dマジ分からんお手上げです><
誰か修正してくだしあ
0276nobodyさん
2008/11/20(木) 02:35:00ID:HLYnX99e↑ここ見てたら、こんな表現を発見してしまった
# // ボタンが押されたら
# if($_GET['cmd']<>""){
いったい、どれを使えばいいんだ?
0277nobodyさん
2008/11/20(木) 02:36:28ID:HLYnX99eデフォルトではNULLなのか?
0279nobodyさん
2008/11/20(木) 03:57:43ID:8S9SJ1aO31日、毎日違う文を表示させたいのですがどう書いたらいいですか?
フリーで探したんですけどなくて・・・
0280nobodyさん
2008/11/20(木) 04:00:01ID:???んで31個文章作るだろ?
あとはそれ同士をくっつけて取ってくればおk
0281nobodyさん
2008/11/20(木) 05:25:19ID:???0282nobodyさん
2008/11/20(木) 05:34:31ID:???ID:LBY0wnii
ID:uO1yzOV4
ID:WbAApVvS
ID:rh/HC40w
ID:HLYnX99e
0283nobodyさん
2008/11/20(木) 05:36:52ID:8S9SJ1aO<?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:???switch文にしな
というかファイル名と日時が一緒なら
単にinclude($today["mday"] . ".php")でいいのでは?
0285nobodyさん
2008/11/20(木) 06:21:13ID:8S9SJ1aOありがとうございます
<?php
$today = getdate();
include($today["mday"] . ".php")
?>
で、済むということですか!?
0286nobodyさん
2008/11/20(木) 07:30:39ID:???1.phpから31.phpを用意するならね
同じディレクトリだとファイル数が多くなってごちゃごちゃするから
もしやるなら別のディレクトリにしたほうがいい気がするけど
include("./dir/" . $today["mday"] . ".php")
今日は○日ですというだけのスクリプトならば
$today = getdate();
echo "今日は" . $today["mday"] . "日です<br>\n";
だけでいいし
数文字程度の占いみたいなメッセージをechoするだけなら
わざわざ30個ファイル作るよりswitch文使って条件分岐した方がいいと思う
その場合メッセージをreturn値にして関数化したほうがごちゃごちゃにならなくていいと思う
0288nobodyさん
2008/11/20(木) 09:17:44ID:8S9SJ1aOちょっとreturn値とか頭がこんがらがりそうなので
先ほど教えてくれた、
include("./dir/" . $today["mday"] . ".php") でやってみる事にします。
ありがとうございました。
>>287
わかりました!
でもちょっとやり方がわからないので1−31まできちんと用意すれば
大丈夫ですよね?;
0289nobodyさん
2008/11/20(木) 09:31:03ID:???$inc_file = "./dir/" . $today["mday"] . ".php";
if (file_exists($inc_file)) {
include($inc_file);
else {
echo "ファイルがないよ";
}
例外処理でやるのが理想的だけどわからなそうだから
簡素化するとこんな感じかね
0290nobodyさん
2008/11/20(木) 11:19:40ID:8S9SJ1aO助かりました、そのまま使わせていただきます
親切にありがとうございます!
0291nobodyさん
2008/11/20(木) 13:12:48ID:???とかどう
0292nobodyさん
2008/11/20(木) 13:30:28ID:???その時点でincludeされてしまうだろ
is_readableとかならわかるけどさ
きりがないしそこまでやる必要はないと思うけどね
0293nobodyさん
2008/11/20(木) 16:27:48ID:???0294nobodyさん
2008/11/20(木) 16:46:35ID:???2回includeするもんだと思ってたわ
でも条件演算子を普通に使うのは違和感がある
0295nobodyさん
2008/11/20(木) 16:50:28ID:???0296nobodyさん
2008/11/20(木) 17:02:26ID:HLYnX99e変数を初期化する、って言ったら、普通
$a= "";
ってするものなの?
0297nobodyさん
2008/11/20(木) 17:05:27ID:???0298nobodyさん
2008/11/20(木) 17:12:49ID:HLYnX99e↑これでもいいの?
0299nobodyさん
2008/11/20(木) 17:14:55ID:???if文でどう書くの?
if (file_exists($inc_file) && include($inc_file)) {
}
この中身を空にするわけ?
いろいろと構文的にもおかしいよ
0300nobodyさん
2008/11/20(木) 17:20:00ID:???0301nobodyさん
2008/11/20(木) 17:22:23ID:???ここを汲み取れ
ちなみにincludeするファイル内にreturn書いてない限りifにincludeを書かない方がいいよな
読めなければfalseになるが、E_WARNINGを制御出来るわけじゃないし
0302nobodyさん
2008/11/20(木) 17:40:31ID:???includeはできるわけでincludeできることを前提で書いたほうがいい
もしファイルが存在して読み込み可能なのにincludeできないなんてことが仮におこった場合
それは普通の状態でないわけで
書き手がそこまで責任を負うことはない
0303nobodyさん
2008/11/20(木) 17:47:16ID:AwsGLaDAhttp://www.php.net/manual/ja/language.operators.logical.php
>>295 は例1に書いてあることを言っているんじゃないかと思う。
質問者にとってはどうでもいいことだが。
>>302
あなたのところではそうかもしれないが、少なくとも私のところでは
そうではない。
どうでもいいことだが。
同じ人が同じような処理をするコード書いても、前提や目的によって
だいぶ変わるだろ。そういうことを無視して意見されても全く参考に
ならない。
0304nobodyさん
2008/11/20(木) 17:50:08ID:???「仮に」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:???0307nobodyさん
2008/11/20(木) 17:55:57ID:???じゃぁifの中にinclude入れると意味ないんじゃ・・・
includeすることが前提で読み込まなきゃ先に進めないようなものならrequire使うだろうし
でも構文的には間違ってないな、目的の用途しては適してないだろうけど
0308299
2008/11/20(木) 17:56:49ID:???勘違いしてた
if文の中身書かないとなんかwarnが出たと思ったけど気のせいだった
もし中身書くなら条件文を否定にすればいいのかな?
if (!file_exists() && !include()) {
echo "includeできない";
}
0310nobodyさん
2008/11/20(木) 17:57:28ID:HLYnX99eごめん、初心者なんでそれだけだとわかんない。
0313nobodyさん
2008/11/20(木) 17:58:52ID:HLYnX99eあのさ、キミいつも
教え方があまりにも抽象的すぎるんだよ
会社でもそういわれるだろ?
「もっと具体的にわかりやすくしゃべれ」って。
0314nobodyさん
2008/11/20(木) 17:59:24ID:???if (file_exists($inc_file) {
include($inc_file);
} else {
echo 'includeできない';
}
でいいじゃん
0315nobodyさん
2008/11/20(木) 17:59:59ID:???0316nobodyさん
2008/11/20(木) 18:01:37ID:???ずばりそれ
別に短く書くことを競ってるわけじゃないしな
後はis_readableとか、is_file絡めるくらいっしょ
0317nobodyさん
2008/11/20(木) 18:02:29ID:HLYnX99eサンキュー
構文チェックしたら
No syntax errors detected
になるんだけど、なんで??
無料のエディター使ってるから?
0318nobodyさん
2008/11/20(木) 18:02:44ID:???その通り
ファイルの存在チェックとincludeできるかの評価を
一緒の式ですべきでない
もしやるとしたら
if (file_exists($inc_file)) {
if (include($inc_file)) {
}
}
どうみても冗長だけど
0319nobodyさん
2008/11/20(木) 18:04:30ID:???0320314
2008/11/20(木) 18:06:04ID:???ってまぁ>>289で既に書かれてたから蛇足もいいところだけど
>>318
それだったら波括弧いらなくね?
てかifの中に入れる場合の議論をする必要性がわからないw
「ifだったら>>291は動作しない」→「仮にifに入れても動作は同じ」っていう仮定の話だったのにw
0321nobodyさん
2008/11/20(木) 18:06:44ID:AwsGLaDA「すべきでない」理由とはなんですか?
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はちゃんと判別できるの?
0325nobodyさん
2008/11/20(木) 18:14:43ID:HLYnX99e<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それ、321に対する回答でしょうか?
「一緒の式ですべきでない」のが「warning対策」という主張なら、
303に書いたリンクにかかれていることからも、実際に試してみた
結果からも、理解できませんでした。
0329nobodyさん
2008/11/20(木) 18:23:39ID:???変数使う時は初期化するのが原則だもんな。
発想は斬新で素晴らしいと思う。
>>328
322でも307でもないけど、307は
「ifは条件を満たしたときに実行したい処理を書くために使うもので、
Warning防止の目的なら291でいいし、未読み込み時の処理実行を防止したいなら
requireを使えばいい話だ」ということを言ってるんじゃないかな
0330nobodyさん
2008/11/20(木) 18:25:22ID:???includeできるかどうかをチェックするって発想が
includeできる状態かどうかをチェックするっていう発想が正解
その上でincludeするのがプログラム的にも自然
この辺は感覚だからうまく説明できないけど
まぁ慣れてくればわかるよ
0333nobodyさん
2008/11/20(木) 18:43:39ID:???0334nobodyさん
2008/11/20(木) 18:45:25ID:???0335nobodyさん
2008/11/20(木) 18:45:45ID:AwsGLaDA307に書かれていることを質問しているわけではないですし、
その要約も318の「一緒の式ですべきでない」につながりません。
>>330
includeできる状態かチェックしても、includeしたとき
「includeできる状態」かどうかわかりませんよ。
ええ、くだらないこと書いてるのは百も承知です。
だけど、自分の正解がみんなの正解とは限らないんですよね。
0336nobodyさん
2008/11/20(木) 18:46:33ID:???悪文なのが原因
0338nobodyさん
2008/11/20(木) 18:48:54ID:HLYnX99e<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:???随分と疑い深い性格だね
要するにPHPの処理機構を信頼できないわけだな?
includeできる状態でincludeできないというのは起こりえない
その起こりえないケースを想定するなんて時間の無駄
0342nobodyさん
2008/11/20(木) 18:53:18ID:AwsGLaDA何を推測していただいたのか判りませんが、
私の頭の思考回路のことなら、たしかに問題あるでしょうね。
0343nobodyさん
2008/11/20(木) 18:56:18ID:???0345nobodyさん
2008/11/20(木) 19:01:31ID:HLYnX99eしかし変数を初期化すると、
ボタンを押しても何も表示されなくなるんだよ
なんでなんだろうね?
0346nobodyさん
2008/11/20(木) 19:01:45ID:AwsGLaDAPHPが信用できないとは書いていませんし、そう思っている
わけでもありません。
状態を確認してから実際にincludeするまでの間に、
何かが起こる可能性を無視できないんではないかと言っている
だけです。
無視できる人は無視すればいいです。私も無視しています。
0347nobodyさん
2008/11/20(木) 19:01:58ID:???0349nobodyさん
2008/11/20(木) 19:03:32ID:HrZmpLyBphpの本を買ったところ、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できる状態」かどうかわかりませんよ。
PHPの内部エラーかサーバのエラーとか想定外のエラーが起きた時にどうするんだみたいな?
昔そんな質問してきた新人がいて返答に困ったな。
そういうのは想定しなくていいとしか言えなかった。
というかID:AwsGLaDAは流れ的に>>291の式を支持してるんだよね?
↑の発言からするとID:AwsGLaDA的には>>291の式も信用できないんじゃないのかね?
0352nobodyさん
2008/11/20(木) 19:06:27ID:???0353nobodyさん
2008/11/20(木) 19:08:20ID:AwsGLaDA「ファイルがないケースもあるから、Warningでるとうざいし、
チェックしとこか」というケースなら、291を書くかもしれません。
330の「正解」という言葉に過敏に反応してレスしているだけです。
0356nobodyさん
2008/11/20(木) 19:11:14ID:???>>346では無視してるといいつつ>>303では私のところではそうではない(無視してない)って・・・
0357nobodyさん
2008/11/20(木) 19:12:20ID:AwsGLaDA335で書いているように、
「自分の正解がみんなの正解とは限らない」です。
前提条件を共有しているならその限りではないです。
0358nobodyさん
2008/11/20(木) 19:14:35ID:HrZmpLyBどうもありがとうございます
.soっていうのはリナックス向けなんですかね? とにかく助かりました、ありがとう。
0360nobodyさん
2008/11/20(木) 19:15:48ID:AwsGLaDAあ、ごめんね。
303で書いたのは、302の「書き手がそこまで責任を負うことはない」
の部分へのレスでした。
0361nobodyさん
2008/11/20(木) 19:18:59ID:HLYnX99ephpでは、ハッシュと言わずに連想配列と言うの?
0363nobodyさん
2008/11/20(木) 19:19:56ID:???>自分の正解がみんなの正解とは限らない
めんどくさい人だなw
学校の先生ですか?
この世界は答えは1つなんですよ
includeは制御構造であって関数じゃないんです
0364nobodyさん
2008/11/20(木) 19:23:07ID:AwsGLaDA「この場合」って >>285 とか?
自分で 285 のコード書いたとして、
特に問題があるとは思いません。
1から31まで用意しておけば動くんでしょ?
0365nobodyさん
2008/11/20(木) 19:26:09ID:???includeするタイミングとか方法の話をしてるんじゃないのか?
0367nobodyさん
2008/11/20(木) 19:34:27ID:AwsGLaDAえーと?
「includeできる状態」をチェックするのがWarningを抑制するためなら、
めんどくさいから
@include();
でいいんじゃないかと。
それ以外の理由なら、その理由による。
0368nobodyさん
2008/11/20(木) 19:40:56ID:???期待はずれでがっかりしたよ
随分自己主張するもんだから期待してたのに
そんな下らない答えだしてくるなら絡みなさんな・・・
0369nobodyさん
2008/11/20(木) 19:45:38ID:AwsGLaDA何を期待していたんですか?
たぶん私が考えている「この場合」と他の人のが
違うんでしょうね。まあ当然だけど。
0370nobodyさん
2008/11/20(木) 19:51:38ID:HLYnX99e一般的に、GETで入力値を受け取るのは、危険な行為?
0371nobodyさん
2008/11/20(木) 20:06:49ID:???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:???0378nobodyさん
2008/11/20(木) 21:14:48ID:???0379nobodyさん
2008/11/20(木) 22:03:29ID:???雑魚め
0380nobodyさん
2008/11/20(木) 22:23:23ID:L838VyLV0381nobodyさん
2008/11/20(木) 22:35:59ID:???雑魚め
0382nobodyさん
2008/11/20(木) 22:55:38ID:qsQyZgQW【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:L838VyLV0385nobodyさん
2008/11/20(木) 23:06:37ID:???0386nobodyさん
2008/11/20(木) 23:10:42ID:???0387nobodyさん
2008/11/20(木) 23:15:35ID:HrZmpLyBhttp://localhost/index.php をブラウザのURL欄に入れてEnterおすと
このURLに移動しますよね?
やったところ、 「このアドレスへのリクエストに対するサーバのリダイレクト設定がループしています。」という
メッセージが出てきます。
これ自体はプログラムがミスしてるんだなと思うんですが、なぜかこのときURL欄をみると
http://localhost/index.php/ という風に最後に / がついてしまっています。
これはなぜでしょうか?
わからないのですが、、
環境は php5 apache2 でZendFWを使っています。
0388nobodyさん
2008/11/20(木) 23:18:57ID:AwsGLaDA全然原因が思いつかないけど。。
コマンドプロンプトで、
> php -rf mb_ereg_replace
とか
> php -re mbstring
とかしたときに、それらしいものは出てきますか?
0389nobodyさん
2008/11/20(木) 23:19:25ID:???たぶん同じのでるから
0390nobodyさん
2008/11/20(木) 23:24:17ID:???0392387
2008/11/20(木) 23:54:47ID:???仕様なのかもしれないですね、ループしてしまう部分もあわせて
どうにか解決したいと思います。
これからはZendFWのスレで聞きます。 ありがとうございました。
0393nobodyさん
2008/11/21(金) 00:22:41ID:zW/fBXPAhttp://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/W6tPHPとかPerlとか全く知らないんだけど
どっちか片方覚えておけばいいの?
それとも両方覚えないといけないの?
0396nobodyさん
2008/11/21(金) 00:34:24ID:???0398nobodyさん
2008/11/21(金) 00:51:54ID:???マジで聞くことがあったWebプログラミングを勉強する上で
UNIXで動かさないとダメなの?
Windowsにアパッチ入れてみたけど、それで勉強したとして
それで出来上がったファイルをレンタルサーバに入れて
おk?
0400382
2008/11/21(金) 01:33:25ID:F+S9pS9uMicrosoft 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:???0402nobodyさん
2008/11/21(金) 02:02:30ID:???0403nobodyさん
2008/11/21(金) 02:05:18ID:???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:???>>1
http://www.google.com/search?q=%E3%81%94%E6%95%99%E6%8E%88
0405nobodyさん
2008/11/21(金) 02:09:46ID:AgX6JP+GID出し忘れました。失礼しました。
ご教授ください、は誤用なんですね……。
0406403
2008/11/21(金) 02:35:55ID:???何でも最新がいいわけではないんですね。
失礼しました。
0407382
2008/11/21(金) 02:43:19ID:???ふつうにご教授頂ければ幸いです。とかつかってたよ。はずかしい。。。
0408nobodyさん
2008/11/21(金) 05:37:17ID:???とあるスレで発言したら、焼き餅焼かれてひどい目にあったので、こっちに来た。
CCNP取ったって言ったけど、元はweb系のSE。
web系の案件も何件かやって、やり尽くした感があるので、今はweb系より高度な技術が要求されるインフラ系のSEにスキルアップ中。
0410nobodyさん
2008/11/21(金) 07:34:39ID:BR6mi0Leごめん。
php --rf mb_ereg_replace
php --re mbstring
だった。
php -h でコマンドラインオプションが確認できます。
間違っていることに気づいて、正しいオプションで実行した結果が
あれなら、重大な問題があるような気がします。
エラーログにも残っていると思うけど、IISだとどうなのか
よくわからないなぁ。
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に
$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:XpwRzbFr0418nobodyさん
2008/11/21(金) 15:48:54ID:???0419nobodyさん
2008/11/21(金) 22:01:25ID:zW/fBXPA拡張子が.phpでもSSIって使えるの?
よくある設定だと、SSIを使いたいときには、
拡張子をshtmlにしてください、とかあるじゃん。
そしたら、php使えなくネ?って思うわけだ。
0421nobodyさん
2008/11/21(金) 22:14:33ID:???fget()は1行ずつ取る関数。
それならループで回せばいい。
PHP5ならstream_get_contents()が楽ちん
0422nobodyさん
2008/11/21(金) 22:14:56ID:???0425nobodyさん
2008/11/21(金) 22:21:20ID:zW/fBXPA何回も使うファイルをincludeするのに、
SSI使う方法と、phpのinclude使う方法と、
2つの選択肢があると思うのだが、
どちらを使ったほうがいい?
0426nobodyさん
2008/11/21(金) 22:23:56ID:???PHPでは配列と連想配列との区別はない
よって全てを「配列」と呼んでおけばいい
っていうか、そもそも連想配列=ハッシュでないので。
0428nobodyさん
2008/11/21(金) 22:31:22ID:???0429nobodyさん
2008/11/21(金) 22:32:36ID:???http://www.php.net/manual/ja/language.operators.php
型の概念が理解できているなら「===」と「!==」を使う事をお勧めしとく
0430nobodyさん
2008/11/21(金) 22:37:01ID:???http://www.php.net/manual/ja/reserved.variables.request.php
0431nobodyさん
2008/11/21(金) 22:58:47ID:???$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:???てかID:zW/fBXPAは連日むかつくよ。
PHP以外の言語も知っているような口ぶりだけど
なんでそんなにえらそうな聞き方するんでしょう?
自分で調べようとしてなさそうだし
教えてもらったのならありがとうの一言くらい言えばいいのに。
0433たまちゃん ◆ExGQrDul2E
2008/11/22(土) 00:21:58ID:AbVJZ2V5省略を表示する以前の文字が表示されません。
文字...略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:???if (淡々と答える事が出来る) {
淡々と答える;
} else {
スルー;
}
>>428
「ハッシュテーブル」とかでググるといいよ。
まぁperlとかでは連想配列をハッシュと呼ぶのが通例だし細かい事は気にするな
>>425
require
PHP5ならautoloadなんかも上手く使うといい
0435nobodyさん
2008/11/22(土) 00:34:45ID:???$encoding = 'UTF-8'; // 実際は定数にする事
$str = 'オリジナルの文字列';
$len = 10;
$str2 = (mb_strlen($str, $encoding) > $len) ? mb_substr($str, 0, $len, $encoding) . '省略' : $str;
echo $str2;
0437435
2008/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;
0439438
2008/11/22(土) 00:40:46ID:???0441nobodyさん
2008/11/22(土) 00:45:58ID:???スレが荒れるから回答者は全員スルーしたほうがいい
過去にも何度もあったことだ・・・
このままの調子だと
回答者はマナーのなってない質問者には回答してはならないっていうルールができてしまう
0442nobodyさん
2008/11/22(土) 00:59:21ID:???別スレに逃げ出したぞ
ほんと腐ってるね
0444たまちゃん ◆ExGQrDul2E
2008/11/22(土) 01:19:45ID:AbVJZ2V5ありがとうございました。
うまく動きました。
>>435
これだと、タグの途中で切れたら
意味がなくなるみたいです。
0445nobodyさん
2008/11/22(土) 01:26:36ID:???些細なミスをした店員を執拗に罵倒してる客とかたまに見るけど、
普段怒られてばっかで、怒ることに慣れてないから必要以上に相手を罵っちゃうんだろうな。
加減が分からないって可哀想だよね。
0446nobodyさん
2008/11/22(土) 01:40:28ID:???0447nobodyさん
2008/11/22(土) 02:36:26ID:???0448nobodyさん
2008/11/22(土) 16:01:33ID:ngL3J7iI広告が入らないところといったら、
一番安いのは、さくらになってしまうのかね?
0450nobodyさん
2008/11/22(土) 17:11:51ID:iSnXxlqn全文を表示させるようにしたいのですけど、どうやるのでしょう?
「続きを読む」という文にリンクをかけて、もう一つ全文記事を作って
そこで全部書けばいいのでしょうか?
0451nobodyさん
2008/11/22(土) 17:35:35ID:???0452nobodyさん
2008/11/22(土) 18:00:08ID:???最近の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:???http://fdays.blogspot.com/2008/02/php5.html
対話的操作なら、var_dump()で良さそうです。
0455nobodyさん
2008/11/22(土) 21:25:18ID:b7xKLs1Nttp://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:P3cvCpOqapache + mod_phpで動かすのだと
どっちの速度が速い?
0458nobodyさん
2008/11/22(土) 22:03:44ID:???0459nobodyさん
2008/11/22(土) 22:05:15ID:???他のサーバにアップロード用のプログラム用意して、socketで画像データをpostするとか
勿論セキュリティ上出来ない場合もあるだろうし、何より改変は変数一つ書き換えるだけでは済まない
0460nobodyさん
2008/11/22(土) 22:11:43ID:???流すようにした方が多分作るのは楽だろw
0461nobodyさん
2008/11/22(土) 22:13:32ID:???0462nobodyさん
2008/11/22(土) 22:17:29ID:P3cvCpOqどんな?
0464nobodyさん
2008/11/23(日) 08:59:40ID:7jpbyfc1アップしたんですが、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もう少し調べてみます
0468nobodyさん
2008/11/23(日) 12:42:11ID:???うる覚えだけど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:I9fabXwC0472nobodyさん
2008/11/23(日) 16:57:45ID:I9fabXwC0473nobodyさん
2008/11/23(日) 17:01:02ID:???0474nobodyさん
2008/11/23(日) 17:15:59ID:I9fabXwCJavaや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:???だと実行できない理由です。
実行できない理由は、そういう風に作られているから
実行できないように作られた理由は、知らん
0479nobodyさん
2008/11/23(日) 18:22:18ID:???>問題なく動くようなのですが
は親クラスで何か定義されてるんじゃないの?
>>477
「クラスの中」と「クラス内のメソッド」と「外」は、
それぞれスコープ違うよ。
じゃ無いとインスタンスの内部に保存した変数が
上書きされちゃって困るだろ。
0480nobodyさん
2008/11/23(日) 18:33:47ID:???>>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
ぜんぜん釣りじゃないよ。
どこがデタラメなのか真剣に知りたいんだけど。
0482nobodyさん
2008/11/23(日) 18:35:38ID:I9fabXwC> は親クラスで何か定義されてるんじゃないの?
されていません。>>476のコードをお試しください。
> >>477
> 「クラスの中」と「クラス内のメソッド」と「外」は、
> それぞれスコープ違うよ。
それは知っています。私は元々Java屋です。
しかし、スコープが違うことと、
$this->変数 は実行できても、変数->変数 が実行できないこととは
あまり関係がないと思うのですが。
いずれにせよ、これらの機能は、フレームワークのソースで使われているわけ
ですから、undocumentedな隠し機能をではないだろうと思ったのですが、典拠
を見つけられなくて困っているのです。
0483nobodyさん
2008/11/23(日) 18:49:20ID:I9fabXwC【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:???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:???やってみたけどvar_dump($test->$y);も実行できたよ(int(1))
> 特に知りたいのは、レシーバが $this なら実行できて、$testのような実変数
> だと実行できない理由です。
$y = "hoge"の末尾にセミコロンがない
0487nobodyさん
2008/11/23(日) 19:13:15ID:I9fabXwC> 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大正解…。自分も確認しました。セミコロンか…ごめんなさい。
プロパティ名はどこでも変数でパラメタライズできる、ということのようです。
メソッドでも行けますね。
$y = "fuga";
$test->$y(); //int(1)
ありがとうございました。よろしかったら資料をご紹介ください。
あと、どなたか >>470(>>476)についても。
0489nobodyさん
2008/11/23(日) 19:29:12ID:???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:CCu6AGm00491nobodyさん
2008/11/23(日) 19:34:59ID:???できない、って書こうとしたが、調べたらできるようだ。
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$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:???それは正式な仕様じゃないと思う。
おっぱいが式の前にパースされて、たまたま動いてるだけかと。
一手間増えても常に
$y = "fugafuga";
$hoge->$y;
にしておいた方が安全。
0495nobodyさん
2008/11/23(日) 20:25:45ID:???失礼、レスし忘れておりました。
私の質問の意図は、おっしゃるとおりです。
> と思ってて、この人何言ってるんだろうと思ってた。
Cakeスレの人たちもそのように誤解したのでしょうか。自分でははっきり書い
たつもりだったのですが、実際は分かりにくかったようです…。
0496nobodyさん
2008/11/23(日) 20:28:25ID:???0497nobodyさん
2008/11/23(日) 20:30:02ID:???標準クラスの挙動が知りたいだけなら、Reflectionでソースを見ればだいたいわかる
0498nobodyさん
2008/11/23(日) 20:30:32ID:DgqkQkfl↓を試したんですが出来ませんでした。どこを直せばよいでしょうか?よろしくおねがいします。
<?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:???> $a = "hoge";
> var_dump($test->$a());
> って出来る筈なのに出来ないのは何故だーって話だったのか。
出来るよ?
0500nobodyさん
2008/11/23(日) 20:39:18ID:I9fabXwCおお、興味を持ってくれた方が。
これはメタプログラミングに属する話題で、RailsのクローンであるCakeを成り
立たせた重要な技術だと思うんです。
>>494
そうですね。これは避けます。
そもそも、リテラルで呼び出すメリットはありませんから。
(関数名が固定だったら、直接 fugafuga() と書けば良い)。
>>496
書いてますので、冷静に読み直していただいたら、別の見解があるかもしれま
せん。つうか嘘って何?
>>497
よく分かりませんが、リフレクション機能のCのソースを読めとおっしゃってる
のでしょうか?
ご回答いただきありがとうございます。いったん所用でここを離れます。
0501nobodyさん
2008/11/23(日) 20:58:52ID:???>おお、興味を持ってくれた方が。
>これはメタプログラミングに属する話題で、RailsのクローンであるCakeを成り
>立たせた重要な技術だと思うんです。
get_class_vars
get_class
get_class_methods
call_user_func(array($obj, $method_name), $parameter);
辺りでどうにでもなると思うけど。
0503nobodyさん
2008/11/23(日) 21:12:49ID:DgqkQkfl!!!
ありがとうございました。恥ずかしいっスorz
0504498
2008/11/23(日) 21:32:36ID:???とある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;
}
0505498
2008/11/23(日) 21:33:15ID:DgqkQkfl0507nobodyさん
2008/11/23(日) 21:40:21ID:EISunP9D(1)東京か、地方か
(2)年齢
(3)使用言語
(4)使用OS
(5)分野(ゲーム、業務、ネットワーク、携帯等)
(6)希望している月額の金額
(7)最終学歴
こんなアンケート作って
統計処理しようと思ったんだけど、ただ単純に
データーを保存しただけでは、いわゆるカード型データーベースに
なってしまうので、いわゆる統計処理をしたいのであれば、
最初から、リレーショナルデーターベース、(MySQLとか)に
保存するように設計しないとだめなのかな?
0508nobodyさん
2008/11/23(日) 22:06:40ID:???0509nobodyさん
2008/11/23(日) 22:09:44ID:EISunP9Dなんで?
ネタですか?
0510nobodyさん
2008/11/23(日) 22:14:23ID:???単純にファイルに行単位で追加書き込みしていってもいいかと思う
0511nobodyさん
2008/11/23(日) 22:16:42ID:EISunP9Dいやだから。
そのあとで、統計処理するんですよ。
東京が何人で、地方が何人とか。
大卒で35才以上だけ抜き出して人数表示するとか。
そうしたらリレーショナルデーターベースでないと
できないんでしょう?
0512nobodyさん
2008/11/23(日) 22:21:24ID:???0513nobodyさん
2008/11/23(日) 22:28:26ID:???0514nobodyさん
2008/11/23(日) 22:34:16ID:EISunP9Dそういうことです。
0515nobodyさん
2008/11/23(日) 22:38:21ID:???0516nobodyさん
2008/11/23(日) 22:45:04ID:???それを行ごとに配列で読み込んで、
ループでif (地方 && 高卒 && 35歳以上)
とすればいいだけ
個人でスケーラビリティ(状況に応じてデータベースサーバを何台も増設するみたいな)を考慮しないんであれば、
それで十分だよ
0517nobodyさん
2008/11/23(日) 22:49:43ID:EISunP9Dその条件が
0518nobodyさん
2008/11/23(日) 22:50:24ID:EISunP9D、、、って書こうと思ったが、それは変数で処理すればいいのかな?
0519nobodyさん
2008/11/23(日) 22:52:24ID:???0520nobodyさん
2008/11/23(日) 23:22:35ID:???カンマで区切って書き出すだけで.csvファイルとして
エクセルに読ませれば並び替えと抽出できるし、
配列とかの処理すら不要に感じる。
以下のファイルをダウンロードして下さい(エクセル形式)
で、押し通せば良いんじゃねーの?
「なんと、エクセルで読み込めるんです!」くらいの勢いで。
0523nobodyさん
2008/11/24(月) 00:44:19ID:???そこまでの内容なら一日で覚えられるはずだし、どうしても複雑な条件を扱いたいならSELECTで抜いてからPHP側で処理する手もあるしな。
実行速度以前に、トータルの作業速度も恐らくSQL使ったほうが早い。
MySQLを導入するのがダルいってんなら、SQLiteかなんかに突っ込んでおけばいい。
インストール不要、ユーザー管理不要のお手軽DBMS。PHP5は標準で対応してる(5.2以降だっけか?)。
0524nobodyさん
2008/11/24(月) 01:18:49ID:Wj+KImYJ>>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> 自前でフレームワークを作ろうとしてるの?
> 観点が利用するという感覚じゃないようなので
いえ、私は単にCakePHP、およびPHP言語自体を理解したいだけです。
ソースを追っていて理解できなかったので質問させていただいたのです。
しかし、まだどなたにも参考資料をご提示いただけません。もしかして、この
件は全部、PHPマニュアルには無いのでしょうか?PHPってこういう「隠し機能」
だらけなのでしょうか?
しかし仮にそうだとしても、これだけメジャーなフレームワークが採用するぐ
らいですから、ある程度、PHPコミュニティで知られた機能だと思うのです。そ
ういう準公式ドキュメントのようなものは、どこかに無いものでしょうか。
0526nobodyさん
2008/11/24(月) 01:39:33ID:???どこにオブジェクトを引数として取れると書いてあるの?
$classnameを$objと書き間違えたんじゃないの?
0527nobodyさん
2008/11/24(月) 01:44:04ID:???ドキュメントが適当でクラス機能が壊れてるのがphp
まず最初にこれを学習したことが一番大きい
後は自分でシコシコ解析しながら進める
これがphpならではの勉強方法
0528nobodyさん
2008/11/24(月) 01:45:50ID:Wj+KImYJ$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> 標準クラスの挙動が知りたいだけなら、Reflectionでソースを見ればだいたいわかる
という言葉の意味を教えていただけませんか?
「Reflectionでソースを見る」とはどういう意味なのか、残念ながら見当が付
きません。リフレクションで分かるのは、ソースではなくて、生成されたイン
スタンスやクラスの特性だと思うのですが。
0530nobodyさん
2008/11/24(月) 01:49:19ID:???WEBプログラムはWindowsアプリなどよりも
ネットでのドキュメント量が豊富だと思いますが
0531nobodyさん
2008/11/24(月) 01:56:57ID:???http://php.plus-server.net/language.oop5.reflection.html#language.oop5.reflection.extending
0532nobodyさん
2008/11/24(月) 01:59:09ID:Wj+KImYJ> $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よりネット上のドキュメントが多いのは同意ですが、問題は、公式でな
い仕様はいつ変わるか保証が無いことです。
0534nobodyさん
2008/11/24(月) 02:06:26ID:???0535nobodyさん
2008/11/24(月) 02:16:41ID:Wj+KImYJすみませんがますます分かりません。コードを実行してみましたが、メソッド
名やクラス名、アクセス修飾子といった属性が取得できただけです。まあリフ
レクションとはそういうものですが。
そもそも、私の質問とどう関連するのか、申し訳ないのですが見当が付きません。
>>533
> 単純にあなたの検索力がかなり低いと思うのだが・・・
恥ずかしながら正解です。言い訳ですが、PHPは始めたばかりなもので。あつか
ましいとは思いますが、何とかお助けいただけないでしょうか。
>>534
> クラス機能が壊れてるから公式ドキュメントが無いんじゃないのw
そうかもしれません…。でも、コミュニティである程度は評価された機能でな
かったら、フレームワーク製作者はそれを利用しないと思うのですが。
0536nobodyさん
2008/11/24(月) 02:24:59ID:???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大変詳しい説明、ありがとうございます。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:???0539nobodyさん
2008/11/24(月) 08:19:42ID:???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【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:???'./data.dat'に書き込み権限が無いんでしょ。
つまりパーミッションを見直しましょうという事。
>>537
ここまでの流れも全く読まずにレス。
>>539も書いてるが、PHP4とPHP5の両方に無理に対応させようとした結果、色々と冗長な部分がある。
他言語から入ってきた人でもしも環境が許すなら、PHP5一本に絞る事をお勧めする。
もう俺、PHP4のソースなんて見る気がしないわ(;´A`)
>>507
PHPならMySQLかSQLiteが手っ取り早いだろうね。
ただ予想されるデータ数が少なくてテキストファイルベースでやりたいなら、
ある意味頭の悪い方法ではあるが、一度全部配列にぶち込んでしまえばいい。
あとは抽出なりソートなりどうとでもなる。
0542541
2008/11/24(月) 11:38:25ID:???あ、悪い。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:???あまりお勧めはしたくないが、拡張子「.html」をPHPとして動作するようにするかな。
「AddHandler htaccess」でググって見たらいい。
htaccessが許可されてないがSSIなら使えるサーバーなら
ヘッダ・フッタの読み込みにSSIの#includeを使うという手もあるね。
0545nobodyさん
2008/11/24(月) 12:19:02ID:???>を多用していたら、Zend社がそれを突然廃止したとき、困るのではありません
>か?特に仕事で使っているのなら。
なんで更新内容も吟味せずに100%機械的なアップデートが前提なんだ?
マニュアル読めば分かるけど仮に将来廃止傾向にある要素があったとしても
相当前から警告してくれてるし、開発コミュニティで情報共有もされてる。
別に嫌味を込めていうわけじゃないが、もうちょっとPHPの経験積んでから色々いちゃもん付けたほうがいいんでないかな
0546nobodyさん
2008/11/24(月) 12:21:03ID:MXksGNjbありがとうございます
あまりお勧めされない理由とは何でしょう?
0548nobodyさん
2008/11/24(月) 12:23:56ID:???おれもjava使いだけど、java育ちかどうかは関係ないんで、
java使いが誤解されるような書き方はちょっとね。
>>543
mod_rewriteが使えるならリクエストを1か所に集めて処理という手もある
0549540
2008/11/24(月) 12:26:21ID:161WFI/vレスありがとうございます
local上なので権限はやっぱり関係ないですよね
エラーログは出ないんです
見た目問題無く済んだように見えて書き込みだけされていません
試しにfopenをwで行うとちゃんと新規ファイルが出来るのでどう考えてもfputsが原因のようなのです
fputs自体をチェックしてみたところfalse(0)が戻ってきました
file_put_contentsだったら書き込めるのでローカルではこれで動かしているのですが
サーバーでfile_put_contentsは使えないのでどうにか直したいのです
0550nobodyさん
2008/11/24(月) 12:30:37ID:???(てか「なぜ採用したのか」とかなぜCakeのdev-teamに聞かずにここの連中に聞く?)
0552544
2008/11/24(月) 12:35:30ID:???>>544のやり方は、一番簡単で手を抜いた方法。
Apacheモジュール使う方法とかもあるのだけど、その辺りはあえて紹介しなかった。(初心者と書いてたので)
簡単で手を抜いた方法は、サーバーにとっては易しくない場合がほとんどなので、
共有サーバーなら少し気をつけた方がいいかなと思ったまで。
他にもトラブルの元になる場合があるかな。
例えば、htaccess使って拡張子「.html」をPHPとして動作するようにすれば、
本当にただの「.html」ファイルでもPHPとして動作しようとするよね?
例えばphp.iniの設定で
short_open_tag が ON になっている場合、xmlの構文でパースエラーが起こる可能性があったり。
(理由はXMLは「<?xml」で始まるから)
0553541
2008/11/24(月) 12:38:00ID:???fopen($path, 'w');
は新規ファイル出来るけど、
fopen($path, 'r+');
は駄目だよ??そこは大丈夫?(でもそれが原因ならエラーが出る筈だが)
file_put_contents()は糞便利なんだが、PHP5でしか使えないからねぇ。。
0554540
2008/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:8C5l1Dvrecho "$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了解、thanx
0560nobodyさん
2008/11/24(月) 14:33:47ID:???0561nobodyさん
2008/11/24(月) 15:57:33ID:???PHP関連の各スレへ1行で恥ずかしい無知な突っ込みいれてる馬鹿か?
ちなみにthanxは普通にスラングとして使われる綴りだが。
pleaseをplsとか書くだろ。
関数名でforを4と略したりtoを2と略したりするのと一緒だ。
0562nobodyさん
2008/11/24(月) 16:03:11ID:???PHP関連の各スレへ1行で恥ずかしい無知な突っ込みいれてる馬鹿か?
ちなみにthanxは普通にスラングとして使われる綴りだが。
pleaseをplsとか書くだろ。
関数名でforを4と略したりtoを2と略したりするのと一緒だ。
(笑)
0564nobodyさん
2008/11/24(月) 16:40:25ID:???0565nobodyさん
2008/11/24(月) 17:24:18ID:3UIztZ5+「file_put_contents」は文字列をファイルに書き込む関数、という
説明だが、もし「1」って書き込んだら、それは文字列と解釈され、
1+1などの計算をするときに、自動的に数値と解釈されなくなって
しまうのか?
それとも、コンテキストを見て判断して、数値と扱うべきところでは
自動的に数値になってくれるのか?
0567nobodyさん
2008/11/24(月) 17:33:21ID:???0568nobodyさん
2008/11/24(月) 17:44:15ID:???0569nobodyさん
2008/11/24(月) 17:52:18ID:???作れるよ
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:???0574nobodyさん
2008/11/24(月) 18:44:37ID:???〃〃∩ _, ,_
⊂⌒( `Д´) < ヤダヤダ! だって構って欲しかったんだもん
`ヽ_つ ⊂ノ
ジタバタ
_, ,_
(`Д´ ∩ < ヤダヤダ 灯油まいただけなのに逮捕なんてヤダヤダ
⊂ (
ヽ∩ つ ジタバタ
〃〃
0575nobodyさん
2008/11/24(月) 18:45:34ID:3UIztZ5+図を表示したいときは
ライブラリを使うのが常套手段なの?
PEARとかっていうのではだめなの?
0576nobodyさん
2008/11/24(月) 18:48:41ID:???0577nobodyさん
2008/11/24(月) 18:58:00ID:3UIztZ5+WEBアプリのAPIってどうやって作るの?
「5」とかの数値がサイト上にあって、
それに対するAPIを開放して、外部から利用できるように
したいんだけど?
0578nobodyさん
2008/11/24(月) 18:58:59ID:???毎日釣り糸垂らして楽しいの?
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:???PHP入門の心得 1.0.10p1
・質問は霞ヶ関でも通用するような完璧な形式に。
・過去ログは紀元前までさかのぼって完全に調べる事。
・新機能ができても細部にこだわってできるだけリリースしない。
・「正しい」か「誤っている」かを結論づけないと気が済まない性格になる事。
・質問自体は無視して語句の間違いの指摘に熱中する事。
・初心者を見たらできる限り冷酷に排除。
・回答は1行以内で簡潔に。 例:「マニュアル読め」
・古いバージョンを使っていることがわかると最新にしろという。
・一日三回食後必ずperlをあざ笑う事。
・自分の状態に「自覚症状」を持たないこと。
・板違いの質問をしたperlerを徹底的に叩く事。
・forkする時はアニメ絡みの名前をつける事。
・気に入らない投稿が流れてきたらメールアドレスも含めて全文コピペ
・意味もなく全角英数字を使うやつは小一時間問い詰める事。
0586nobodyさん
2008/11/24(月) 23:08:47ID:???大体正しいけど、実際の設定はその人の設定だから
何で書いて何で出力したいか次第。
厳密に言えば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:Z9Lf2PTJ0589nobodyさん
2008/11/24(月) 23:23:12ID:???勉強のためならどっちもやってみたら?
具体的なソースじゃなくてファイルベースの利点と欠点、DBの利点と欠点を調べたほうがいいと思うけど。
もしくは↓の人が丁寧に語ってくれる。
0590nobodyさん
2008/11/24(月) 23:28:56ID:???0591nobodyさん
2008/11/24(月) 23:35:47ID:3K7Ub6cb一応、単純なログ保存ならどっちも試した事があるのですが
そんなに変わらない気がします。DBを使ったログ保存でも
レコードが一定数になったら、削除したりテキスト化すると言う方法もあるし。
>>590
それは良いですね。analogとかawstatsとかおそらくアクセス毎に
ログファイルに記録してますが、そんなに遅いイメージ無いですし。
0592nobodyさん
2008/11/25(火) 11:31:32ID:DHbzqImi<select>
<option>肉</option>
<option>魚</option>
</select>
で、肉を選ばれたら肉のページ、魚を選ばれたら魚のページ、といったようにです。
簡単な雛形でいいのでどう書けばいいか教えて頂けませんか?
0594nobodyさん
2008/11/25(火) 11:51:22ID:sWMxGR9lのどっちに該当するの?
#というのが見つからんかった
0596nobodyさん
2008/11/25(火) 12:02:07ID:???文字コードのクライテリアの話をするときにJSPって(ry
0597nobodyさん
2008/11/25(火) 12:10:45ID:TqJfzk7aぼくみたいな偉いjava使いがわからないphpなんておかしいです。
こんなぼくにもわかるphpの公式ドキュメントはどこですか?
0598nobodyさん
2008/11/25(火) 12:23:12ID:???そういうのはjavascriptでやってくれたまえ
>>597
javadoc読めるならphpマニュアルだってなんとなく理解できるだろ
0599nobodyさん
2008/11/25(火) 12:24:47ID:???別にPHPでも良くね?
JavaScriptのほうが簡単なのは分かるがPHPでやるデメリットが何かあるの?
JS切ってる人も多いし
0600nobodyさん
2008/11/25(火) 12:30:56ID:???つまりいちいちメニュー選んだら送信ボタンを押せっていいたいんだな?
そんなマヌケなメニューなら最初から他の方法とったほうがいいと思うが
0601nobodyさん
2008/11/25(火) 12:35:53ID:???個人的にもイベントハンドラで勝手に画面遷移したり非同期通信したりするのはうざく感じる。
そんなとこより他の本質的な所に力使ってくれよみたいな。
あと切ってる人はどうすんの?
0603nobodyさん
2008/11/25(火) 13:16:08ID:sWMxGR9lすまん 色々見てたらわかった気がする
#mbstring.configuration.html 見てもちゃんと記述されてない気がしたから
function.func-name.html でいいのかな?>namazuしたのから探した
#JSP出したのは、いわんとしてることが、わかる人には正確に伝わると
#思っただけで意味はないよ>こういう言い方があってるかは不明だけどw
#oracleのJA16SJISTILDE 相当のは指定できないの?
#と聞いて見たかったりもしたんだけど
#あまり考えるのはやめよう>SQL鯖だし
ありがとう
0604nobodyさん
2008/11/25(火) 13:20:49ID:???そもそもそんなわかりにくいメニューを使うべきでない。
積極的にRIAを活用したほうがわかりやすいものができる。
しかしRIAのベースになるAjax(JavaScript)やFlashやSilverlightに
ブラウザが対応していない場合はどうするか?(テキストブラウザ等)
JavaScriptがOFFの場合JavaScriptをONにするように促せばいいし、
(そもそもデフォルトのままIEあたりを使うであろう高齢者やPC初心者がオフにするわけがない)
プラグインが入っていないならインストールを促すようにすればいい。
だが対応していないブラウザを使っているたかだか数%のユーザを考慮して、
あらたなコンテンツを作るのは要領が悪い。
html版やFlash版なんかを用意しているサイトもあるが、
全ての環境の全てのユーザーに100%対応させることは限界がある。
よって最初から少数派を切る覚悟はしないときりがない。
0605nobodyさん
2008/11/25(火) 16:09:40ID:QsUscf6u0606nobodyさん
2008/11/25(火) 16:26:20ID:uwgP5Nan【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:???0608nobodyさん
2008/11/25(火) 16:38:13ID:???すみません、SimpleXMLを使って読み込んでいますが、処理部がわかりません
2-2はXpathで一応出来ましたが正しいのかわかりません、2-1はさっぱりです
foreach ( $xml->xpath('//a') as $key => $val )
{
$array[] = $val;
}
0609nobodyさん
2008/11/25(火) 16:38:47ID:uwgP5NanID忘れました
0610nobodyさん
2008/11/25(火) 17:49:50ID:???0611nobodyさん
2008/11/25(火) 21:59:38ID:???こういうのは言葉で質問しづらいでしょ
実際にXMLを見せてもらわないとわからんよ。
それと、2-2の意味を掴みかねる。
0612nobodyさん
2008/11/25(火) 22:36:15ID:???SimpleXML使える環境ならどうとでもなるはずなので、
あとの事は実際にそのXMLの構造見て見ないとねぇ。。
>>605
なんか「ソケット」という言葉を激しく勘違いしてると思う。
>>598,600,602
携帯の事忘れてない?
最近は、フルブラウザならJavaScriptも動いたりするけどね。
0613nobodyさん
2008/11/25(火) 22:43:29ID:???普通はコンテンツ絞って分離するんじゃね?
0615nobodyさん
2008/11/25(火) 22:53:26ID:???適切なコンテンツを送る、って聞いたけど、本当なのかな?
0616nobodyさん
2008/11/25(火) 22:54:41ID:???プログラミングがすっごく楽しい〜(*^〇^*)
0617nobodyさん
2008/11/25(火) 23:01:38ID:???ソフトが勝手に判別というのは意味が分からないけど、聞いた事ないかな。
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:???0622nobodyさん
2008/11/26(水) 00:08:14ID:???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:???Hello Again!
<?php
〜〜
0628nobodyさん
2008/11/26(水) 01:30:52ID:???Hello Again!
0629nobodyさん
2008/11/26(水) 01:35:40ID:6NDVGzGmと言う条件があったとして、「11月を抽出」させる場合、
どういう方法が一番簡単で処理が早いでしょうか?
やはり、上の状態からpreg_matchやexplodeで一旦配列に代入し、
そこからifで一致するか調べる方が良いでしょうか?
0630nobodyさん
2008/11/26(水) 01:35:44ID:???0631nobodyさん
2008/11/26(水) 01:47:12ID:???俺だったら元のunixtimeに戻してからその11月の範囲内か調べるね
0632nobodyさん
2008/11/26(水) 03:54:17ID:???まあ好きにやりなよ
0633nobodyさん
2008/11/26(水) 07:43:17ID:???0635nobodyさん
2008/11/26(水) 08:05:37ID:???失敗ってどんなんよ
0636nobodyさん
2008/11/26(水) 08:07:21ID:???0637nobodyさん
2008/11/26(水) 08:09:29ID:???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:???文字化けしたあとは
ウとゥは、
ウ瘢雹
のように末尾に不思議な文字が追加されて
ェは、
0街札・・w)・
という風に変換されてしまいます。
mb_convert_kana()で変換し、メールに合わせてエンコードした文字列は
smartyでfetchしたテンプレートにassignするように使っています。
0641nobodyさん
2008/11/26(水) 12:37:05ID:???0642nobodyさん
2008/11/26(水) 12:43:18ID:???mb_convert_kanaの結果も見てみて。
0643nobodyさん
2008/11/26(水) 12:43:38ID:???subjectが7文字までなら正常に送信できるのですが、
subjectが全角8文字以上を超えるとLFが送信するメールのどこかに含まれてしまい
RFCに準拠してないからSMTPエラーとなるので、mail()で送信するように変えました。
0644nobodyさん
2008/11/26(水) 13:08:30ID:???そういう現象にはなったことないけど、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+UaHm9e60 仕様書無しさん :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時間にらめっこしてるんですが、自力で解決することができませんでした。
是非ヒントだけでも教えていただけると幸いです。
0650nobodyさん
2008/11/26(水) 23:57:19ID:uu4IqJDf0652nobodyさん
2008/11/27(木) 00:08:08ID:Y4lx+bCYhttp://www.phppro.jp/school/phpschool/vol2/3
このサイトに、
>XAMPP上で動くPHPでは初期設定で
>EUC-JP文字コードで動くようになって
>いるので、文字コードはEUC-JPに設定しよう
って書いてあるのだが、普通はUTF-8にする
ものではないのか?
0653nobodyさん
2008/11/27(木) 00:28:40ID:???ありがとうございます。
Undefined variable: PHP_SELF in C:********csvdb.php on line 8
$myself = basename($PHP_SELF); これが原因だったみたいです!
これはファイルの名前を取得するみたいなので要らないと思い削除したんですが
解決することができませんでした(汗
0654nobodyさん
2008/11/27(木) 00:30:29ID:???0655nobodyさん
2008/11/27(木) 00:30:33ID:???( ゚д゚) ・・・
(つд⊂)ゴシゴシ
(;゚д゚) ・・・
(つд⊂)ゴシゴシゴシ
_, ._
(;゚ Д゚) …!?
とりあえずregister_globals=Onにしてみたら?
0657nobodyさん
2008/11/27(木) 07:01:16ID:QDCpWLvTs200辺りからUTF-8に変わったぞ
今は全部UTF-8かも?
0658nobodyさん
2008/11/27(木) 09:57:53ID:???0659nobodyさん
2008/11/27(木) 10:14:36ID:???0660nobodyさん
2008/11/27(木) 13:27:44ID:7SaHUKLWhogehogeテーブルの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:7SaHUKLWb.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:???0663nobodyさん
2008/11/27(木) 13:38:12ID:???エスケープ、理解してる?
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レスありがとうございます。
副問い合わせ
調べてみます。
>>663
エスケープ、、、いまいち理解していないと思います。
$move_price = stripslashes($move_price[$i]);
と試してみたのですが、文字化けは直りませんでした。。。
0667nobodyさん
2008/11/27(木) 13:56:46ID:???0668nobodyさん
2008/11/27(木) 13:56:51ID:VS9OEG/Zhttp://nonn-et-twk.net/twk/why-set-names-in-php-is-bad
のようなことではないでしょうか。
0669660
2008/11/27(木) 14:12:12ID:7SaHUKLWありがとうございます。
この方法では化けずにコピーできました。
>>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:???たとえば、mysql_escape_string等で。
文字化けが起きないというa.phpでもやっとくべき。
それで化けるならむしろDBとの文字コード変換部分をチェックする必要がある。
このとき、内部エンコーディングとかが影響するので、
詳細な情報がないとエスパーするにも限界がある。
0671660
2008/11/27(木) 15:40:26ID:7SaHUKLWmysql_escape_stringを調べてみて
mysql_real_escape_stringを使ってみたところ
見事文字化けは解消されました。
まだまだ基本的な事がわかっていないので、
コツコツと勉強します!!
大変勉強になりました。
皆さまどうもありがとうございました。
0672nobodyさん
2008/11/27(木) 16:15:12ID:nVMghs4xサッカー,2
テニス.3
という内容がテキストファイルに書き込まれていたとします。
例えば、野球の行の数字を2に変えたい時、どうすればいいのでしょうか?
イメージとしては、行を取得してその行の数字の部分を新しい数字に置換
すればいいのだと思っていますが、特定の行だけ取得する事って出来るのでしょうか?
0673nobodyさん
2008/11/27(木) 16:20:51ID:???0675672
2008/11/27(木) 16:26:55ID:nVMghs4xと言う事は、全部読み込んで一行ずつ処理し、
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:???0679677
2008/11/27(木) 16:56:30ID:???0680nobodyさん
2008/11/27(木) 17:20:51ID:???そのために文字列とURLを抜き出したいのですがどうすればいいでしょうか
[[ ]]の中だけは抜き出せるようになったのですが
\[\[([^\[]+)\]\]
0681nobodyさん
2008/11/27(木) 17:50:09ID:???っていうかID出せやコラ
ていうかPukiWikiの真似ならPukiWikiのソース見れやコラ
0682672
2008/11/27(木) 18:59:09ID:nVMghs4xなるほど。
じゃ、読み込んで新規ファイルに追加し、元ファイルを削除。
って流れが一番良さそうですね。
2ちゃんのログ検索とかどうしてるんでしょうね。
たぶんDBは使って無さそうだし。でも、結構速いし。
0685nobodyさん
2008/11/27(木) 21:53:53ID:???ただ催促すると放置される可能性があるので注意して下さいね。
基本、回答者に対して命令口調はやめてください。気分が悪いです。あなたは何様ですか?
回答者はいわば神です。一方、あなたは単なる質問者です。
神に対してはみんな、お願いをするものです。
平民以下の単なる質問者のくせして、神に命令するなんておかしいと思いませんか?
回答者はボランティアです。
自分の気分次第で嫌いな質問をスルーしたりすることに対しては何の問題もありません。
私は基本的に、自分の好きな時間に、自分が嫌いな質問や自分の嫌いなコテが書き込んだ質問を思う存分、集中的に叩きます。
自分勝手に私利私欲で叩きまくるのが基本です(笑)
私がPHP板の神ということを忘れないで下さい。
神を怒らせるととんでもないことになりますよ。
ヤスヒロや穴子という方をご存知ですか?彼は私を怒らせたのでまともな質問でも見つけ次第罵詈雑言浴びせまくっています。
その態度なんなんですか?
とても気に入らない質問の仕方です
0686nobodyさん
2008/11/27(木) 21:57:06ID:???0688nobodyさん
2008/11/27(木) 22:15:45ID:Y4lx+bCY自分が使ってるレンタルサーバーは
sendmailが停止されてるんだが、
この状態でもサーバーからメールを送ったりできるの?
PHPに独自に組み込まれたメール送信関数等を使って。
0689nobodyさん
2008/11/27(木) 22:18:51ID:exzeZtETドコモユーザなど判別しているんですが
もっと詳しくドコモ関東、ドコモ九州など地域まで
判別するのは不可能なんでしょうか?
0690nobodyさん
2008/11/27(木) 22:23:45ID:Y4lx+bCYIPアドレスの範囲で調べるとか?
0000−1111なら関東
4444−7777なら九州
とか、あらかじめ調べておいて、きめうち。
0693nobodyさん
2008/11/27(木) 23:08:09ID:???phpのバージョンは?
php.ini等でSMTPに自前のSMTPサーバーを指定してやればできる可能性はある。
ポートが塞がれていたらちょっと工夫が必要になるだろうけど。
0694nobodyさん
2008/11/27(木) 23:14:36ID:xeQLOWxL0695nobodyさん
2008/11/27(木) 23:25:32ID:???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:HHS1We1t695>>そうだね。
696>>エラーなんだが
0698nobodyさん
2008/11/28(金) 01:54:20ID:???0699nobodyさん
2008/11/28(金) 01:58:46ID:dY3rvFPa<input type="submit" name="a" >
</form>
<?PHP
if (isset($_POST["a"])) {
print "hello";
}
?>
これで、できたわ。
0700nobodyさん
2008/11/28(金) 02:08:14ID:???PHPでどうやってそんな風に教えればいいんだ
この関数は再帰だから〜、とか、関数力つけておきましょう、とか?
0701nobodyさん
2008/11/28(金) 02:26:28ID:dY3rvFPaただコードを「ベタッ」とはりつけてきて
補助的な解説が皆無なのがムカツクの。
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:???これはあまりよろしくないな
こんなこと頑張って覚えても実際の業務に何の役にも立たないし
このような概念的なことは教本見れ自分で勉強すれば済むこと
0710nobodyさん
2008/11/28(金) 11:37:08ID:skXTPrJy//code here
}
このとき、functionについている「&」はどういう役割をしているのでしょうか?
0711nobodyさん
2008/11/28(金) 12:13:10ID:???調べてみた
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ありがとうございます。
よくわかりました。
>>712
なるほど、マニュアルに書いてあったんですね。
ありがとうございました
0714nobodyさん
2008/11/28(金) 21:21:59ID:fzzy5FaA0715nobodyさん
2008/11/28(金) 21:24:16ID:???ウェブで見てもエディタで見ても改行されて見えるからやがな
0716nobodyさん
2008/11/28(金) 21:35:12ID:fzzy5FaA意味がわかりませんが
0717nobodyさん
2008/11/28(金) 22:02:12ID:???<br>\n<br>\nってやれば
出力されるhtmlのソースは
<br>
<br>
という具合に改行されるが、
<br><br>とやれば
そのまま<br><br>と改行されずに出力される
ソースの見た目であってhtmlの見た目上は問題ない
0718nobodyさん
2008/11/28(金) 22:27:32ID:dY3rvFPa最強、定番のって、どれ?
自動スクリプトで5000通とか送信されて
ぶっこわれたりしない、対策がちゃんと考えられてるやつ。
0719nobodyさん
2008/11/28(金) 22:41:20ID:dY3rvFPaアホが作るとこういう悲惨なことになるから。
最初からちゃんと聞いたほうがいい。
0720nobodyさん
2008/11/28(金) 22:46:47ID:dY3rvFPaもしかして、サーバー側で
sendmailが停止されている場合、
メール送信フォームを設置しても
動かない可能性が高いのか?
0721nobodyさん
2008/11/28(金) 23:04:13ID:???0722nobodyさん
2008/11/28(金) 23:06:34ID:???コンパイル時にsendmailのパスを含んでないと駄目。
サーバ管理者がメール送らせたくないって思ってんだから諦めろ。
0723nobodyさん
2008/11/28(金) 23:10:48ID:HHS1We1tqmailとかで送れってか?
0724nobodyさん
2008/11/28(金) 23:37:30ID:???PHPにあるのはmail関数。
mail関数を使っても、送られてきた情報を
そのままアパッチのsendmailに丸投げするだけだけど。
0725nobodyさん
2008/11/28(金) 23:56:55ID:???0726nobodyさん
2008/11/29(土) 00:00:45ID:???sendmail_path = /usr/sbin/sendmail
と
SMTP = localhost
smtp_port = 25
っていう設定があるけど、mail関数を使った時は、sendmailコマンドに
送られるのかね、それとも、SMTPを直接叩いてくれるんだろうか
0728nobodyさん
2008/11/29(土) 01:35:49ID:???0729nobodyさん
2008/11/29(土) 01:52:20ID:Zwy93qXL0730nobodyさん
2008/11/29(土) 08:12:28ID:Q7h0AD5bやっぱりZendFWやPearの本に載ってるような簡単なサンプルじゃ
大量の送信とかでエラー起こすものなんですか?
0731nobodyさん
2008/11/29(土) 08:19:35ID:???0732nobodyさん
2008/11/29(土) 09:19:26ID:???その簡単なサンプルがどの程度のものか知らんが、
スパムメール配信システムでも作るの?
メールサーバーによっては同時配信数に制限をかけているものがあるから、
その最大数に合わせて分割配送とか独自のキューを実装する必要があるかもね。
Web経由でやるんなら、タイムアウトとかもケアするとか。
0733nobodyさん
2008/11/29(土) 09:20:37ID:???放置放置
0734nobodyさん
2008/11/29(土) 10:14:58ID:Q7h0AD5bいや、そんなの作る気ないよ>スパム
せっかくサーバ借りるからやってみようって好奇心だけなんだけど
変なものできてトラブりたくないから聞いてみた 気に障ったならごめんね
0735nobodyさん
2008/11/29(土) 14:10:37ID:???とかの or die の使い方がのっているマニュアル該当部分てありますか?
探したんですが、orじゃ検索できないしいまいち動作がはっきりしないので情報を探しています。
論理演算子の or と同じ意味でしょうか。
0737735
2008/11/29(土) 14:27:57ID:khza+QN5function 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:???式を評価する優先度と順番の問題。
A or B
でAがtrueならBは評価しない。だから、Aがfalseの時にしたい処理をBに書く。
C and Dで
CがfalseならDは評価しない。
0740nobodyさん
2008/11/29(土) 14:43:38ID:???737のはどちらも実行されますよ。
その上でprintと自作関数は実行されるのに、dateとかは駄目というのが現在の疑問です。
>>738
論理演算子
http://www.php.net/manual/ja/language.operators.logical.php
は読んだんですが・・。
ここまで書いて、booleanを返さないといけないということに気づきました。
ありがとうございました。
0741735
2008/11/29(土) 14:48:51ID:khza+QN5dateに限っては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度しか実行されないから
0743745
2008/11/29(土) 14:52:05ID:???だらだらと書きましたが、誰かの参考になれば幸いです。
test() or ($test = date("Y"));
print $test;
function test(){
print "in test()!!";
return false;
}
とかやって、エラーフラグを変数に代入していけば、一個ずつif書くよりいいかもとか思いました。
0744nobodyさん
2008/11/29(土) 14:52:19ID:???0745nobodyさん
2008/11/29(土) 14:52:27ID:???perlのほうで調べてみ
0746nobodyさん
2008/11/29(土) 14:53:07ID:???0747735
2008/11/29(土) 14:54:31ID:khza+QN5えーと、そこは意図してそのような動作に・・。
既に書きましたが、test() or の後にdie以外を見たことが無かったので試していたら混乱したということです。
結果的には普通に何でも出来ますね。
アドバイス頂きありがとうございました。
0749735
2008/11/29(土) 15:01:17ID:khza+QN5なるほどそのあたりも漏れてました。
しかし、>>741のtest2()で試したところ返り値があるかないかは、論理演算子の右辺は関係ないかと。
>>745
情報ありがとうございます。
perl絡みで調べてみます。
どうもこの構文はPHPとしては唐突でしっくりこなかったんですが、そういう経緯もあるんですね。
0750735
2008/11/29(土) 15:02:35ID:khza+QN5ここってくだ質じゃないんですか?
何か勘違いしていたらすいませんw
0751nobodyさん
2008/11/29(土) 15:07:41ID:???いい加減にしてくれ
0752nobodyさん
2008/11/29(土) 15:20:06ID:???構文のパースに過ぎないんだから。
チューリングマシンの基礎だな。
> 論理演算子の右辺は関係ないかと。
そう書く気持ちはわかるが、そういう考えでは本質は理解できんよ。
0753nobodyさん
2008/11/29(土) 15:28:41ID:???0754735
2008/11/29(土) 15:34:46ID:khza+QN5個人的には基礎が足りないというのは理解しております。。
もしよろしければですが、どういうアプローチをしたら右辺の意味について理解できるでしょうか?
0755nobodyさん
2008/11/29(土) 15:57:48ID:Q7h0AD5b「まあ答えてやるか」って人間がいる限り、そういう書き込みが一番空気悪くする
いやなら答えなきゃいいし見なきゃいいだけだと思うが
0756nobodyさん
2008/11/29(土) 16:27:03ID:yRFYIZ4c・式だけでも正しい構文
・PHP では and/or は短絡評価
・functionはreturn文が実行されなかったときはNULLを返す
バージョンによる違いは調べてません。
0757nobodyさん
2008/11/29(土) 17:19:53ID:N9fdCVij単体の値を抜き出せるのに、Zend_Db_Table使うと、
結局イテレータで出てきちゃうので、
$row->カラム名
ってしないと値が取り出せず、面倒な気がするんですけど・・・。
何か良い解決方法があったら教えてください。
0758nobodyさん
2008/11/29(土) 17:30:09ID:???0759735
2008/11/29(土) 17:30:45ID:khza+QN5ありがとうございます。
・式だけでも正しい構文
というのは計算式だけでもOKって事でしょうか?
自作関数だけでもnullが返ってるんですね。勉強になりました。
たしかにvar_dumpで見たらnullが返ってました。
これもざっと見るとマニュアルに書いてないような・・。
やっぱりorの両辺は返り値(何らかの値)が無ければ駄目って事かな・・。
0760nobodyさん
2008/11/29(土) 18:44:16ID:???論理演算子で解釈できるようなものならOK
基本、関数ならいいけど命令ならダメ。
右辺なら関係ないとかやめてね
test1() or test2() or test3()
こういうことも可能なわけで、右辺はいつでも左辺になる可能性がある。
test() or echo "error";とかダメだから
0761nobodyさん
2008/11/29(土) 18:55:54ID:yRFYIZ4c0762nobodyさん
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:???まぁ、省略したらphp5ってことで桶てなら、>>1のテンプレに加えた方がいいかも。
0768nobodyさん
2008/11/29(土) 20:35:59ID:yRFYIZ4c「先にいえボケ」って言えばいいんだよ。
0769nobodyさん
2008/11/29(土) 22:44:20ID:oQuyl2Tg===は、値と型の同一性チェックで、
オブジェクトが自分自身の場合のチェックには使えないのでは?
0770nobodyさん
2008/11/29(土) 22:45:12ID:???0772nobodyさん
2008/11/29(土) 22:58:17ID:???マニュアルの「PHP 5におけるオブジェクトの比較」読みました?
===はインスタンスの同一性チェックって書いてない?
0774nobodyさん
2008/11/30(日) 22:01:17ID:l1FWuDL6CSVは一つ一つデータを検索する必要がありますが、XMLだとどうなんですか?
XMLの方がデータ検索は高速になるんでしょうか?
mysqlはナシで
0775nobodyさん
2008/11/30(日) 22:05:26ID:???0776nobodyさん
2008/11/30(日) 22:25:19ID:???関数が実装されてるかどうかの違いじゃないの。
0777nobodyさん
2008/11/30(日) 22:48:33ID:???試してみればいい。そして結果をここに報告すればみんな幸せ。
0778nobodyさん
2008/11/30(日) 23:11:39ID:???イメージではパースする分XMLの方が遅い
0779nobodyさん
2008/12/01(月) 02:35:22ID:L8HEfjQ3下手くそなプログラムが災いして暴走し出した場合、これを止めるにはどうしたらいいと思う?
たとえば誤って無限ループを入れてしまったりした場合とか。
0780nobodyさん
2008/12/01(月) 02:39:01ID:???0781nobodyさん
2008/12/01(月) 03:10:28ID:???0782nobodyさん
2008/12/01(月) 12:02:32ID:qgihvL7P日がたつとIPからホスト名への変換は正しくできるのか疑問でして
たとえば11/1に121.32.2.1というOCNのIPがあったとします。
そのIPを12/1にホスト名変換したときにOCNとして取得できるのでしょうか?
IPとホスト名は両方ログに書き込んだほうがいいですか?
0784nobodyさん
2008/12/01(月) 12:09:17ID:???0785nobodyさん
2008/12/01(月) 12:12:39ID:???ホスト変換に時間が掛かる。俺もログに書込む時はIPアドレスだけにして、
cronで、ホスト変換するプログラムを書いている。
そのプログラム分けて上げても良いけど、20万円でどう?期間は無制限でいい。
0786nobodyさん
2008/12/01(月) 12:14:18ID:???0787nobodyさん
2008/12/01(月) 12:14:56ID:???0788nobodyさん
2008/12/01(月) 12:16:16ID:???0789nobodyさん
2008/12/01(月) 12:16:29ID:???0790nobodyさん
2008/12/01(月) 12:18:49ID:qgihvL7Pホスト名でu1.p102.tokyo..setagaya.OCN.jpみたいに取得しておけたら
ピンポイントで規制できると考えてます。
プロバイダへ接続の度にIPが変わる所もあるのですが、そうアクセス拒否する機会もそんなにないとは思うのですが
規制する時になったときのことを考えてどうしたらいいのかわかりません。
ちなみにcronは使えません。
0791nobodyさん
2008/12/01(月) 12:21:59ID:???0792nobodyさん
2008/12/01(月) 12:23:23ID:qgihvL7Pネタは情報発信系です
0795nobodyさん
2008/12/01(月) 12:32:42ID:L8HEfjQ3>>781
どうも(・ω・)ノシ
つまりレン鯖のユーザーとしては一度暴走を許してしまったプログラムに関しては
鯖管が見つけて止めてくれるまでどうしようもないということでok?
0796nobodyさん
2008/12/01(月) 12:33:46ID:qgihvL7P>>785さんのプログラムだと私のサーバではcronが使えないのです
ホスト名で取得することにします
どうもありがとうございました
0798nobodyさん
2008/12/01(月) 12:39:31ID:???0799798
2008/12/01(月) 12:40:28ID:???ネットワークプログラミングってむずかしいね
0800nobodyさん
2008/12/01(月) 12:52:20ID:L8HEfjQ3シグナルアラーム( ´・ω・)?
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:???0804nobodyさん
2008/12/01(月) 13:24:10ID:???0805nobodyさん
2008/12/01(月) 15:04:18ID:YUzphIUVこれってphpでどうやってんですか?
0806nobodyさん
2008/12/01(月) 15:37:34ID:L8HEfjQ3> >>795シグナルアラーム使えば?
signal()
alarm()
に関してもう少しkwsk・・・
0807nobodyさん
2008/12/01(月) 17:55:32ID:???PHPの実行は停止されるよ。
ignore_user_abort() とか調べてね。
0808nobodyさん
2008/12/01(月) 18:11:17ID:L8HEfjQ3それだとwhile(ture)ループや、一度始めると時間がかかる処理を途中で停止させることはできないよね?
0809nobodyさん
2008/12/01(月) 18:41:30ID:???PHP内部の処理なら、ループの中だろうとなんだろうと接続断で死ぬ。
外部コマンドをコンソールを切り離して(1>&2 > /dev/nullとかで)実行してたなら
そいつは生き残るはず。
0810nobodyさん
2008/12/01(月) 18:47:06ID:L8HEfjQ3> PHP内部の処理なら、ループの中だろうとなんだろうと接続断で死ぬ。
え?そういう仕様だったの?
> 外部コマンドをコンソールを切り離して(1>&2 > /dev/nullとかで)実行してたなら
> そいつは生き残るはず。
一度プログラムが呼び出されればユーザーがいなくても処理を続行させる方法と、
そうやって一度動か始めたプログラムを途中で好きなタイミングで停止させる方法を
解説してくれたサイトってない(´・ω・`)?
0812nobodyさん
2008/12/01(月) 19:16:24ID:L8HEfjQ3マニュアル無さす(´・ω・`)
0813nobodyさん
2008/12/01(月) 19:19:38ID:???0814nobodyさん
2008/12/01(月) 19:36:18ID:???一括で処理する方法はありますか?
0815nobodyさん
2008/12/01(月) 19:38:01ID:???0816nobodyさん
2008/12/01(月) 19:38:42ID:g9VSv8cf0818814
2008/12/01(月) 19:39:43ID:???816は偽者です
0819nobodyさん
2008/12/01(月) 19:41:16ID:???思い出せない・・・
0821nobodyさん
2008/12/01(月) 19:49:07ID:???$_POST = array_map("addslashes", $_POST);
って感じかな
0822814
2008/12/01(月) 19:50:47ID:g9VSv8cf>>821を試してみます
0823nobodyさん
2008/12/01(月) 19:57:15ID:L8HEfjQ3具体的にどのあたりでしょうか?
0824nobodyさん
2008/12/02(火) 00:24:01ID:PVQb/nvwPHP的にはどっちを使うの。違いあるのですか?
1 != 1
1 <> 1
あと、&&をandとか||をorとかも
どっちで書くこと多い?
0826nobodyさん
2008/12/02(火) 00:47:56ID:PVQb/nvwhttp://search.net-newbie.com/php/language.operators.comparison.html
ここですよね?
!=と<>の違いは結果の文章の最後に「。」があるか、無いかしかわかりませんでした
0827nobodyさん
2008/12/02(火) 00:58:49ID:???0828nobodyさん
2008/12/02(火) 04:54:35ID:???好きなの使えばいい
他言語に慣れてる人を考慮していくつか用意してるだけだから
!=なんかはほとんどの言語で一般的に使われる
<>はSQLなんかで使う
else ifなんかもelseifと半角スペースあけなくてもPHPの場合問題ない
0829nobodyさん
2008/12/02(火) 09:14:45ID:???別に違いは書き方が違うだけでコチラじゃないと駄目というものは
無かったと思う
自分ひとりがメンテし続けるなら好きにしても良いんじゃないの?
828じゃないがif():endif;なんて書き方もあったりする
0830nobodyさん
2008/12/02(火) 09:32:14ID:???0831826
2008/12/02(火) 12:45:41ID:???ありがとうございました。
好きなほうを使います。
>>830さんの書き込みが気になりますが・・・
0832nobodyさん
2008/12/02(火) 12:49:24ID:???0833nobodyさん
2008/12/02(火) 13:03:23ID:???0834nobodyさん
2008/12/02(火) 19:42:23ID:???優先順位のことならこっち
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等であれば 変換された後のテキスト取得となってしまいます。
置き換えできればいいじゃないと思われますが、>>の後の数値が必要でして。。
何か良い事例などあるでしょうか。
0837835
2008/12/03(水) 14:39:18ID:769N0vO+色々と繰り返す中eregの第三引数で取得できると判明しました。すません
$match=">>[0-9]+";
$text=">>1 >>2 おはよう";
ereg($match,$text,$getstr);
var_dump($getstr);
しかしながら、2つめを取得できません。どうしたものでしょう・・><
0838835
2008/12/03(水) 14:41:52ID:769N0vO+ありがとう!そこまではなんとか辿りつきました。
0839nobodyさん
2008/12/03(水) 14:45:40ID:???print_r($matchs);
0840アッー
2008/12/03(水) 14:46:26ID:???○matches
0841835
2008/12/03(水) 14:49:23ID:769N0vO+アーーッ eregばかりみてましたよ!
preg・・ すばらし
本当、くだらないヤツで申し訳ありませんでした。
解決いたしました! ありがとうございました。
0842nobodyさん
2008/12/03(水) 16:11:57ID:???0843nobodyさん
2008/12/03(水) 16:29:46ID:???お守り買ってこなきゃ
0844nobodyさん
2008/12/03(水) 16:36:30ID:K11Uk0Wnそういうサービス提供しているURLご存知のかたいらっしゃいましたら教えてください。
0845nobodyさん
2008/12/03(水) 16:39:11ID:???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:???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:???受信したメールのソースを見るべき
件名が切れている部分に注目
症例: Headerの内容がBodyに流れると言うことはその箇所に改行が2つある可能性
折り返しの処理をどうするか、とかはそもそもメールが意図したソースで送信されているか確認した後に考えた方がいい
あれもこれもじゃ混乱するから
0851nobodyさん
2008/12/03(水) 17:59:53ID:f7FsbaSIアドバイスどおりメールサーバに入ってメールのファイルを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:f7FsbaSImb_encode_mimeheader()とMTAの相性が悪かったのか。。。
むやみに既存の関数に頼るのはよくないですね
0853nobodyさん
2008/12/03(水) 19:02:44ID:???メールの仕様は確か、ヘッダの1行が長いと、改行したあと、スペースを付与する、
という仕様だったはずなので、↑を見る限り正しいように見えますが・・・
ってそんなことRFC 2822の何処にも書いてなかったはず(記憶が定かじゃないが)
Subject:のケツの改行コードの問題な気がする
0854nobodyさん
2008/12/03(水) 19:02:51ID:sIznGeZKえっと、fooがいったい何でどう書けばいいのかが分からないんです。
メソッドチェーンではないです。
0856nobodyさん
2008/12/03(水) 19:11:45ID:???$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マニュアルを頻繁に使っていますが、
ブラウザがWindows+Firefox3だと、"search for"(alt+S)のショートカットが効きません(ブラウザメニューに食われる)
唯一これが障害でデフォルトブラウザをFirefoxにできません。
何か良い方法はないですか
0858nobodyさん
2008/12/03(水) 19:30:36ID:???IE Tab等のプラグインを入れて
php.netをIEエンジンで開くようにする
というか完全にスレ違いだ
0859nobodyさん
2008/12/03(水) 19:54:30ID:sIznGeZKサンプルコードありがとうございます。
勉強する取っ掛かりになりました。
0860nobodyさん
2008/12/03(水) 21:29:34ID:???0861nobodyさん
2008/12/04(木) 10:26:46ID:???メソッド中で$this = new hoge();とかで・・・
0862nobodyさん
2008/12/04(木) 10:28:26ID:uRUEQ8ocID忘れ
0863nobodyさん
2008/12/04(木) 11:20:50ID:???PHP4は出来たと思う
でも明らかにおかしな動作だからPHP5では修正されているはず
オブジェクト自身が再アサインとかアフォかと
0864nobodyさん
2008/12/04(木) 12:42:52ID:???0865nobodyさん
2008/12/04(木) 12:46:18ID:???0866nobodyさん
2008/12/04(木) 12:46:26ID:???よろしくです
0867nobodyさん
2008/12/04(木) 14:17:49ID:???var_dumpでもいいけど
デバッグのためにデバッグ出力関数の後に()つけるのだるい
print_r $debug
みたいな感じで出力できれば、()でくくる時間が短縮できる
0871nobodyさん
2008/12/04(木) 15:33:31ID:Yfb/CJcksetcompatiblemode 0x0F;
selectline
replaceall "^([\t ]*)(.*)$" , "\\1print_r($\\2);" , regular, nocasesense, inselect;
0872nobodyさん
2008/12/04(木) 16:06:10ID:???【PHPのバージョン】php4.06
【連携ソフトウェア】XML-RPC
【質問内容】
掲示板の更新があったときにホームサーバーにpingを飛ばして更新をチェックしています。
しかし、このpingを飛ばす処理に時間がかかり、掲示板の書き込み完了となるまで遅いです。
そこで、pingを飛ばす関数の処理を待たずに次の処理を開始することは可能でしょうか?
(別プロセスにするのでしょうか??)
<?php
send_ping(); ←この処理が完了する前にnext_processに移りたい
next_process();
?>
function send_ping(){
}
宜しくお願いします
0874872
2008/12/04(木) 16:17:52ID:4vOGiir20875nobodyさん
2008/12/04(木) 16:26:06ID:???別プロセスにして、切り離す方法もありだろうね。
execとかでスクリプトファイルを使う手がありそう。
あとは、先に出力をフラッシュしちゃってignore_user_abortで処理を続行する方法
負荷が高いなら、キューに保存しといて、cronで定期的にping飛ばすとか。
0876nobodyさん
2008/12/04(木) 16:27:30ID:???pingの処理を別プロセスでするしかないな
投稿と同時にping送る必要がないなら、
ファイルなりDBなりにフラグ立てて、バックグラウンド(cronとか)で定期的にフラグを確認してping送信
短い期間で複数の投稿があった場合、それらをまとめて1回のpingで済ませられる
0877874
2008/12/04(木) 16:35:22ID:4vOGiir2とてもていねいなレスありがとうございます。
せっかくphpで書いたのですが、cronの方が良さそうですね。
cronでシェルスクリプト回すことにします。
ありがとうございます。
0878nobodyさん
2008/12/04(木) 17:29:45ID:???0879nobodyさん
2008/12/04(木) 17:40:42ID:???cronでPHP動かすことってできるの?
PHPって確か実行するユーザーがいなくなると自動的に停止してクリアしてしまうはずだが
もし時間がかかるPHPプログラムをcronで回した場合、cronはそのプログラムが終了する
まで付き合ってくれるんだろうか?
0880nobodyさん
2008/12/04(木) 17:54:13ID:3hZlaj6e0881nobodyさん
2008/12/04(木) 17:54:53ID:???0882nobodyさん
2008/12/04(木) 17:56:39ID:???ユーザーの接続断で停止って話のことだろうけど、
cronで起動するのはcliインターフェースだから、cronをセットした実行ユーザーで
制限時間まで実行できる。ちなみにWeb用の制限時間とは別だから普通は問題ない。
0883nobodyさん
2008/12/04(木) 17:58:34ID:???jspをcronでwgetで実行とかもやってるけど。
0884nobodyさん
2008/12/04(木) 18:29:16ID:???webサーバーがPHPをサポートしてると明言しているときは
CLIもCGIもどちらもサポートしていると思ってok?
0885nobodyさん
2008/12/04(木) 18:33:22ID:???<?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:???cronいじれる環境ならcliサポートしてるのが普通だと思うが、
レンサバだとサーバー会社によるだろうね。
シェルスクリプトを許可しているところもあれば、そうじゃないところもある。
そりゃ、サーバー会社の運用にそんな細かいガイドラインがあるわけないから・・・
0888nobodyさん
2008/12/04(木) 21:27:00ID:LmXIHk8w0889nobodyさん
2008/12/04(木) 21:41:05ID:0wd2VBCD読み込んでどうするの?
0890nobodyさん
2008/12/04(木) 22:46:15ID:???0891nobodyさん
2008/12/04(木) 23:31:54ID:???CD.csv と book.csvに別けてるんですけど
このデータを全部表示させたいんですよね
どうやるか教えてくれません?
0892nobodyさん
2008/12/04(木) 23:32:43ID:LmXIHk8w0894nobodyさん
2008/12/05(金) 00:15:34ID:???ファイルそのままを出力したいの?
0895nobodyさん
2008/12/05(金) 09:04:09ID:???内容をすべて一番手っ取り早く表示するならこんな感じ
echo nl2br(file_get_contents("CD.csv"));
echo nl2br(file_get_contents("book.csv"));
カラム単位でも分けたいならfgetcsvを使えばいい
ただしfgetcsvはロケールに注意すること
0896nobodyさん
2008/12/05(金) 09:07:35ID:???echo file_get_contents("CD.csv");
echo file_get_contents("book.csv");
0898nobodyさん
2008/12/05(金) 10:11:08ID:bKPFEWzIif(!empty($partO))でechoする場合$part1から$part30までの式をいちいち
書く意外に方法ありますか?
0899nobodyさん
2008/12/05(金) 10:17:41ID:???0900nobodyさん
2008/12/05(金) 11:20:49ID:???可変変数
for($i=1;$i<31;$i++){
$name = "part".$i;
echo $$name;
}
0901nobodyさん
2008/12/05(金) 12:25:28ID:bKPFEWzIありがとう!これでいけた!
<?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:AszAo48qdefine ('ABC', 'abc');
とあって、
$aaa = array ( 1 => ABC . 'aiueo');
のような事を実現する方法はありますか?
0903nobodyさん
2008/12/05(金) 12:57:48ID:???言ってることがわからないのだが
>$aaa = array ( 1 => ABC . 'aiueo');
これは普通にできるでしょ?
0904902
2008/12/05(金) 13:19:06ID:AszAo48qすいません、普通にはできたんですが、やりたかったのは、
下記のような事です。
<?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();
?>
0905902
2008/12/05(金) 13:20:15ID:AszAo48q>>904 のようにやりたいのですが、何か方法はありますか?
よろしくお願いします。
0907nobodyさん
2008/12/05(金) 13:29:12ID:???blogのトラックバック機能を作りたいのですが車輪の再開発になるので
ライブラリなどありましたら教えてください
pearは知ってるので除きます
0908nobodyさん
2008/12/05(金) 13:30:11ID:???もしかして、ちがうとこでエラーが出てるとか?
var $a1 = array ( 1 => ABC . 'aiueo');
演算を含むならコンストラクタで代入した方がよさげ
0909907
2008/12/05(金) 13:32:05ID:LaqO+lJQ0910nobodyさん
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:???よーしエスパーしちゃうぞ〜
アレの中の値に定数で定義した値を埋め込みたいということだろうっと思う
やり方は知らんがね
最悪置換えとか?
0912902
2008/12/05(金) 14:04:17ID:AszAo48qすみません、
Parse error: syntax error, unexpected '.', expecting ')' in \hoge\aaaaa.php on line 7
で、7行目というのが、
var $a1 = array ( 1 => ABC . 'aiueo');
ここです。
メンバ変数を定義する時点では、定数しか定義できないのでしょうか?
0914nobodyさん
2008/12/05(金) 14:20:36ID:???class Test {
var $a = "hoge" . "hoge";
}
ができないって言えばよかったのに
0915nobodyさん
2008/12/05(金) 14:22:10ID:???やってみたがJavaでは可能だがPHPじゃ無理なようだ
>>908の言うとおりコンストラクタでやるのがよさそう
0916902
2008/12/05(金) 14:27:18ID:AszAo48qありがとうございました。
0917nobodyさん
2008/12/05(金) 18:44:56ID:kogFg3iz-fスイッチのとき(Envelope Fromの設定)ぐらいしか使わないような気がするんですが、
経験上他に使ったことありますか?
何が良いたいかというと、mailのラップ関数を作っているんですが、
additional_parametersをenvelope_fromという引数にして、
その引数はメールアドレスだけ受け取るというようにしようかなと悩んでいるのです。
つまり、"-faaa@example.com"と受け取らないで、
"aaa@example.com"と簡潔にメールアドレスだけ受け取るようにしようかと迷っています。
0918nobodyさん
2008/12/05(金) 19:11:41ID:nX6TiXRu0920nobodyさん
2008/12/05(金) 22:42:21ID:Ovdffo4Fhttp://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:???なんじゃこりゃ
0925nobodyさん
2008/12/05(金) 23:45:24ID:???0926nobodyさん
2008/12/05(金) 23:46:18ID:???0927nobodyさん
2008/12/05(金) 23:46:42ID:???0928nobodyさん
2008/12/05(金) 23:49:13ID:Ovdffo4Fこれから、コピペしたんですが・・
0929nobodyさん
2008/12/05(金) 23:50:07ID:???0930nobodyさん
2008/12/05(金) 23:52:19ID:???0931nobodyさん
2008/12/06(土) 00:07:55ID:???他人が作ったスクリプトが使えませんって製作者に聞け
自分で作ろうとする意思がないならそもそもスレ違いだろ
0932nobodyさん
2008/12/06(土) 00:13:01ID:8p/zyVJfhttp://dailynews.yahoo.co.jp/fc/rss.xml
にしてみたんですが、やっぱりダメです。。
0933nobodyさん
2008/12/06(土) 00:16:52ID:???どんだけ初心者なんだよ
適当にdie('OK');を入れてどこまで実行出来てるかくらい確認しろ。
0935nobodyさん
2008/12/06(土) 03:49:04ID:???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:???0939nobodyさん
2008/12/06(土) 13:13:44ID:???0941nobodyさん
2008/12/06(土) 13:20:21ID:MnyC9XAb指定したキーまたは検索した値を元に、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:???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:???$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:MnyC9XAbcurrent($a)ですね。ありがとう。
0948nobodyさん
2008/12/06(土) 14:26:03ID:MnyC9XAb$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:F3HkPIHBttp://d.hatena.ne.jp/toku-hiro/20061129
の記事を参考に、オブジェクト指向でMVCっぽく書き直してみたんですけども
記事のように
Controllerでユーザからのアクションを判定
↓
各処理用のクラスが定義されたphpファイルを読み込む
↓
インスタンスを生成し、クラス内のコンストラクタで処理を行う
(Controllerからメソッドは呼び出さない。
コンストラクタは$this->関数 でメソッドを呼び出し、実際の処理は行わない)
↓
処理した結果をpublicのプロパティに保存
↓
Controllerがそのプロパティをテンプレートエンジンに投げる
↓
テンプレートエンジンが整形を行って画面表示を行う
っていう方法は、正しいOOP+MVCのやり方なのでしょうか?
サンプルソースがあまり見つけられなくて上の記事が正攻法なのか判断できないもので。
0952nobodyさん
2008/12/06(土) 15:44:18ID:MnyC9XAbありがとう
やり方をおしえてください!
0954nobodyさん
2008/12/06(土) 19:46:53ID:yGRUMO6Wできる
0955nobodyさん
2008/12/06(土) 21:12:24ID:MnyC9XAbありがとう
やり方をおしえてください!
0956nobodyさん
2008/12/06(土) 21:12:56ID:???0957nobodyさん
2008/12/06(土) 21:38:56ID:MnyC9XAb考えます orz.
0958nobodyさん
2008/12/06(土) 21:40:57ID:MnyC9XAb$a = array("apple", "grape", "orange", "pear");
$ai = new ArrayIterator($a);
$ai->seek(2);
echo $ai->current(); // orangeが出力される
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:???0962nobodyさん
2008/12/07(日) 00:37:09ID:yd2i9hRL2chの公開プロキシリストってどこにあるかご存知の方いらっしゃいましたら教えてください
0963nobodyさん
2008/12/07(日) 00:58:16ID:???0964nobodyさん
2008/12/07(日) 02:28:04ID:???ttp://pc11.2ch.net/test/read.cgi/php/1221471692/l50
>>316-342
意見頼む
0966nobodyさん
2008/12/07(日) 02:40:15ID:???0967nobodyさん
2008/12/07(日) 05:41:46ID:???関数じゃね?
http://php.net/manual/ja/function.array.php
function.arrayってファイル名だし
引数とって配列を返すんだから
0968nobodyさん
2008/12/07(日) 05:46:38ID:???0970nobodyさん
2008/12/07(日) 06:03:44ID:???0971nobodyさん
2008/12/07(日) 06:36:31ID:???ていうか、URL貼らないとわからないよ http://search.net-newbie.com/php/ か?
普通単語検索は ctrl+Fだと思うけどとにかく説明不足
0972971
2008/12/07(日) 06:37:59ID:???バッキリ無視してくださいね
0973nobodyさん
2008/12/07(日) 11:33:48ID:TyvySTN31から始まって 1 2 3 4 ・・・ と
一つずつ数字を足していくIDをつくりたいのですが、
$id = "1";
$id = "$tb++";
ではできませんでした。どうしたら上手くいくのでしょうか?
0974nobodyさん
2008/12/07(日) 11:47:26ID:???$id = $id+1;
0975nobodyさん
2008/12/07(日) 11:48:18ID:???言語構造はちゃんと言語構造と書いてあるよ
ちなみにechoの注意
注意: これは、関数ではなく言語構造のため、可変関数 を用いてコールすることはできません。
0976nobodyさん
2008/12/07(日) 12:07:11ID:???ちょっと遊んでみるならこんなんもあり
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:???
スレ違いもここまでくると気持ちがいい
0979nobodyさん
2008/12/07(日) 13:34:34ID:GLlaP0t90980nobodyさん
2008/12/07(日) 13:57:58ID:???0981nobodyさん
2008/12/07(日) 14:32:05ID:???0984nobodyさん
2008/12/07(日) 15:05:11ID:???0985nobodyさん
2008/12/07(日) 15:08:54ID:???荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。
0988nobodyさん
2008/12/07(日) 15:33:50ID:???◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0989nobodyさん
2008/12/07(日) 15:39:15ID:???マニュアルに書いてあるから
ttp://www.php.net/manual/ja/ref.array.php
0991nobodyさん
2008/12/07(日) 15:44:19ID:???0992nobodyさん
2008/12/07(日) 15:53:15ID:???0993nobodyさん
2008/12/07(日) 15:59:56ID:???シス単p.157の922にあるぜ
0994nobodyさん
2008/12/07(日) 16:01:13ID:???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」ではないわけだが、言語構成要素である
イレギュラーな関数という可能性が高い。
結局、関数であるという傍証はあるが、関数でないという反証はない。
だから、関数だ!と言い切るつもりはないが。
0998nobodyさん
2008/12/07(日) 16:12:07ID:???0999nobodyさん
2008/12/07(日) 16:14:12ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。