【PHP】下らねぇ質問はID出して書き込みやがれ 96
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2010/05/28(金) 16:33:44ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 95
http://pc11.2ch.net/test/read.cgi/php/1271636105/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0002nobodyさん
2010/05/28(金) 16:35:03ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 95
http://pc11.2ch.net/test/read.cgi/php/1271636105/
【PHP】下らねぇ質問はID出して書き込みやがれ 94
http://pc11.2ch.net/test/read.cgi/php/1268835461/
【PHP】下らねぇ質問はID出して書き込みやがれ 93
http://pc11.2ch.net/test/read.cgi/php/1266229386/
【PHP】下らねぇ質問はID出して書き込みやがれ 92
http://pc11.2ch.net/test/read.cgi/php/1263035502/
【PHP】下らねぇ質問はID出して書き込みやがれ 91
http://pc11.2ch.net/test/read.cgi/php/1260247989/
【PHP】下らねぇ質問はID出して書き込みやがれ 90
http://pc11.2ch.net/test/read.cgi/php/1258187482/
【PHP】下らねぇ質問はID出して書き込みやがれ 89
http://pc11.2ch.net/test/read.cgi/php/1255263534/
【PHP】下らねぇ質問はID出して書き込みやがれ 88
http://pc11.2ch.net/test/read.cgi/php/1253061577/
【PHP】下らねぇ質問はID出して書き込みやがれ 87
http://pc11.2ch.net/test/read.cgi/php/1251447028/
【PHP】下らねぇ質問はID出して書き込みやがれ 86
http://pc11.2ch.net/test/read.cgi/php/1249042741/
【PHP】下らねぇ質問はID出して書き込みやがれ 85
http://pc11.2ch.net/test/read.cgi/php/1245074032/
0003nobodyさん
2010/05/28(金) 16:36:12ID:???■本家マニュアル 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://www.smarty.net/manual/ja/
(以下英語)
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smarty http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2010/05/28(金) 16:37:50ID:???→ 確認すべきは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に保存?
→ 好きにしてください
0005nobodyさん
2010/05/28(金) 16:38:34ID:???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プログラムとして実行された結果になる。
0006nobodyさん
2010/05/28(金) 16:40:06ID:???FAQ逆になったけど誰も読んでないからいいよね!
0007nobodyさん
2010/05/28(金) 20:57:45ID:???0008EM114-48-239-103.pool.e-mobile.ne.jp
2010/05/29(土) 00:14:28ID:P9BwEf5x【PHPのバージョン】5.2.11
【連携ソフトウェア】SQLite 3
【質問内容】
OCNはこのスレにまだいますか?
0009nobodyさん
2010/05/29(土) 01:01:31ID:???http://pc11.2ch.net/test/read.cgi/php/1167984858/
巣に帰れ
スレチの構ってちゃんは二度とくるな
0010nobodyさん
2010/05/29(土) 01:31:54ID:???|| → ウザイと思ったらそのまま放置よ。
|| ▲ 放置された荒らしは煽りや自作自演でアンタのレスを誘うよ。
|| → 釣られてレスしたらその時点でアンタの負け。
|| ■ 反撃は荒らしの滋養にして栄養であり最も喜ぶよ。
|| → 荒らしにはエサを与えないで。
|| ☆枯死するまで孤独に暴れさせておくのが一番。
0011nobodyさん
2010/05/29(土) 11:08:34ID:???下地となる画像の上に別の画像を複数配置して、それを一枚の画像として生成したいんだけど、
どうやったらいいのかな?
0012nobodyさん
2010/05/29(土) 11:13:03ID:???0014nobodyさん
2010/05/29(土) 11:51:54ID:nCFRCeiEお金の入出やポイントの操作などには、トランザクションが必須
だと言うのをググって見たことがあるのですが、
一方でフィールドタイプをInnoDBにすると、パフォーマンスが落ちる
と言うことも聞いたりします。
実際、トランザクションは良く導入されているのでしょうか?
上級者の方や仕事でプログラミングしている方はどうしているか知りたいです
0015nobodyさん
2010/05/29(土) 12:15:37ID:???1行INSERTしてそれをSELECTするような検索システムや普通の掲示板みたいなものではいらないし
銀行の入出金管理やECサイトの決済処理とか
複数の処理をまたいでかつ整合性がとれなくなって問題になるケースでは必須だし
(お金絡んでるし詐欺になりかねないから)
ケースバイケースとしかいいようがない
あと次からPHPと直接関係ない質問はこっちで
http://pc11.2ch.net/test/read.cgi/php/1272872528/
http://pc11.2ch.net/test/read.cgi/db/1258928470/
0016nobodyさん
2010/05/29(土) 20:48:19ID:???base64_decode
とかの関数が失敗したかどうかを確実に検証する方法ってないんでしょうか・・・。
0017nobodyさん
2010/05/29(土) 20:55:19ID:???0018nobodyさん
2010/05/29(土) 21:18:35ID:???function decrypt($str, $key)
{
$string = base64_decode($str);
if($string==false || is_null($string) || strlen($string) ==0) throw new Exception("decrypt(): base64 decode faild:".$str);
$dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_ECB, $key);
if($dec==false || is_null($dec) || strlen($dec) ==0) throw new Exception("decrypt(): decrypt faild:".$dec);
return trimNull($dec);
}
0019nobodyさん
2010/05/29(土) 21:37:15ID:???0020nobodyさん
2010/05/29(土) 22:07:07ID:???エンコード側どうやってる?
0021nobodyさん
2010/05/29(土) 22:43:33ID:???function encrypt($string, $key)
{
$string = trim($string);
$enc = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_ECB, $key);
return base64_encode($enc);
}
0022nobodyさん
2010/05/29(土) 22:50:25ID:kdGy44ixこのサイトを、file_get_contents()で取得すると、途中までしか取得できないんですが、
みなさんの環境ではどうですか?
<?php
$_html = file_get_contents("http://www.ebookoff.co.jp/book");
echo $_html;
?>
PHP Version 5.2.11
0024nobodyさん
2010/05/29(土) 23:49:51ID:???そうじゃなければException飛ばしたいんだが・・・。
base64_decode は失敗するとfalseが返るとマニュアルにはあるけど
全然if文に引っ掛かってこない。
C#とかだとバイト配列にして検証するんだが・・・。
意味わかっていただけますでしょうか?^^
0025nobodyさん
2010/05/30(日) 00:33:57ID:???0026nobodyさん
2010/05/30(日) 01:09:31ID:???それ以前の問題な気がして。。
やっぱり、元の文字列に必ず決まったワードを仕込んでおいて
strpos === false で判定するしかないのかな。
002722
2010/05/30(日) 02:52:37ID:jvmNUW56<table cl
ここまでしか取得できていないんですが、一体なにが原因なんでしょう??
ちなみに>>22はブックオフのサイトです。
0028nobodyさん
2010/05/30(日) 08:28:54ID:???PHPでも同じことすればいいんだよ。使ってる文字コードの範囲かチェックすれば。
結果がバイナリだからって失敗ではないのだし。
0029nobodyさん
2010/05/30(日) 09:24:13ID:???5.3で同じ位置での動作確認しました。
HTTP/Requestだと問題なし。
require_once 'HTTP/Request.php';
$url = 'http://www.ebookoff.co.jp/book';
$request = &new HTTP_Request();
$request->setURL($url);
$result = $request->sendRequest();
if (!PEAR::isError($result)) {
echo $request->getResponseBody();
}
0030nobodyさん
2010/05/30(日) 10:55:46ID:???なんじゃこれ。と思って実験してみたら
UAを設定したら全部取れた。
鯖が途中までしか送ってこない理由は分からん
php 5.2.13/5.3.2 (win)
ini_set('user_agent', 'User-Agent: Mozilla/5.0');
0031nobodyさん
2010/05/30(日) 12:16:49ID:jvmNUW56ご協力ありがとうございます。
一体どういう理由なんでしょうね・・・
0032nobodyさん
2010/05/30(日) 12:21:25ID:???0033nobodyさん
2010/05/30(日) 12:32:26ID:???だから、C#でエンコったのはデコードできるんですよね。
そこまでアホじゃないんで^^;
成りすましをどうするか考えているわけです。
0034nobodyさん
2010/05/30(日) 13:47:58ID:???encrypt/decrypt の 第5引数省略したらどうなる?
試してみたけど失敗してくれない
デバッガかけるとかvar_dumpしまくるしかないんじゃないかな
0035nobodyさん
2010/05/30(日) 15:11:33ID:???◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0036nobodyさん
2010/05/30(日) 15:52:55ID:???0039nobodyさん
2010/05/30(日) 22:22:00ID:???文字列に戻ってるかのチェック以外、何が必要なんだろうか・・・ base64_decodeの失敗はねるのはいいけど、
文字列のチェックとまったく別の話だし。
ところで、PHP例でのmcrypt_encryptのkeyとivが同じだけど C#でのも同じ?
回答アホだから、成りすましの嵐かしら・・・。
0043nobodyさん
2010/05/31(月) 00:16:26ID:???なにこの自演乙
0044nobodyさん
2010/05/31(月) 15:40:04ID:v3qt+P/M100個のファイルから一つのファイルを読み込む、
require "/home/config.php";
とするのと、100個、個別の
require "./config.php";
とした方が良いのか、負担率としては同じなんでしょうか?
全く別物なのでしょうか?
よろしくお願いします
0045nobodyさん
2010/05/31(月) 16:02:39ID:???それだけじゃ何とも言えない
004644
2010/05/31(月) 16:15:07ID:???テンプレートみたいな使い方をしたいんです
設定部分やデザインなんかの記述をしてます
$a="<css--・・・・
$b="ようこそ";
みたいな感じですね。
アクセス数はかなり多いのでどんなものかと思いまして
0047nobodyさん
2010/05/31(月) 16:22:33ID:???オープンソースのCMS見りゃ分かるが個別に分けてるものなんてないよね
0048nobodyさん
2010/05/31(月) 16:25:07ID:???0050nobodyさん
2010/05/31(月) 17:12:47ID:GblyjBgz民主党の小沢一郎幹事長は12日、ソウルの国民大学で講演後、約250人の学生と
日本人について語り合った。学生から、多くの日本人が学校にも通わず、仕事にも
就かないニートについて聞かれ、小沢氏は「日本のニートの現状はみんな親が悪い。
日本人の親は学校にも行かないで、仕事もしないぶらぶら遊んでいる子供を食べさせ
ている」と持論を披露した。
小沢氏は「学校にも行かない無職の子どもを責める前に、日本人の親達は子供を
甘やかしている。親に民族教育をしっかりしないといけない」と主張した。「日本人の
若者は漠然と他人に寄生し寄生虫として生きているとんでもない害虫だ」とした。
「もともと日本人の親達もどうかしている。日本人は動物にも劣る民族といっても
過言ではない」とした。「日本人はもともと民度が劣るから、君達韓国人のような
優秀な民族の血を日本人に入れない限り、他人やアジアに寄生して生きる害虫日本人
が増えるだけだ」とした。日本の古代歴史についても「韓半島南部の権力者が日本の
国家を樹立したもの」と述べた。・・・・( ソウル発外電 2009/12/13)
【トンデモ史観】小沢一郎・韓国講演
ttp://www.youtube.com/watch?v=uX7xFMvCly8&feature=youtube_gdata
【売国】小沢一郎幹事長言行録
ttp://www.youtube.com/watch?v=NXjgD4jb_Jg&feature=channel
0051EM114-48-95-102.pool.e-mobile.ne.jp
2010/05/31(月) 23:42:10ID:dCMCj0N4質問あげ
0052nobodyさん
2010/06/01(火) 07:26:04ID:qOSq8mL1"src" => ここ,
"folder" => "folder/",
"size" => 120
);
そこに配列の格納された変数を指定したいんですが、
どうすればいいのでしょうか
0053nobodyさん
2010/06/01(火) 08:11:26ID:???そこってどこだ?こういうこと?
<?php
$option = array (
"src" => 'ここ',
"folder" => "folder/",
"size" => 120
);
var_dump($option['src']);
string(6) "ここ"
0054nobodyさん
2010/06/01(火) 08:29:02ID:qOSq8mL1わかりにくい書き方してすいません。
こういうことがしたいんです。
$hairetu = array ('aaa', 'bbb', 'ccc');
$option = array (
"src" => $hairetu,
"folder" => "folder/",
"size" => 120
);
配列のうちの一つを指定するなら、$hairetu[0]などで可能なんですが
配列に含まれるすべての値を指定したいんです。foreachでループさせるときのように。
0055nobodyさん
2010/06/01(火) 09:34:11ID:???foreach( $option["src"] as $var ) {
print $var;
}
0056nobodyさん
2010/06/01(火) 09:41:23ID:???0057nobodyさん
2010/06/01(火) 11:11:13ID:qOSq8mL1すいません、自己解決しました。
foreachループの中に入れたらうまくいきました。
どうもお騒がせしました。
0058nobodyさん
2010/06/01(火) 17:52:51ID:k/zNPSvjdisplay_errors Offのまま、
特定のディレクトリのスクリプトだけ表示させるという方法はないでしょうか?
0059nobodyさん
2010/06/01(火) 18:01:26ID:???0060nobodyさん
2010/06/01(火) 18:07:39ID:???文字列の".01"が帰ってきます。
"0.01"を取得するにはどうすればよいですか?
0061nobodyさん
2010/06/01(火) 18:26:56ID:???$comにhogeが入ってる場合NGワードが入ってますというエラー文を出すにはどうすればいいのでしょうか
0062nobodyさん
2010/06/01(火) 18:29:03ID:???0063nobodyさん
2010/06/01(火) 18:30:18ID:???0065nobodyさん
2010/06/01(火) 19:50:51ID:6jzz/jSkよく分かりませんでした。
$rcd = ereg_replace("\./", "", $filename22);
$dr6 = ereg_replace("\./", "", $thum);
↓
$rcd = preg_match("(\./)", "", $filename22);
$dr6 = preg_match("(\./)", "", $thum);
これでは機能しません。どう記述したらいいでしょうか?
0067nobodyさん
2010/06/01(火) 19:55:46ID:???$dr6 = preg_match("/(¥.¥/)/", "", $thum);
左右を/で囲わないとだめ、もしくは以下のような感じ
$dr6 = preg_match("|(¥./)|", "", $thum);
0068nobodyさん
2010/06/01(火) 19:56:54ID:???0069nobodyさん
2010/06/01(火) 20:31:05ID:6jzz/jSk$dr6 = preg_match("/(\.\/)/", "", $thum);
$rcd = preg_match("|(\./)|", "", $filename22);
$dr6 = preg_match("|(\./)|", "", $thum);
$rcd = preg_match("|\./|", "", $filename22);
$dr6 = preg_match("|\./|", "", $thum);
試しましたが値は0しか帰ってきません・・・・
0071nobodyさん
2010/06/01(火) 20:45:49ID:???マニュアルみたらすぐ解決するのになぜ見ないかね
./を消すだけならstr_replaceでやればいいじゃん
0072nobodyさん
2010/06/01(火) 21:44:02ID:6jzz/jSkありがとうございました
0073nobodyさん
2010/06/01(火) 22:04:52ID:???echoの際、シングルクオテーションで囲まれた$変数はそのまま$つきで
表示されるはずなんですが、以下はなんでちゃんと、
$変数の中身が表示されるんでしょう?
echo '<a href="check.php?id='.$row['id'].'">チェック</a>'
0074nobodyさん
2010/06/01(火) 22:16:37ID:???0075nobodyさん
2010/06/01(火) 22:17:59ID:???'<a href="check.php?id=' . $row['id'] . '">チェック</a>'
なのだよ
0076nobodyさん
2010/06/01(火) 23:55:39ID:???0077nobodyさん
2010/06/02(水) 08:29:32ID:???0078nobodyさん
2010/06/02(水) 10:25:39ID:???0079EM114-48-32-41.pool.e-mobile.ne.jp
2010/06/02(水) 11:06:30ID:mhIc5LxU0080nobodyさん
2010/06/02(水) 15:28:49ID:1PsJc2A4VBで作ったものをPHP上で動作させることはできますか?
それはどのようにして実現できますか?
宜しくお願い致します
0081nobodyさん
2010/06/02(水) 15:32:01ID:???0082nobodyさん
2010/06/02(水) 15:32:50ID:1PsJc2A4値の受け渡しとかではなく、VBの画面をそのままWebアプリとして使いたいのです
フレームか何かでその部分だけはVBの部分と独立させてやれると尚いいのですが
0083nobodyさん
2010/06/02(水) 16:07:21ID:???config.inc.phpというファイルを編集すれば良いことがわかりましたが、
同名のファイルが4つあって、どれをいじればいいのかわかりません。
OSはUbuntuです。
1) /etc/phpmyadmin/config.inc.php
2) /usr/share/phpmyadmin/config.inc.php
3) /usr/share/phpmyadmin/setup/frames/config.inc.php
4) /var/lib/phpmyadmin/config.inc.php
1を編集しても効果ありませんでした。
2を編集したら時間は延びたようでしたが、元に戻ってしまったようです
(ファイルの中身はちゃんと追記されたままになってるのに)。
結局どれが正しいファイルでしょうか?
008483
2010/06/02(水) 16:09:20ID:1gJ1/kVu0085nobodyさん
2010/06/02(水) 16:29:50ID:???となってるわけでconfig.inc.phpとやら以外に原因がある可能性は?
0086nobodyさん
2010/06/02(水) 16:38:16ID:???無理、といいたいところだけど、そういうActiveX作って、PHPでそれを使うフレームを出力すればいけるのかも
0087nobodyさん
2010/06/02(水) 16:44:12ID:1gJ1/kVuそういう優先順位になってるんですね。
http://ameblo.jp/hyperdev/entry-10345093485.html
上のページを見てやってみたんですが、
「php.iniに設定した、ガベージコレクタの時間より大きくなる場合が多い」というのを防ぐために
ini_set("session.gc_maxlifetime", 18000);
っていう一行を入れてるみたいなので、問題はApacheとOSの設定ってことですかねぇ。
でも、昨日2のファイルに設定した直後はちゃんと有効だったのは何だったんだろう…。
0088nobodyさん
2010/06/02(水) 17:41:42ID:???>>75
ありがとうございます。
おっしゃられてる方法でわかったつもりで、
以下を書くとエラーで怒られてしまいました・・・。
print '<a href='."$_SERVER['PHP_SELF']".'> 削除 </a>';
ほんとは上の文章が動作していたら、
?をつけてGetで変数を送りたいのですが、
?をつける以前につまづいてしまいました・・・
お助けください。
0089nobodyさん
2010/06/02(水) 17:55:17ID:???print '<a href=' . $_SERVER['PHP_SELF'] . '> 削除 </a>';
あと$_SERVER['PHP_SELF']の部分がソース名(php名)をひっぱってきたいだけなら
$_SERVER['SCRIPT_NAME']を使った方が良い
0090nobodyさん
2010/06/02(水) 18:29:44ID:???$_SERVER['PHP_SELF'] ←これもの中身も文字列
文字列同士を結合するために . (ドット)を使われるんだよ。
正しく書くと、
print '<a href=" . $_SERVER['PHP_SELF']. "> 削除 </a>';
となる。
hrefのクォートはシングルじゃなくてダブルね。
というか、リンク先を自分と同じスクリプトにするなら $_SERVER['PHP_SELF'] すら要らんよね。
クエリ文字を付けたリンクにしたいなら↓こんな感じ。
print '<a href="?del=1"> 削除 </a>';
あと余談だけど、ダブルクォーテーションの中に変数を入れる場合は
変数を { } で囲む癖をつけておいたほうがいいよ。
009190訂正
2010/06/02(水) 18:56:09ID:???これもの中身も文字列
↓
これの中身も文字列
文字列同士を結合するために . (ドット)を使われるんだよ。
↓
文字列同士を結合するために . (ドット)が使われるんだよ。
print '<a href=" . $_SERVER['PHP_SELF']. "> 削除 </a>';
↓
print '<a href="' . $_SERVER['PHP_SELF']. '"> 削除 </a>';
hrefのクォートはシングルじゃなくてダブルね。
↓
href=の後のクォートはシングルじゃなくてダブルね。
0093nobodyさん
2010/06/02(水) 22:14:08ID:D8F23o+y何で変数を{}で囲まないといけないんですか?
0094nobodyさん
2010/06/02(水) 22:39:11ID:???0098nobodyさん
2010/06/02(水) 23:02:05ID:???>>94の言うとおり、わかりやすいっていうのが理由の一つ。
あと、{ } を付ければ前後にスペースがいらない。
例えば、次の3つを比較するとわかる。
(1) echo "ab $text cde";
(2) echo "ab$textcde";
(3) echo "ab{$text}cde";
1はOKだけど、出力結果にもスペースが入ってしまう。
2は不可。
3はOKで、スペースも入らない。
あと、速度も違うんだけど、このことはあまり知られてないのかなぁ。
ちなみに、配列でキー名に ' ' を付けるのと付けないのも速度に差が出る。
009998
2010/06/02(水) 23:03:54ID:???2は不可っていうか、エラーにはならないけど期待する表示にならないってことね。
0100nobodyさん
2010/06/02(水) 23:27:40ID:???ダブルクォートとシングルクォートを使うとでも速度は違うね。
0103nobodyさん
2010/06/02(水) 23:57:58ID:yUWMqjwoTRUE判定させるにはどうしたらいいですか?
while($num=strpos(゙あかあおしろ゙,゙あが,0))
)
で一番最初の文字列にヒットした場合弾かれてしまいます。
何かいい解決法があれば、どうかご教示をお願いします。
0104nobodyさん
2010/06/03(木) 00:03:18ID:???while (($num = strpos('あかあおしろ', 'あか', 0)) !== false) {}
0106nobodyさん
2010/06/03(木) 01:25:57ID:???>>91
ありがとうございます。
print '<a href="'.$_SERVER['PHP_SELF'].'"> 削除 </a>';
は無事動きました。
href="
の部分のダブルクオテーションは文字という考え方ということですよね?
なので、
'<a href="'
という、シングルクオテーションで囲まれている
<a href="
が文字と言う考え方であってますでしょうか?
次に、変数を""というダブルクオテーションで囲むと、
その囲まれてる変数は展開されるという認識の下、以下にしてみるとダメでした。
print '<a href="'."$_SERVER['PHP_SELF']".'"> 削除 </a>';
今回、a href=の後のクオートがもともとのHTMLの仕様では、
ダブルクオテーションであり、そのあとに、変数を囲むダブルクオテーションが続くと
何か問題が出てしまうのでしょうか?
さらに、{}で変数を囲めるということでためしてみました。
print '<a href="'{$_SERVER['PHP_SELF']}'"> 削除 </a>';
も、
print '<a href="'.{$_SERVER['PHP_SELF']}.'"> 削除 </a>';
も動きませんでした。
書き方がまちがっていますでしょうか?
0107nobodyさん
2010/06/03(木) 01:26:34ID:???HTMLの中に書くって事でスタートしてるからこうなってるんだと思うよ
つまりビュー層のハナシ
zend のコーディング規約でもシングルクオートで変数は連結しろとかなかったっけ?
他言語の使い手にも読みやすいって事まで考えてそうなってると思うんだけどな
0108nobodyさん
2010/06/03(木) 01:35:04ID:???<a href="
が文字と言う考え方であってますでしょうか?
あってる
print '<a href="'."$_SERVER['PHP_SELF']".'"> 削除 </a>';
では,"$_SERVER['PHP_SELF']" のパースができない(だったような
print '<a href="' . "{$_SERVER['PHP_SELF']}" . '"> 削除 </a>';
なら動くと思う。
素直に
print '<a href="' . $_SERVER['PHP_SELF'] . '"> 削除 </a>';
でいいじゃんかよ
ちゃんとエスケープもしろよ?歯も磨けよ?
0109nobodyさん
2010/06/03(木) 01:35:14ID:???> '<a href="'
> という、シングルクオテーションで囲まれている
> <a href="
> が文字と言う考え方であってますでしょうか?
あってる。
> 次に、変数を""というダブルクオテーションで囲むと、
> その囲まれてる変数は展開されるという認識の下、以下にしてみるとダメでした。
> print '<a href="'."$_SERVER['PHP_SELF']".'"> 削除 </a>';
print '<a href="'."{$_SERVER['PHP_SELF']}".'"> 削除 </a>';
にしてみて。
> print '<a href="'{$_SERVER['PHP_SELF']}'"> 削除 </a>';
.が無いし、{}が不要。
> print '<a href="'.{$_SERVER['PHP_SELF']}.'"> 削除 </a>';
{}が不要。
0110nobodyさん
2010/06/03(木) 01:36:35ID:???$_SERVER['PHP_SELF']はセキュリティ上の問題があるのでHTMLとして出力する物には使わない
$_SERVER['SCRIPT_NAME']またはbasename(__FILE__)で代用
0111nobodyさん
2010/06/03(木) 01:40:41ID:???<a href=""> 削除 </a>
でいけるやん
0112nobodyさん
2010/06/03(木) 03:47:38ID:???0113nobodyさん
2010/06/03(木) 05:12:55ID:???//ダブルの場合
echo "こんにちわ、{$name}さん。";
//シングルの場合
echo 'こんにちわ、' . $name . 'さん。';
0114nobodyさん
2010/06/03(木) 05:28:29ID:XbPCpr1kありがとうございます。
もうひとつお伺いしたいのですが、文字列の指定位置に文字列を挿入する場合の関数はありますか?
substr_replaceの使用を考えたのですが、置き換え文字数を0に指定するとうまくいきません。
1以上にして置き換え後の文字列に消した文字を含ませるのもスマートではない気がします。
どうかよろしくお願いします。
0116nobodyさん
2010/06/03(木) 07:28:03ID:???0117nobodyさん
2010/06/03(木) 07:36:18ID:LdZGbuVn文字化けせずに表示できているのはどういった仕組みなのでしょうか。
よろしくお願いいたします。
0119nobodyさん
2010/06/03(木) 08:12:37ID:LdZGbuVnmb_convert_encoding autoとかででしょうか?
0120nobodyさん
2010/06/03(木) 08:26:57ID:???0122nobodyさん
2010/06/03(木) 12:10:17ID:???おめ。
どうやって勉強してるかわからないけど、
今の知識だとセキュリティ対策が十分にできないと思うから
本とか読んで学んだほうがいいよ。
0123nobodyさん
2010/06/03(木) 15:18:39ID:???元の質問者とは別人ですが、便乗して質問させてください
$_SERVER['PHP_SELF']より$_SERVER['SCRIPT_NAME']のほうが安全ということですが、
$_SERVER['SCRIPT_NAME']を使ってもエスケープは必要なんでしょうか?
0125nobodyさん
2010/06/03(木) 16:51:43ID:???なぜ危険/安全なのか理解してる?
「php_self script_name」で検索すれば比較してるサイトがいっぱいでてくるよ
0126nobodyさん
2010/06/03(木) 16:55:55ID:???>第1章 総論
>より良いWebアプリケーション設計のヒント
>(1) プログラミング言語の選択
>1) 例えば、PHPを避ける
0127nobodyさん
2010/06/03(木) 17:15:09ID:???> 誰にレスをしたんだ?
主に>>108の「ちゃんとエスケープもしろよ」へのレスです。
>>125
はい、$_SERVER['PHP_SELF']のほうをそのまま出力すると
JavaScriptを仕込まれてしまう可能性があるということですよね?
なので、エスケープする理由はわかります。
お尋ねしたいのは、_SERVER['SCRIPT_NAME']でもエスケープする必要があるのかということです。
SCRIPT_NAMEにはPHP_SELFのようなXSSの脆弱性はないと思ってたんですが、
何か特殊な方法による攻撃の対象になることがあるんでしょうか?
0128nobodyさん
2010/06/03(木) 17:55:31ID:???http://www.php.net/manual/ja/reserved.variables.server.php
'PHP_SELF'
現在実行しているスクリプトのファイル名です。
ドキュメントルートから取得されます。
例えば、http://example.com/test.php/foo.bar というアドレス上にあるスクリプトでは
$_SERVER['PHP_SELF'] は /test.php/foo.bar となります。
'SCRIPT_FILENAME'
現在実行されているスクリプトの絶対パス
0129nobodyさん
2010/06/03(木) 17:57:58ID:OUHRb8myクライアントにバイナリデータを送るときに
fopenとfreadをとechoを使ってるんですが、
クライアント側からはバイナリデータが壊れていると
言われたりしています。
freadってバイナリセーフな関数なんですよね?
何か他に注意すべきところがありますか?
0131nobodyさん
2010/06/03(木) 18:13:58ID:iSHgRF9v.soをextension_dirで登録する動的?タイプのモジュール。
後者はコンパイルなんかのコスト分遅いっていう認識はあってますか?
0132nobodyさん
2010/06/03(木) 18:15:38ID:iSHgRF9v○前者はコンパイルなんかのコスト分遅いっていう認識はあってますか?
×後者はコンパイルなんかのコスト分遅いっていう認識はあってますか?
0135nobodyさん
2010/06/03(木) 20:02:16ID:???requireやincludeは外部ファイルのスクリプトを読み込むもの。
extension_dirなどの拡張モジュールは、
Cなどの低級言語で書かれているのでPHPより高速で、当然にコンパイルされているので速い。
0136nobodyさん
2010/06/03(木) 20:22:42ID:???PHPスクリプトにBOMが付いてないかい
こういう問題はHTTPをモニタリングするツールを入れて
実際に送られたヘッダとデータを確認するのがいいんだが
0137nobodyさん
2010/06/03(木) 21:00:55ID:???先ほど自己解決しました。
おそらく・・なんですが。
サーバ側のファイルとクライアントでダウンロードしたファイルを
比較したところ、クライアント側には行頭に改行コードが入ってました。
そのせいでファイルサイズも1バイト分差異がありました。
対策としてサーバ側のスクリプトファイルの
不要な改行コードを削除しました。
<?
--色々なロジック--
?>
←この辺りの不要な改行コードを削除。
そうしたところ、こちらが意図するとおりにファイルを
送ることが出来ました。
どうもありがとうございました。
0139nobodyさん
2010/06/03(木) 21:30:19ID:???ttp://jp2.php.net/manual/ja/function.php-sapi-name.php
0140nobodyさん
2010/06/03(木) 21:56:52ID:???XML吐く時に同じ事食らったよ
以来終了タグ ?> は書かなくなった
zend framework のコーディング規約でも書くなってなってる
0142nobodyさん
2010/06/04(金) 02:08:52ID:???コード補完してくれて,定義済みのうユーザー定義関数もアシストしてくれるような定番があれば是非知りたいです
MySQLのクエリも同時に書くのでそれも補完アシストしてくれたりしたら最高ですがそんなのってあるんでしょうか?
開発効率が格段にあがるのでしたら有料でも全然かまいませんので お願いします
ちなみに今は秀丸で書いてます
0143nobodyさん
2010/06/04(金) 02:19:59ID:???0144nobodyさん
2010/06/04(金) 02:26:29ID:???0145nobodyさん
2010/06/04(金) 02:36:38ID:???早いうちから使っといた方がいいよ
秀丸でもマクロで多少のカスタムはできるんじゃなかったっけ
使ったことないから知らないけど
0146nobodyさん
2010/06/04(金) 02:51:45ID:???デバッグまでする場合 netbeans
0147nobodyさん
2010/06/04(金) 03:35:38ID:???0149nobodyさん
2010/06/04(金) 10:31:22ID:???たしかにzend frameworkには?>が書かれていないですね。
規約だったとは・・・。
ということは、皆さんの開発現場でも
?>は書かないようにされているのでしょうか?
?>を書かないことでのデメリットはないのでしょうか?
もしデメリットがあればそれを認識した上で
私も活用したいと考えておりますので
教えていただけないでしょうか。
0150nobodyさん
2010/06/04(金) 10:48:26ID:???書いてはいけない理由はこのあたりを参考に
http://d.hatena.ne.jp/fbis/20090716/1247714151
http://d.hatena.ne.jp/Kiske/20100128/1264643384
0151nobodyさん
2010/06/04(金) 10:53:50ID:???ありがとうございます。
拝見いたしました。
色々と危険があるようですね。
今回私もそれで苦労したので、
ひとまず、?>は削除したいと思います。
0152nobodyさん
2010/06/04(金) 10:55:12ID:???0153nobodyさん
2010/06/04(金) 11:06:10ID:???【PHPのバージョン】5.2
クラスの静的メンバに設定ファイル(xml)を読み込みたいのですが、
Javaでいう static句 みたいなものってあるのでしょうか?
静的関数にして初回時に読み込むみたいな処理にすれば
実現はできるなーと思っているのですが。
よろしくお願いします。
0154nobodyさん
2010/06/04(金) 14:21:33ID:???NetBeans6.9 Betaを導入してみました
ですが、これまで作っていたPHPファイルの
日本語によるコメント部分がすべて文字化けします。
NetBeans上で文字を打ち直して保存して、
それを今度テキストエディタで開くと、
今度はテキストエディタの表示が文字化けしているという状態です。
PHPの文字コードは
UTF-8のBOM無し
で開発したらいいのでしょうか。
根本的なところでミスってますか?
0155nobodyさん
2010/06/04(金) 14:38:19ID:???スタティックなメンバは「PHP static」とかでググればすぐ見つかるはずだけど、
初回時ってどういうこと?
コンストラクタを使うのとは意味が違うの?
あとスレタイ読んでね。
0157nobodyさん
2010/06/04(金) 14:54:59ID:???PHPはBOM付きはダメだと俺は認識してた。
BOM付きのスクリプトでHTMLを出力すると崩れたりすると思う。
BOMを消したらNetBeans 6.9 Betaの文字化けしないかどうかは知らないけど。
それより、6.9はひと月ほど前に使ったらめっちゃ不安定だったけど
もうだいぶ改善されてるのか?
正式版の時期が近づいてるから、そろそろ良くなってなきゃまずい頃だとは思うが。
0158nobodyさん
2010/06/04(金) 15:04:56ID:AnXEBzRW0159nobodyさん
2010/06/04(金) 15:09:53ID:???http://www.google.co.jp/
0160158
2010/06/04(金) 15:12:27ID:???PHPのリフレクションを使って、どうやってクラス毎のメソッド一覧、シグネチャ一覧を取得できますか?
0163nobodyさん
2010/06/04(金) 15:21:59ID:???http://www.php.net/manual/ja/book.reflection.php
0164nobodyさん
2010/06/04(金) 15:35:00ID:???単純に、ファイルの文字コードとエディタの文字コードが違うんじゃないか?
上書き保存じゃなくて変換とかすればできるはず
0166nobodyさん
2010/06/04(金) 22:05:06ID:???プロジェクトのプロパティに文字コードの設定がある
netbeans は指定の文字コードで読もうとするので
プロジェクト内は統一する必要がある
変換もできないので他のエディターで変更しとかないといけない
0168nobodyさん
2010/06/04(金) 23:40:28ID:???> PHPの文字コードは
> UTF-8のBOM無し
> で開発したらいいのでしょうか。
うん、それでいいよ。
PHPの設定も一応見直すとよいです。
なんか的外れなレスが多くね?
0169nobodyさん
2010/06/04(金) 23:48:40ID:XmC1Ur85【PHPのバージョン】5.2
CORESERVERを使用しています。
DB使わずにファイルでデータを管理しているのですが、
ファイルロックの方法が間違っているのかデータが飛びまくって困っています。
上書きする際の流れは
・ロック用ファイルをwでオープン
・ロック用ファイルを排他ロック
・変更ファイルをrでオープン
・共有ロック
・データを変数に格納&指定部分を変更
・ファイルロック解除
・ファイルクローズ
・変更ファイルをwでオープン
・排他ロック
・さっきの変数をfwriteで上書き
・ファイルロック解除
・ファイルクローズ
・ロック用ファイルのロックを解除
・ロック用ファイルをクローズ
って感じです。
他にも同じファイルを呼び出す処理がいくつかあって、
それらではrのときは共有ロック、aのときは排他ロックをかけています。
ご指摘お願いします。
ソース必要でしたら貼ります。
0170nobodyさん
2010/06/05(土) 00:03:29ID:UzvzEjBpHTMLで以下のコード書いてみた。
<form method="GET" action="index.php?sex=man">
<input type=hidden name=myname value="maiko">
<input type=submit value="regist">
</form>
このフォームだと、myname="maiko"はサーバに渡るんだけど、
actionに指定しているsex=manの部分がサーバにわたらない。
method="POST"の場合だと、両方サーバにわたるんだけど、
なんで駄目なんでしょうか?
htmlの仕様?
0171nobodyさん
2010/06/05(土) 00:33:54ID:???0172nobodyさん
2010/06/05(土) 00:34:22ID:???うん。君が的外れ。
>>169
PHPのファイルロックはダメダメ
アクセスカウンターが飛ぶとか過去スレ(かなり前)にあったと思う
ロック用のディレクトリやファイルを使ったりしてる人もいる
よく読んでないけど設計は合ってると思う
>>170
ブラウザのアドレス見たら分からんかな
0173nobodyさん
2010/06/05(土) 00:35:42ID:WrJc7rsMすみません、文字コードのことで困っています。
今現在、外部ファイルを読み込むプログラムを作成しているのですが、
一部の文字コードにおいて文字化けが発生してしまいます。
UTF-8 => o, EUC-JP => x
具体的には、片方の文字コードにしか対応できないということです。
EUC-JPに対応させようとしたら、今度はUTF-8が駄目に。。。
php.ini の設定内容についてアドバイスもらえると助かります。
よろしくお願いします。
0175173
2010/06/05(土) 00:41:13ID:WrJc7rsMどうもありがとうございます。
対象の外部ファイルについてですが、任意の一般的なサイトです。
また、日本語については全て化けてしまっています。
自動的に文字コードを判別して切り替えることはできないでしょうか?
0176nobodyさん
2010/06/05(土) 00:48:46ID:???「PHPの文字コードはUTF-8のBOM無しで開発したらいいのでしょうか。」とか
「根本的なところ」とか聞かれてるんだから、>>157と>>168が的確なレスでしょ。
文字コードの変換方法やNetBeansの設定が知りたいわけじゃないと思う。
0177173
2010/06/05(土) 01:04:39ID:WrJc7rsM下らねぇ質問失礼しました。
0178nobodyさん
2010/06/05(土) 01:09:02ID:???mb_detect_order でぐぐってみてくれ。
>>176
問題はdocblockの文字化けじゃないの?
そらすまんかった
0179nobodyさん
2010/06/05(土) 02:53:33ID:???読み込みと書き込みの間でトランザクションが途切れているのが不整合の原因
$f = fopen('file', 'r+');
if (!flock($f, LOCK_EX)) die 'ロックできなかった';
/* ここで読み込み&書き込み */
fclose($f);
flock($f, LOCK_UN) は書き込みバッファの関係上、理由がなければ使わない
flock()自体はシステムコールのflock(),fcntl(),LockFileEx()を呼んでるだけなので
よっぽど古いファイルシステムや処理系じゃなきゃ信頼していい
0180179
2010/06/05(土) 03:04:11ID:???1行目の指摘は無視してくれ
0181nobodyさん
2010/06/05(土) 03:07:11ID:???別にBOMつきのエンコードでうまく動作するなら文字化けの対処方法を書いてもいいよ。
けどそれじゃだめじゃん。
0182nobodyさん
2010/06/05(土) 05:26:44ID:???ロックファイルは存在してるかどうかだと思ってたんだが
file_exsists で true なら待機みたいな
0183nobodyさん
2010/06/05(土) 05:33:06ID:???0184nobodyさん
2010/06/05(土) 05:34:29ID:???UTF8Nはいいけど彼の文字化けはどうすんだよw
つまり >>164 だろ
PHPの設定とか完全に意味不明
0186nobodyさん
2010/06/05(土) 05:44:08ID:???大丈夫な時
A B
存在チェックOK
ロックファイル作成
存在チェックNG
ダメな時
A B
存在チェックOK
存在チェックOK
ロックファイル作成
ロックファイル作成
0187nobodyさん
2010/06/05(土) 05:45:25ID:???横?でしかもうろ覚えですまんが、
今UTF-8じゃないならスクリプトのエンコードをUTF-8に変更する時に設定変えないとだめじゃないっけ
0188nobodyさん
2010/06/05(土) 06:02:52ID:???ダメな時(B)のロックファイル作成が通るって事?
fopen() のモード x みたいな感じを想定してた。
> 書き込みのみでオープンします。ファイルポインタをファイルの先頭に置きます。
> ファイルが既に存在する場合には fopen() は失敗し、 E_WARNING レベルのエラーを発行します
> ファイルが存在しない場合には新規作成を試みます。
flockとかがアレなのはアレなんで,つまりそう言うのはDBゲホゲホ
0191nobodyさん
2010/06/05(土) 13:48:58ID:???0192nobodyさん
2010/06/05(土) 13:57:26ID:dqtCuv4f何方か力を貸してください。
SELECT文からtest内の値をarray関数に入れたいのですが良い方法ありますでしょうか。
mysql_fetch_arrayだと、idとtestをarrayにいれるだけで結果を全て入れる方法が
見つからない状況です。
実際には下記のように値を入れたいのです。
$a = array (aiue, okaki,kuke );
---------------------------------
| id | test |
---------------------------------
| 01 | aiue |
---------------------------------
| 02 | okaki |
---------------------------------
| 03 | kuke |
0193nobodyさん
2010/06/05(土) 14:11:06ID:???どーも、ついに本格的にCS5でPHPのコードヒントとか関数リファレンス、
動的な部分もプレビューしてくれたりとか、プロジェクト管理もできるようです。
今エクリプスなんだけど、ちょっと乗り換えてみたいんだけど、使ってる人いたら感想とか聞きたい。
0194nobodyさん
2010/06/05(土) 14:22:16ID:???http://php.net/manual/ja/pdostatement.fetchall.php
0196nobodyさん
2010/06/05(土) 15:03:14ID:???0197169
2010/06/05(土) 15:06:11ID:zOlNlPcy現在>>179さんのアドバイスに従い、LOCK_UNの記述を削除してテスト中です。
念のため、rとwでわけていたのもr+で一度に処理するようにしてみました。
ロックファイルを使用する場合は>>188のやり方がいいんでしょうか?
これでダメだったら試してみます。
ほんとはDB使った方がいいのは百も承知なんですが、
既にサイトが稼働してるおかげで勉強&システム移行してる余裕が・・・
どうもありがとうございました。
0198nobodyさん
2010/06/05(土) 15:12:55ID:???普段DB使ってて、ファイルでのデータ管理は経験ない素人が適当なこと言って悪いけど、
ロックファイル作成後、書き込み時にロックファイルを確認すればいいんじゃない?
ロックファイルが複数あったら、先に作成されたほうだけを有効にするとか。
0199nobodyさん
2010/06/05(土) 17:06:14ID:dqtCuv4fありがとうございます。とりあえずサンプルみて頑張ります。
(こんな関数しらんかった…)
0200質問1/2
2010/06/05(土) 18:17:47ID:w09PCQypPHP5 & MySQL5.0
<?php
$mysql_dbs = mysql_connect("host", "user", "pass");
mysql_select_dB("db-name");
$debug = false;
if($debug) print_r($HTTP_POST_VARS);
$query = "SELECT * FROM table";
if(!empty($Col0)) {
$Col0 = addslashes($Col0);
$where = "Col0 MREGEXP '$Col0' && ";
}
if(!empty($Col5)) {
$Col5 = addslashes($Col5);
$where .= "Col5 MREGEXP '$Col5' && ";
}
0201質問2/2
2010/06/05(土) 18:18:54ID:w09PCQyp$where = substr($where, 0, -4);
$where = "WHERE " . $where;
}
$query .= $where;
if($debug) {
print "<BR><BR>";
print $query;
}
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
if($num_rows == 0) $message = "該当するデータはありませんでした";
else $message = $num_rows . "件ヒットしました";
?>
検索結果<br>
<?=$message?>
<table border=1><tr><td>名前</td><td>住所</td></tr>
<? while($row = mysql_fetch_assoc($result)): ?>
<tr><td><?=$row[Col0]?></td><td><?=$row[Col5]?></td></tr>
<? endwhile; ?>
</table><a href="input.html">再検索</a>
</body>
</html>
0202nobodyさん
2010/06/05(土) 18:29:58ID:???0203nobodyさん
2010/06/05(土) 18:30:23ID:???0204nobodyさん
2010/06/05(土) 18:35:44ID:???0205nobodyさん
2010/06/05(土) 18:47:16ID:IfiEpjR7Ubuntu 9.10
【PHPのバージョン】
5.2.10
【連携ソフトウェア】
MySQL
【質問内容】
SQLインジェクションを防ぐためには、プリペアードステートメント(PDOのbindParam)を
使うだけで十分なんでしょうか?
怖いので、今はhtmlspecialchars($text, ENT_QUOTES)というのをやってから
プリペアードステートメントを使ってINSERTやUPDATEをしてます。
0207nobodyさん
2010/06/05(土) 19:47:38ID:???prepareね
http://php.net/manual/ja/pdo.prepare.php
説明じっくりよんでみ
0208nobodyさん
2010/06/05(土) 20:08:07ID:IfiEpjR7PHPMyAdminでデータベース内を覗いて、保存されたデータを見てみると
「<」のような文字がたくさんあって、容量的に「<」という1文字より多くなるし
ぱっと見て読みにくいので、使い方が間違ってるかなと思ってました。
「エスケープ」する必要があると聞きましたが、htmlspecialcharsというのは
エスケープとは違うんでしょうか?
>>207
あ、そうです。prepareです。
例えば、
$sql = "INSERT INTO testtable (testcolumn) VALUES (:testcolumn)";
$stmt = $db->prepare($sql);
$stmt->bindParam(':testcolumn', $_POST['data1']);
$stmt->execure();
という風にやってます。
「基礎からのPHP」という本で学んだやり方です。
これだけでSQL対策は十分ですか?
よろしくお願いします。
0209nobodyさん
2010/06/05(土) 20:09:02ID:IfiEpjR70210nobodyさん
2010/06/05(土) 20:12:56ID:XPkr7TFjhttp://php.dori-mu.net/source/source.php?src=search/search.phps
これ見てやったんだろう?
これおれうごいたから。
お前どっかぬけているんだよ。
まずは元ソースが動くか試してみな
0211205、208です
2010/06/05(土) 22:46:24ID:IfiEpjR7いろいろ調べてみて自分で理解したことを書いてみます。
・DBに保存するとき
SQLインジェクションの対策としてプリペアードステートメント(PDO::prepareなど)が必要
それを使えばhtmlspecialcharsは不要
・ブラウザに出力するとき
XSSの対策としてhtmlspecialcharsを使う
これで合ってますでしょうか?
プリペアードステートメントを使わない場合、htmlspecialcharsでは代わりになりませんか?
0212nobodyさん
2010/06/05(土) 23:00:07ID:???PDO使ってるならPDOのメソッド一覧あるんだから1つずつどういうものがあるか確認するぐらいしなさいよ
>プリペアードステートメントを使わない場合、htmlspecialcharsでは代わりになりませんか?
http://www.php.net/manual/ja/pdo.quote.php
htmlspecialcharsはxss対策に使うものでsqlインジェクション対策に使う関数ではありません
0213nobodyさん
2010/06/05(土) 23:08:36ID:bkBaLixK28habcpt918のような英数字の組み合わさった文字列を
最後の数字の部分だけ00918のように頭に0を加えて5桁にしたいのですが、
文字列のパターンはabc123や987xyz12のようにさまざまです。
つまり、
28habcpt918なら28habcpt00918、
abc123ならabc00123、
987xyz12なら987xyz00012のようにしたいです。
アドバイスお願いします
0215nobodyさん
2010/06/05(土) 23:25:25ID:IfiEpjR7すみません、既に読んでます。
お尋ねしたいのは以下の2点です。
・プリペアードステートメントを使えば、SQLインジェクションの対策としては完璧ですか?
・SQLインジェクションを防ぐ方法はプリペアードステートメントを使うのが良いのはわかりますが、
htmlspecialcharsを使う方法が代わりにならない理由は何ですか?
(数値が期待される部分では、その部分に用いる値をintval()で数値化する方法もダメですか?)
0216nobodyさん
2010/06/05(土) 23:32:48ID:???>プリペアードステートメントを使えば、SQLインジェクションの対策としては完璧ですか?
いいえ
プリペアードステートメントとは簡単に言えばSQLを高速に実行するための準備のことなので
sqlインジェクションとは関係ありません
PDO::prepareはこの準備をしつつSQLインジェクション対策を同時に行うメソッドです
>・SQLインジェクションを防ぐ方法はプリペアードステートメントを使うのが良いのはわかりますが、
> htmlspecialcharsを使う方法が代わりにならない理由は何ですか?
xssとsqlインジェクションとではエスケープすべき文字列が異なるからです
0217213
2010/06/05(土) 23:34:04ID:bkBaLixKつまりどう書けばいいんですか?
0218nobodyさん
2010/06/05(土) 23:37:11ID:???preg_match("/[0-9]+$/", $str);
0219nobodyさん
2010/06/05(土) 23:37:52ID:???$str = "28habcpt918";
$length = count($str) - strlen((int)strrev($str)) - 1;
$format = sprintf("%05d", strrev((int)strrev($str)));
echo substr($str, 0, $length) . $format;
0220nobodyさん
2010/06/05(土) 23:39:11ID:Jla4xmZF文字列のある部分だけ置き換えたいのですが、
1)12345-12345-123-a
2)aaa-aaa-aaa-12345-a
の2つの文字列があるとき、結果を
11111-123-a
11111-12345-a
と置き換えしたいです。
$AAA = preg_replace('/(.*?)-(.*?)-a/','11111-(.*?)-a',$AAA);
と記述したのですが、結果は、
11111-(.*?)-a
11111-(.*?)-a
になってしまいます。初歩的で申し訳ありませんが、
希望の動作にするためにはどう記述すればいいか宜しくお願いします。
0221213
2010/06/05(土) 23:46:34ID:bkBaLixKすごいです
感動しました
0222219
2010/06/05(土) 23:47:44ID:???$length = count($str) - strlen((int)strrev($str)) - 1;
↓
$length = strlen($str) - strlen((int)strrev($str));
0223205、208です
2010/06/05(土) 23:54:22ID:IfiEpjR7レスありがとうございます。
> プリペアードステートメントとは簡単に言えばSQLを高速に実行するための準備のことなので
> sqlインジェクションとは関係ありません
> PDO::prepareはこの準備をしつつSQLインジェクション対策を同時に行うメソッドです
知りたいのは、プリペアードステートメントの本来の目的ではなく、
「SQLインジェクション対策として十分か」ということです。
> xssとsqlインジェクションとではエスケープすべき文字列が異なるからです
htmlspecialcharsでは「\」がエスケープされないのが問題ということですね。
疑問が解消できました。
0224213
2010/06/05(土) 23:54:48ID:bkBaLixK文字列の最後が0の場合うまくいかないようです
0225nobodyさん
2010/06/06(日) 00:06:05ID:???http://php.net/manual/ja/function.preg-replace.php
0226nobodyさん
2010/06/06(日) 00:06:32ID:???もう正規表現でええやん。
$str = '28habcpt918';
if (preg_match('/([0-9]+)$/', $str, $matches)) {
$format = sprintf('%05d', $matches[1]);
echo $format;
}
0227219
2010/06/06(日) 00:21:03ID:???失礼
全然考えてなかった
intにキャストしてるから頭にある0が消えちゃう
>>226さんので取れるからそれでおながいします
0228nobodyさん
2010/06/06(日) 00:26:42ID:???> 「SQLインジェクション対策として十分か」ということです。
そらおまえさん用意されてる関数を信じないで何を信じるの?
そんなに心配ならDBの資料あさって自前でエスケープしたらいいんとちゃうの?
0229nobodyさん
2010/06/06(日) 00:41:50ID:???SQLインジェクション対策に有効だということはわかっていても
「十分」有効なのか「ある程度」有効なのかわからないということです。
プロが作ったサイトでも対策に失敗している場合があるようなので、
素人にとっては自分勝手に信じるのが怖いのです。
そのため、他者の裏付けを求めてお尋ねした次第です。
「信じないで何を信じるの?」ということは、つまり「信じていい」ということですね。
ありがとうございました。
0230nobodyさん
2010/06/06(日) 00:43:05ID:???$a = "12345-12345-123-a";
$b = explode("-", $a);
echo "11111-" . $b[count($b)-2] . "-" . $b[count($b)-1];
0231nobodyさん
2010/06/06(日) 00:48:24ID:???> プロが作ったサイトでも対策に失敗している場合があるようなので、
それは関数のせいじゃなくて単にエスケープ忘れてるだけ
プロといっても人間だからね
大手サイトとかにもなると作りが複雑になるし
ちゃんと規約決めて工程を遵守して多人数でやってる場合はバグも出にくいけどコストがかかる
PHPなんかはコスト重視だから設計もなしに適当にやってるとこは潜在的なバグがいっぱい
0232nobodyさん
2010/06/06(日) 00:50:27ID:???あなたはSQLインジェクション対策の有効性について
慎重な意見を求めているようだけど、逆に他者の裏付けがあれば安心出来るのか?
そんなに心配なら自分で納得いくまでとことん調べるしかないだろう。
0233220
2010/06/06(日) 00:51:00ID:uQxRO+T3ありがとうございます。
すいません読んでみましたが、初心者なのでよくわからなかったです。
$n形式という方法ですか?
0234nobodyさん
2010/06/06(日) 01:00:02ID:???第二引数の置き換えのところで正規表現使ってるけどここは使えない。
マッチしたものをここで参照する場合$nもしくは\\nと書く。
マッチした全体が$0(\\0)になり、以降()で囲ったところが順番に$1(\\1)、$2(\\2)と入っていく。
まぁ>>220は第一引数の正規表現もおかしいので第二引数の置き換えを変えたところでどうにかなるわけではないが。
正規表現のお勉強は正規表現スレへどうぞ。
http://pc12.2ch.net/test/read.cgi/tech/1268979408/
ただそのケースだと初心者にとって難解な正規表現を使う必要もないので、
>>230を参考に組み立てたほうがよい。
0236nobodyさん
2010/06/06(日) 01:54:28ID:???それなら聞く必要ない気がするけどさ。
0237nobodyさん
2010/06/06(日) 02:11:20ID:???0238220
2010/06/06(日) 02:32:34ID:uQxRO+T3出来ました!ありがとうございます!
0239nobodyさん
2010/06/06(日) 11:18:37ID:???ワードプレスを動かしたいのですが
0240nobodyさん
2010/06/06(日) 11:19:21ID:lMgRzA8Fワードプレスを動かしたいのですが
0241nobodyさん
2010/06/06(日) 11:51:52ID:???http://wordpress.org/extend/plugins/pdo-for-wordpress/
0242nobodyさん
2010/06/06(日) 12:16:08ID:???SQLインジェクションを予防するのに、
・「SQLインジェクションを予防するための関数」と
・「XSSを予防するための関数だけど、たまたまSQLインジェクションも防止できるような気がする関数」
どっちを使うかって話だよ。
つうか、「\がエスケープされないから危険」という思考は、要は裏で「SQLに混じって危険なのはコレとコレとコレと…」と候補を自分で考えてるだろ。
「危険な要素を弾く」はセキュリティ対策として非常に危険なので(見落としがあるとアウト)、自己の判断で行なうのを極力避けるべき。
俺を含めPHPプログラマの9割がカスなのは事実だが、言語自体の開発者や標準ライブラリの設計者は優秀だし、しっかりテストもされてる。
だから、「2chの意見と標準ライブラリどっちを信じるか」ならば、標準ライブラリを信じたほうが絶対にいい。
0243nobodyさん
2010/06/06(日) 12:24:40ID:lMgRzA8Fpdoドライバが必要になります。なしで使える方法無いですか。
0244nobodyさん
2010/06/06(日) 12:29:00ID:lMgRzA8F;extension=php_pdo_sqlite.dll
こっちがONで
extension=php_sqlite.dll
extension=php_sqlite3.dll
動く方法ないですか
0245nobodyさん
2010/06/06(日) 12:40:03ID:lMgRzA8F未完成
http://polygon-blog.blogspot.com/2010/03/posql-for-wordpress.html
0246nobodyさん
2010/06/06(日) 12:47:37ID:???wordpressのソースをハックすればどうにでもなるが
あんな長いのを見るのもめんどくさいしな
ちゃんと抽象化されてて他のスクリプトへの影響が最小限の作りになってて
DB操作用のクラスなんかがあってそのファイルだけいじればOK
みたいなかんじの作りになってたら修正も簡単なんだけど
wpのソースなんて見たことないしシラネ
0247nobodyさん
2010/06/06(日) 13:15:59ID:lMgRzA8F0248nobodyさん
2010/06/06(日) 13:39:02ID:???0249nobodyさん
2010/06/06(日) 13:57:01ID:???0250nobodyさん
2010/06/06(日) 14:22:36ID:???入力画面から確認画面に遷移する際のバリデーションは、どこに実装すべきでしょうか?
0251nobodyさん
2010/06/06(日) 14:42:53ID:???確認画面と完了画面の両方。
コピペはあり得ないので、外部ファイルに関数の形で定義する事になるな。
0252nobodyさん
2010/06/06(日) 15:00:52ID:???そうなると、確認画面で入力エラーになったら、入力画面にリダイレクトさせることになるんですよね。
その場合の入力値って、セッションに保存しておくしかないのですか?
0253nobodyさん
2010/06/06(日) 15:30:15ID:???確認画面にinput type="hidden"で仕込めばいい。
あと、入力された値がちょっと全角英数だったからとかいう理由で入力値を全部消滅させやがる糞フォームを作るような奴は地獄に落ちるべき。
普通にエラー表示するだけにしとけ。ブラウザバックで戻れば入力値は保持されてることが多いし。
確認画面にエラー内容と、ユーザーが入力したものがそのまま入ってる入力フォームが出てるのがベスト。
0254nobodyさん
2010/06/06(日) 15:39:21ID:lMgRzA8Fバイナリ(エクステンション)なしで
動かす方法ないですか。
0255nobodyさん
2010/06/06(日) 16:37:25ID:B6xMlzjU画像保存時に縮小画像を保存しておくのがいいのか
表示時に毎回縮小するのがいいのか、どっちでしょう?
全画像の縮小版をあらかじめ保存しておくと容量を喰いそうなので
表示のタイミングで縮小するのが良いと思ってますが、
縮小画像を削除するタイミングがわかりません。
0256nobodyさん
2010/06/06(日) 16:47:41ID:???バッチで定期的に古いファイルを削除すれば?
実際には更新日時をいちいち判定するのは面倒くさいので、例えば月ごとにディレクトリ掘ってそこに置いといて、月イチで古い月のディレクトリを丸ごと削除とか。
保持しておくべきか動的に生成すべきかは画像の量と表示回数次第だろうね。
容量をざっくり見積もって、それが許容できそうな範囲なら静的に置く方が楽だと思う。
0257nobodyさん
2010/06/06(日) 17:00:31ID:B6xMlzjUなるほど。その方法いいですね。
でも考えてみれば、アクセスが多くなると毎回縮小するのは負荷がかかりますね。
容量的にいけそうだったらやっぱり静的なほうにしようと思います。
0258nobodyさん
2010/06/06(日) 17:02:41ID:lMgRzA8F量が多いなら、3Mくらいの複数の書庫に詰め込んで呼び出せばいい。
実測も書庫の方が高速になる。
たとえば100個表示させるとすると、画像への100回オープンが発生するが。
書庫なら一回。
0259nobodyさん
2010/06/06(日) 17:18:34ID:???はいって何だよ。さっきから何度も。何がはいなんだよ。
出来もしねえ奴が軽々しくはいなんて言うんじゃねえよ。
だから申し訳ありませんじゃねえだろうよ。何が申し訳ねえんだよ。
本当に反省してんのかよ。
本当に今なら出来んのかよ。
口先だけの謝罪をするんじゃねえよ。
いい加減な気持ちでやってるんだったら今すぐ帰れよ。
だから以後じゃねえんだよ。俺は今の話をしてんだろうが。
今の反省も出来てねえ奴が勝手に未来語ってんじゃねえよ。
勝手に話を切り上げようとするなよ。失礼だろうが。
そんなにやりたくないんだったらだったら今すぐ辞めろお前。
0260nobodyさん
2010/06/06(日) 17:45:19ID:???0262nobodyさん
2010/06/06(日) 18:15:18ID:???0266nobodyさん
2010/06/07(月) 03:25:38ID:???0267nobodyさん
2010/06/07(月) 06:44:36ID:FJeCaP+n自分でテンプレートを作成することになると思いますが、
その場合例えばDBから値を取り出してそれを表示するなんて場合、
DBから結果取得〜表示までのロジックをかかなければなりません。
一部用意されている関数で処理が省略できるとしても、
PHPを知らないとなりません。
そこであらかじめテンプレートで使われそうな処理(上記の例の場合、ある結果の取得から表示まで)を
関数単位で用意し、テンプレートではHTMLの構文に似たカスタムタグを使うことで、
テンプレートからHTMLに変換する際、カスタムタグを構文解析して対応した関数を呼び出そうと考えました。
こういう方法は一般的でしょうか?
構文解析方法ですが、正規表現を使って行っています。
0268nobodyさん
2010/06/07(月) 07:40:10ID:???Smartyとかテンプレートエンジン使うとかではダメなの?
もちろん、HTMLタグに似せたり、テンプレート側から呼び出せる機能を制限したい、ということであればあり得る方法だと思う。
0269nobodyさん
2010/06/07(月) 10:11:02ID:???告知させて。
現在のところあまり盛んに動いてるオンライン勉強会がないので
あたらしくグループつくりました。
オンラインでチャット・生中などいろいろ(未定)で
できれば毎晩だらだら勉強やる予定です。
熱意のある人いたらたまーに課題だしてってアプリ作るなんてのも
ありかなと思ってます。
初心者の人はもちろん、おれが仕切って教えてやるわって人も大歓迎です。
グーぐるグループ
「初心者歓迎 PHP勉強会 2ch発」
ttp://groups.google.co.jp/group/2ch-php
php.2ch@gmail.com
参加希望の人いたら、メールくださいな。
0270267
2010/06/07(月) 12:08:54ID:dndZJJbf>>268
レスありがとうございます。
Smartyはどういうものかよく知りません。
テンプレートエンジン自体どういうものかよくわからなくて・・・
ただMovableTypeを数年前に使っていて、
そこではテンプレート用のMT専用タグみたいなのが使えたので、
>>267のような仕組みになってるのかな?と思い実装しました。
そういう実装もありとのことなので少し安心しました。
テンプレートエンジンについても後ほど調べてみたいと思います。
0271nobodyさん
2010/06/07(月) 14:06:21ID:hz9Zbx6T./configureの度にgccがないとか、libxml2がないとか、libpngがないとか、とにかくエラーばっか
自分centOS5.4使ってるんだけど、皆さんやっぱこういう風に色々とインストールしてPHP環境(ApacheとかMySQLとか)作ってるんですか?
以前yumで全部インストールしたんだけど、あまりにバージョンが全部古いんで今回最新版を全部入れようと思ったら予想外に時間と手間がかかって
それとも何か自分のやり方が間違ってるんですかね?
0272nobodyさん
2010/06/07(月) 14:22:18ID:MuZbivCshttp://ja.wikipedia.org/wiki/LAMP
0274nobodyさん
2010/06/07(月) 14:42:06ID:???あと
> 以前yumで全部インストールしたんだけど、あまりにバージョンが全部古いんで今回最新版を全部入れようと思ったら
yum update
0275nobodyさん
2010/06/07(月) 14:50:49ID:hz9Zbx6Tそれはやっぱりyumでって事なんでしょうか?
自分は以前yumで全部入れたんですが、バージョンが古くて
PHPなんかも名前空間使いたかったので5.3が必要で
それともyum以外で何かインストールするパッケージがあるのでしょうか?
centOSは他のディストリビューションよりもサーバ型だと思うんですが
>>273
あぁ、やっぱyumで入れてるんですか?
確かcentOS5.4のPHPは確か5.1か何かで古くて自分でWindowsで作ったソースがエラーが出たりして最新版を入れようと奮起していまして
いやぁ、ほんと次から次に./configureでエラーが出まくってくれて、その度にダウンロード→./configure→make→make installの繰り返して・・・
相当萎えていました
こんなんじゃ企業で使うとき、クリーンインストールや新規PC等の度に1台につき設定が物凄い無駄な時間かかるなぁ、と思いまして
Windowsだとすぐだけど
0276nobodyさん
2010/06/07(月) 15:15:25ID:hz9Zbx6Tあれ?
yum updateでPHPのバージョンとかも5.2とかにアップデートされるのでしょうか?
自分はyumでPHP環境を作る前に2度ほどyum updateをしたのですが、5.1.16とかの古いバージョンのままでした
php infoでも確認したつもりだったのですが
それかcentOSはそうなのでしょうか・・・
自分が勘違いしてたか、何かおかしな事をしたのかもしれませんね
0278nobodyさん
2010/06/07(月) 16:39:40ID:???最新版が使いたいならCentOSやめろ。そんなことのためのディストリじゃない。
>>275
突っ込みどころは腐るほどあるけど、どうしてもそのディストリで自前ビルドしたものを使いたい、かつ、
ほかにも使いまわしたいのならRPM作って署名してローカルリポジトリを使うようにする。
>>276
全部yumでインストールしたなら全部yumでアップデートすればいい。
なぜ最新版がリポジトリにないのかについては、それがCentOSだからという答えになる。
RHELのクローンということを認識してるか?
0279nobodyさん
2010/06/07(月) 18:46:23ID:???0280nobodyさん
2010/06/07(月) 19:28:33ID:???0282nobodyさん
2010/06/07(月) 21:36:24ID:goYJN4/h【PHPのバージョン】5.3
【連携ソフトウェア】いまのところなし
【質問内容】
すみません。質問させてください。
「10日でおぼえるPHP入門教室(第2版)」という本で勉強中のものです。
5日目の2限目のゲストブック閲覧のところで、つまってしまいました。
うまく動いてはいるのですが、名前かメッセージのところの1文字目が全角英数字だと、
(2文字目以降だと正常に表示されます)
guest.datには書かれるのに、閲覧ページのguest_read.phpには何も入っていなく空欄なのです。
ぐーぐる先生に聞いても半角⇔全角変換のことばかり出てきてうまく答えがみつかりませんでした。
全角英数字のまま出力はできないのでしょうか?
文字コードは本のとおりUTF-8(BOM無し)です。
よろしくお願いします。
0283nobodyさん
2010/06/07(月) 23:41:38ID:???0284nobodyさん
2010/06/08(火) 01:43:03ID:X6L4SMDoソースを出せよ。
それじゃわからんないでしょうが。
0285nobodyさん
2010/06/08(火) 01:55:27ID:???0286nobodyさん
2010/06/08(火) 01:59:43ID:X6L4SMDoもっとちゃんとした本買ったほうがいいぞ。
本の名前書くと著者乙とか書かれてしまうから
かかねーけど
0287nobodyさん
2010/06/08(火) 02:28:54ID:???0288nobodyさん
2010/06/08(火) 02:33:17ID:???買ってね!
Amazon.co.jp: 10日でおぼえるPHP5入門教室 第2版 (CD-ROM付): 山田 祥寛: 本
http://www.amazon.co.jp/dp/4798118761
0289nobodyさん
2010/06/08(火) 02:55:18ID:???Webからの情報のみで勉強してるのは俺ぐらいなのか?
0290nobodyさん
2010/06/08(火) 03:24:23ID:???手っ取り早く1-10を見れるのは本かな
来週から突然pythonやってね。って言われたら
経費で本買って読む。みたいな
0293nobodyさん
2010/06/08(火) 10:57:16ID:???↓ ↓ ↓ ↓ ↓
ttp://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/003.html
1) 例えば、PHPを避ける
↓ ↓ ↓ ↓ ↓
1) プログラマが脆弱性をつくり易い環境を避ける
0294nobodyさん
2010/06/08(火) 10:59:33ID:???0295nobodyさん
2010/06/08(火) 11:03:23ID:O0+3kZk7PHP実行可能ファイルの設定の所で実行ファイルパスにphp.exeを指定する所があるのですがここが分かりません
検索しても出てきませんでした
後、/usr/local/lib/phpの中にphpが展開されていると思うのですが、いくら探しても出てきませんでした
linux(FedoraやcentOS)ではどこにphp.exeがあるのでしょうか?
linuxにそもそもphp.exeというものはあるのでしょうか?
もし無いとすれば、この実行可能ファイルパスの所には一体何を指定すればいいのでしょうか?
0296nobodyさん
2010/06/08(火) 11:15:18ID:???そりゃあ、Linuxにphp.exeは無いでしょうね。
単に「php」。
ちゃんとphpがインストールされてるなら、"whiich php"で、どこにあるやつが遣われるか判るよ。
0298295
2010/06/08(火) 11:26:48ID:???which phpで検索した/usr/local/lib/php というディレクトリ(?)では先に進めないのですが
system.phpとかを指定するのでしょうか?
0300295
2010/06/08(火) 11:33:04ID:???which phpで検索した/usr/bin/php の間違いでした
0301295
2010/06/08(火) 11:34:23ID:???/usr/local/bin/phpで解決しました
解決したことを書き込む前にアップしてしまいました
0303nobodyさん
2010/06/08(火) 12:39:50ID:???0304nobodyさん
2010/06/08(火) 12:52:25ID:lvF7sIjDどのような点に気をつければよいでしょうか。
JavaでいうところのBigDecimalを使うとか、
特定のクラスを使用する必要がありますか?
0305nobodyさん
2010/06/08(火) 13:08:53ID:???0308nobodyさん
2010/06/08(火) 14:06:45ID:YOnOVKl0OS:Centos
utf-8でmail関数を使ってメールを送るクラスをつくっています
phpスクリプトから送信をしてOutlookで受信した際に本文が正しく表示されません
通常であれば表示されてはいけない This is a MIME encoded message から全て表示されてしまいます
正しくメッセージを表示するようにするにはどうしたらいいでしょうか?
メッセージ部分を生成関数
private function MakeBody()
{
if(count($this->APPENDFILE) > 0)
{
$FILEDATA = '';
foreach($this->APPENDFILE as $RECORD)
{
$FILE = chunk_split(base64_encode($RECORD['DATA']));
$FILEDATA .= "--{$this->BOUNDARY}\n\n"
. "Content-Type: text/plain; name=\"{$RECORD['NAME']}\"\n"
. "Content-Transfer-Encoding: base64\n"
. "{$FILE}\n";
};
};
$RESULT = mb_convert_encoding("This is a MIME encoded message.\n\n",'iso-2022-jp','utf-8');
$RESULT .= mb_convert_encoding("--{$this->BOUNDARY}\n\n",'iso-2022-jp','utf-8');
$RESULT .= mb_convert_encoding("Content-Type: text/plain; charset=\"iso-2022-jp\"\n",'iso-2022-jp','utf-8');
$RESULT .= mb_convert_encoding("Content-Transfer-Encoding: base64\n",'iso-2022-jp','utf-8');
$RESULT .= mb_convert_encoding("{$this->MESSAGE}\n\n",'iso-2022-jp','utf-8');
$RESULT .= $FILEDATA;
$RESULT .= mb_convert_encoding("--{$this->BOUNDARY}--\n",'iso-2022-jp','utf-8');
return $RESULT;
}
0309nobodyさん
2010/06/08(火) 14:07:40ID:???function Send($MODE = true)
{
$SUBJECT = mb_encode_mimeheader($this->SUBJECT,'iso-2022-jp','utf-8');
$HEADER = $this->MakeHeader();
$BODY = $this->MakeBody();
$FROM = "-f{$this->FROM['NAME']} <{$this->FROM['ADDRESS']}>";
foreach($this->TO as $RECORD)
{
$TO = mb_encode_mimeheader("{$RECORD['NAME']} ",'iso-2022-jp','utf-8')."<{$RECORD['ADDRESS']}>";
if($MODE === true)
{
mail($TO,$SUBJECT,$BODY,$HEADER,$FROM);
}
else
{
echo "--HEADER--\n{$HEADER}\n--TO--\n{$TO}\n--SUBJECT--\n{$SUBJECT}\n--BODY--\n{$BODY}\n";
};
};
}
0310nobodyさん
2010/06/08(火) 14:08:41ID:???$MAIL = new SENDMAIL();
if($MAIL->SetFROM('送信テスト元','hoge@example.com') === true)
{
if($MAIL->AddTO('送信テスト先','hagu@example.com') !== false)
{
$TIME = 'TEST'.strftime('%Y-%m-%d %H:%M:%S',time());
$MAIL->SetMessage("てすとにゃーん {$TIME} ");
$MAIL->SetSubject("サブジェクトテスト");
$MAIL->SEND(true);
}
else
{
echo 'error TO';
};
}
else
{
echo 'error FROM';
};
0311308
2010/06/08(火) 14:17:04ID:YOnOVKl0>>308
違:$RESULT .= mb_convert_encoding("Content-Transfer-Encoding: base64\n",'iso-2022-jp','utf-8');
正:$RESULT .= mb_convert_encoding("Content-Transfer-Encoding: 7bit\n",'iso-2022-jp','utf-8');
0312200
2010/06/08(火) 14:23:33ID:KP/ycwH2Error: invalid method
そのままではこれがでます。なので、
//エラーチェック
//リクエストメソッドチェック
if($REQUEST_METHOD != "POST") {
print "Error: invalid method";
exit();
}
を削除しました。
するとやはりDBの中身すべてが出てしまいます。
0313282
2010/06/08(火) 14:41:31ID:IOcc/livファイルは全部で5つあるのでzipにしてアップしました。
http://loda.jp/shm/?id=12
>>292 ぐぐってみたらこれっぽい気がするのですが、なにがなんだか分からない状態です;
もう少しがんばってみようとおもいます。。
0314282
2010/06/08(火) 14:57:42ID:???while ($row = fgetcsv($file, 1024, "\t")){
を
while ($date = fgets($file, 1024)){
$row = explode("\t", $date);
としたら解決しました。
すみませんでした。
0315nobodyさん
2010/06/08(火) 16:39:32ID:???phpとセレクトフォームによって呼び出すcgiを選択させるphpを教えてください。
呼び出すcgiについては完成しています。
<form method="post" action="http://aaa.php">
<input type="text" name="keyword" size="20" value="定着率" />
<br />
<select name="search">
<option value="bookmark">あああ</option>
<option value="mobile">いいい</option>
<option value="pc">えええ</option>
</select>
<input type="submit" value="検索" />
</form>
0316nobodyさん
2010/06/08(火) 16:57:07ID:???searchの値によってaaa.phpの中で場合分けして処理するのがセオリーだろうね。
どうしてもってんなら、Javascriptでselectが変更されたら、formのactionを書き換えるか。
でも、このやり方じゃ、アクセシビリティー的にアウトだろう。
0317nobodyさん
2010/06/08(火) 17:38:05ID:hMNg2N9lもうUTF−8に統一されました?
まだEUCだよとかSJISで頑張ってるとか教えて下さい。
0318nobodyさん
2010/06/08(火) 17:39:56ID:???レスありがとうございます。
すでに検索用のインデックスは作成してしまったので、
それに対応するcgiを選択すればいいだけだったのですが難しそうですね。
0319nobodyさん
2010/06/08(火) 19:00:54ID:???てか、cgiとphpという言葉の使い分けはなんだろ。perl-cgiとか使ってんのかな。なんでもいいんだけどさ。
0320nobodyさん
2010/06/08(火) 21:08:21ID:???>>179のやり方を試して数日様子を見たところ、どうやら問題が解消されたようです。
とても困っていたので助かりました。
ありがとうございました。
0321nobodyさん
2010/06/09(水) 01:36:39ID:???0322nobodyさん
2010/06/09(水) 01:41:01ID:???0323nobodyさん
2010/06/09(水) 03:00:39ID:BsRvxOVfPHPでローカル鯖から送信すると問題なく送れますが
鯖にUPして送ると表示される文字が全部???になってしまいます。
文字コードをいろいろ弄ってみたのですが、全部???で文字化けの変化もしません。
お知恵を貸してください。宜しくお願いします。
0324nobodyさん
2010/06/09(水) 03:14:49ID:???文字コードは何なのかとか、表示される文字ってHTMLの文字?
0325nobodyさん
2010/06/09(水) 03:26:35ID:???2行目を読んだ時点ではメール送信かと思ったが、3行目でどん詰まりだ。
0326nobodyさん
2010/06/09(水) 04:34:39ID:???何が分からないのか分かりません!!!(><)
0327nobodyさん
2010/06/09(水) 04:40:29ID:???鯖とローカルのphp.iniを見比べてみてくれ。
encodで検索した内容を主に見てくれ。encodeではない、encodで、だ。
それから、ローカルはIISで鯖はapacheじゃないか?
0328nobodyさん
2010/06/09(水) 04:41:36ID:???あと、薄い可能性として、鯖にUPするときに改行コードがおかしくなってないかも疑ってみてくれ。
0329nobodyさん
2010/06/09(水) 05:00:03ID:BsRvxOVf>>324
POST送信でしょうか・・・
pearでインストールしたPHPを使っているので、
どう送ってるのかわかりません。すいません。
>>327
ローカル鯖はapacheです。UPした鯖は、仕様がわかりませんがPHPは
safe_modeで動いているようです。
phpinfoはエラーを吐いてしまいました。
Warning: phpinfo() has been disabled for security reasons in
0330nobodyさん
2010/06/09(水) 09:24:00ID:???mbstring.encoding_translation が onか、自前の処理が入ってるか分からんけど。
htaccess使えればoffにする。 使えないようなサーバーなら、
文字化けしないエンコードにページのエンコードを変えるしかない・・・
0331nobodyさん
2010/06/09(水) 11:14:04ID:W1sVZbXGsession.use_trans_sid の項目
「PHP_INI_ALL は PHP <= 4.2.3、PHP_INI_PERDIR は PHP < 5 から。PHP 4.0.3 から利用可能。」
意味がわからん 幼稚園児にもわかる日本語で説明頼む
4.0.3〜4.2.3 は PHP_INI_ALL
4.2.3〜現行ver まで PHP_INI_PERDIR なのか??
0332nobodyさん
2010/06/09(水) 11:26:06ID:???英語のページ見ればよろし。
5からは INI_ALL
0333nobodyさん
2010/06/09(水) 11:38:27ID:BsRvxOVfありがとうございます。ローカル、UP先ともに
;mbstring.encoding_translation = Off
という状態です。
>>327
encodというところはなく、encodingの文字が入るところは
先頭に全て;がついていました。
0334nobodyさん
2010/06/09(水) 11:42:59ID:W1sVZbXG4.0.3 〜 PHP_INI_SYSTEM
4.2.3〜 PHP_INI_PERDIR
5〜 PHP_INI_ALL
が正解かな??
「PHP <= 4.2.3」て書かれると 4.3.2以下のバージョンと読んじゃうね
0335nobodyさん
2010/06/09(水) 11:51:23ID:???0336nobodyさん
2010/06/09(水) 12:47:11ID:W1sVZbXGphpinfo(); のmb_string の項目をローカルと鯖両方さらすがよろし
0337nobodyさん
2010/06/09(水) 12:54:11ID:???PHP < 5 って書いて 5から (PERDIR) なのかねぇ。
0338nobodyさん
2010/06/09(水) 13:05:54ID:W1sVZbXGini_set('session.use_trans_sid', '1'); 効いたんだべ
0339nobodyさん
2010/06/09(水) 13:45:29ID:BsRvxOVfありがとうございます。
phpinfoを実行するとエラーがでてしまいます。
Warning: phpinfo() has been disabled for security reasons in
0340nobodyさん
2010/06/09(水) 14:07:58ID:W1sVZbXGmbstring.detect_order → print mb_detect_order();
mbstring.internal_encoding → print mb_internal_encoding();
mbstring.internal_encoding → print mb_internal_encoding();
手な感じで1個1個調べるしか無いっぽいですね
mbstring.encoding_translation はどうやって調べればよかたかな?
情報少ないのであてずぽですが、
internal_encoding = EUC
mbstring.encoding_translation = on
になってんじゃないかなー 笑顔鯖 ならw
0341nobodyさん
2010/06/09(水) 17:03:38ID:wh/h1AEjhttp://wiki.livedoor.jp/staff/d/API/AtomPub
ここを見ると、本文の投稿には次の二つのやり方があるみたいですが
<content type="text/html" xml:lang="ja" xml:base="http://blog.livedoor.jp/staff/archives/000000.html">
<p>記事本文</p>
</content>
<blogcms:source>
<blogcms:body><![CDATA[<p>記事本文</p>]]></blogcms:body>
<blogcms:more><![CDATA[<p>記事追記部分</p>]]></blogcms:more>
</blogcms:source>
上の例の場合に、記事追記部分を指定するにはどうすればいいのでしょうか。
0342nobodyさん
2010/06/09(水) 18:51:55ID:BsRvxOVfありがとうございます
mb_internal_encodingを設定しない場合、
echo mb_internal_encoding();は
ISO-8859-1 でした。
0343nobodyさん
2010/06/09(水) 23:02:26ID:kxHltjxi商品がたくさんある場合、「次へ」などのリンクをクリックすると
次の画像群が表示される……という処理を作ろうとしています。
PHP+SQLで画像のパスを保存しておいて、PHPファイル内でHTMLを記述し描画を行う処理はできたのですが
次の画像群を表示するというメッセージはどのようにすればPHPに送ることができるのでしょうか。
すごく初歩的な質問ですがよろしくお願いします。
0344nobodyさん
2010/06/09(水) 23:06:28ID:kxHltjxi知りたいことは、一般的な通販サイトではどのような処理になっているのかということと
前述した、「次へ」というリンクをクリックすることで、
動的にページを更新し、次の画像群を表示するためのメッセージを送る方法についてです。
よろしくお願いします。
0345nobodyさん
2010/06/09(水) 23:07:32ID:???0346nobodyさん
2010/06/09(水) 23:11:52ID:???index.php?page=1みたいに
PHPでpage=1のパラメータを受け取った後
画像の表示件数を1ページに50とした場合
50*page-1から50*pageまでをLIMITで指定したものをSQLから取り出すとか
取り方なんかはDBの構造にもよってもっと効率のいい指定方法ができるけど
まぁこんな感じ
0347nobodyさん
2010/06/09(水) 23:11:58ID:kxHltjxiありがとうございます!
まずそこを見て実装してみます。
0348nobodyさん
2010/06/09(水) 23:23:43ID:kxHltjxiありがとうございます!
ページング処理(今知りました)はget送信で送るみたいですね。
概要はわかりましたが、index.php?page=1が解読できないので調べている最中です。
0349nobodyさん
2010/06/09(水) 23:28:12ID:???0350nobodyさん
2010/06/09(水) 23:45:16ID:YOGuQm0Pということはその値を設定してるのかな??
もちーっと詳しく書かないと
エスパーにしか答えがわからんっぽい
mb関係の実際のPHP動作時の設定
何が文字化けしているのか(POST GETで渡された文字列のみ 全体 etc)
などなど
0351nobodyさん
2010/06/10(木) 00:35:45ID:/fuvg3FQ肝心のHTMLの記述方法が分からなくてどうすればいいのか探してたら
>>346さんのindex.php?page=1で直接GET送信するってことか。
やっと作れます。
ありがとうございました。
0352nobodyさん
2010/06/10(木) 01:47:48ID:???0353nobodyさん
2010/06/10(木) 14:31:48ID:PM/fSWQlhttp://api.com/xml?aaaaa=1&bbbbb=1&ccccc=a&ddddd=0
こんな感じで長くなってしまい見にくいので、整列する方法を教えてください。
要素を一つずつ配列にしてみたんですが、ループしないとすべて表示できないのでうまくいきませんでした。
0354nobodyさん
2010/06/10(木) 16:08:19ID:I9t81ujy0355nobodyさん
2010/06/10(木) 16:12:46ID:???長いから整列ってのも意味分かんないし、
突然でてきた要素ってものの指すものもわからんし、
配列、ループでうまく出来ないって、なにがさ。
0356nobodyさん
2010/06/10(木) 16:45:05ID:???0357nobodyさん
2010/06/10(木) 17:58:51ID:???0358nobodyさん
2010/06/10(木) 23:37:48ID:/fuvg3FQPHP 5.3.1
Eclipse php galileo SR2 win32 (PDT)
XDebug 2.1.0 rc1
を使用し、ブレークポイントで処理がとまるようにデバッガの設定を行っていますが出来ませんでした。
デバッガを利用してる方で、安定して動くバージョンを教えてください。
よろしくお願いします。
0359nobodyさん
2010/06/11(金) 01:12:25ID:???php.ini での設定内容を晒す
0360nobodyさん
2010/06/11(金) 01:53:05ID:8X4/rYMmphpInfoで確認したところ、
Compiler MSVC6 (Visual C++ 6.0)となっていますので、
使用しているdllは、php_xdebug-2.1.0RC1-5.3-vc6.dllです。
iniファイルの設定内容は、ファイルの最後に
zend_extension_ts = "C:\xampp\php\ext\php_xdebug-2.1.0RC1-5.3-vc6.dll"
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_log="C:\xampp\apache\logs\xdebug.log"
xdebug.manual_url = http://jp2.php.net
xdebug.collect_params = On
xdebug.dump.GET = *
xdebug.dump.POST = *
を追加しました。
0361nobodyさん
2010/06/11(金) 02:43:41ID:???なんとなくeclipse側の気がする
ポート9000 で通信してるかとか確認してみるのがいいかも
可能ならphp/xdebug vc9ビルドを試してみるとか
xdebug は結構不安定だったりするからver変えてみるのもいいかも
0362nobodyさん
2010/06/11(金) 03:23:14ID:8X4/rYMmほとんどのバージョンを試してみましたがダメのようです。
ありがとうございました。
もし正常にデバッグできている方がおられたら、PHPやEclipseのバージョンを教えてください。
0363nobodyさん
2010/06/11(金) 03:26:13ID:/BtEfgaD追加いらず
php.ini書き換えだけ
0364nobodyさん
2010/06/11(金) 03:28:28ID:???eclipse と php.ini 両方で合わせる必要があったはず
0365nobodyさん
2010/06/11(金) 03:30:56ID:???zend_extension_ts の ts が要らんかも
zend_extension="/path/to/xdebug.dll"
にしてみて
0366nobodyさん
2010/06/11(金) 03:36:51ID:8X4/rYMmtsが無いと、終了せずにどこかでループを起こしてるみたいです。
進捗が途中で動かなくなります。
xdebug.idekey について今調べているところです。
0367nobodyさん
2010/06/11(金) 04:52:38ID:8X4/rYMmによると、私の環境であればzend_extension_tsでないとダメみたいなのですが
phpInfo()をみると、XDebugの記述が出てきません。
しかし、zend_extensionとすると、phpInfo()にXDebugの情報が出てくるようです。
0368nobodyさん
2010/06/11(金) 09:43:31ID:S65wpJHfまたサーバ機とAMP開発用ではOSを使い分けてたりしますか?
0369nobodyさん
2010/06/11(金) 12:24:55ID:E6U8qQpkhttp://q.hatena.ne.jp/1160731894
ここを読んだ限り、"いちご AND バナナ" などのキーワードに整形すると
AND検索をしてくれる関数があるように思えるのですが。。
それとも、Keywordをスペースで分割して、一つ一つif文でつなげて
mb_strposしていくしかないのでしょうか?
0370nobodyさん
2010/06/11(金) 12:31:26ID:???データベースでないなら、ちまちまやるしかないです。
#LINQ PHPなんてものもあるんだな。
0371nobodyさん
2010/06/11(金) 12:32:55ID:/BtEfgaD0372nobodyさん
2010/06/11(金) 12:34:59ID:E6U8qQpkレスありがとうございます。
やはりSQL限定ということですね。
自分の用途としては、
HP上にある文字列をscrapで取り出して、 保存していたキーワードを使って検索というものです。
例えば、 "りんご バナナ" というキーワードをデーターベースに登録。
HP上で ”りんご ぶどう バナナ” などのように絞り込み検索に適合するものがアップされたらマッチするといったものです。
0373nobodyさん
2010/06/11(金) 14:39:35ID:1mHG41R+現在、外部サーバにあるファイルを取得したいと考えているのですが、
どうも取得に5秒近くかかってしまいます。
また、ローカルのファイルであれば100ms程度で取得が完了します。
この開きをなるべく縮めたいのですが、何か解決策はありますでしょうか?
アドバイスよろしくお願いします。
環境:Win7/Apache2/PHP5
0375373
2010/06/11(金) 14:48:12ID:1mHG41R+ありがとうございます。
説明不足でしたが、いかなる外部サーバであっても結果は同じなんです。
違いはローカルかそうでないかという点のみです。
ブラウザのように高速にファイルを取得することはできないのでしょうか?
0376nobodyさん
2010/06/11(金) 14:50:17ID:???0377373
2010/06/11(金) 14:56:15ID:1mHG41R+今は簡単に file_get_contents で取得しています。
file_get_contents("http://www.google.com/"); //遅い
file_get_contents("http://66.249.89.99/"); //IP指定するも変化なし
file_get_contents("./index.html"); //ローカルであれば高速
先ほどローカル内で他サーバのファイルを取得してみましたが、
やはりこちらも時間がかかってしまいました。
file_get_contents("http://192.168.1.25/index.html");
0378nobodyさん
2010/06/11(金) 15:03:44ID:???ローカルから外部サーバのファイル取得?
そのスクリプト自体はサーバのレスポンス次第ですぐ返ってくる
www.google.comだと一瞬
ファイアーウォールとかが邪魔してるんだろうか
0379373
2010/06/11(金) 15:10:07ID:1mHG41R+今はローカルサーバから外部サーバへの接続という形ですが、
将来的には外部サーへ移行させる予定です。(完成次第)
先ほどファイアーウォールをすべて無効にした上でテストしてみましたが、
結果に変わりはありませんでした;
0380nobodyさん
2010/06/11(金) 15:18:06ID:???0381nobodyさん
2010/06/11(金) 15:20:09ID:???サーバ(かPHP?)のipv6をdisabると良い
らしい↓
http://www.directadmin.com/forum/showthread.php?t=35549
0382373
2010/06/11(金) 15:32:53ID:1mHG41R+サーバ機にインストールされているブラウザでは通常のスピードで
ページの読み込みができました。
>>381
どうやらこちらが怪しいみたいなので、もう少し時間を置いて設定を
見直してみたいと思います。
下らない質問にお付き合い頂きありがとうございました。
0383nobodyさん
2010/06/11(金) 16:53:35ID:bRlHND6jCache_Liteを使ってキャッシュを保存しているんですが
新着があった場合(キャッシュがない場合)に、
キャッシュとの差分のみ(新着部分のみ)を取得することってできませんか?
0384nobodyさん
2010/06/11(金) 20:34:14ID:???0385nobodyさん
2010/06/11(金) 20:44:10ID:???これって終わってない?海外は情報も多いので兎も角、国内www
0386nobodyさん
2010/06/11(金) 20:44:11ID:/BtEfgaD0387nobodyさん
2010/06/11(金) 22:08:35ID:???開発環境はWindows or Macだが、動作させる開発サーバーはLinux(仮想マシン)で、本番環境と同じもの。
ディストリは某日本語サポートのあるものを使っている。
0388nobodyさん
2010/06/12(土) 05:44:24ID:???自分の環境でもfile_get_contentsはすっごい遅かった、cURLの1、5倍ぐらい遅い
<?php
function curl_get($url) {
$ch = curl_init();
$option = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true, //結果を出力させない
CURLOPT_BINARYTRANSFER => true, //結果を加工しない
CURLOPT_FORBID_REUSE => true, //処理が終了した際に接続を切断
);
curl_setopt_array($ch,$option);
return curl_exec($ch);
}
echo "file_get_contents<br />";
for($i = 1 ; $i <= 10 ; $i++) {
$time_begin = microtime(true);
file_get_contents("http://www.google.com/");
echo $i." : ".(microtime(true)-$time_begin)."s<br />";
}
echo "curl<br />";
for($i = 1 ; $i <= 10 ; $i++) {
$time_begin = microtime(true);
curl_get("http://www.google.com/");
echo $i." : ".(microtime(true)-$time_begin)."s<br />";
}
0389nobodyさん
2010/06/12(土) 05:57:57ID:???0390nobodyさん
2010/06/12(土) 06:00:00ID:???file_get_contents
1 : 0.282200098038s
2 : 0.286005020142s
3 : 0.289804935455s
4 : 0.285599946976s
5 : 0.285084962845s
curl
1 : 0.110718011856s
2 : 0.0746190547943s
3 : 0.0745959281921s
4 : 0.0765240192413s
5 : 0.0723419189453s
0391nobodyさん
2010/06/12(土) 06:06:46ID:???5秒ってのが明らかに異常なわけで
0392nobodyさん
2010/06/12(土) 14:05:51ID:CAUo94F7PHPを書いたファイルをWEBサーバで開いたところ何も表示されず、真っ白いままです。
おそらく、コーディングに誤りがあるのだと思うのですが、式が膨大な量なためどこにミスがあるのか見つけるのが大変です><
エラーメッセージを出して誤りのヒントを探りたいのですがどうやったらいいのでしょうか?
できれば、何行目にミスがあると指定してくれるものがあれば最高です。。ご教授くださいませ…
0393nobodyさん
2010/06/12(土) 16:52:59ID:???0396nobodyさん
2010/06/12(土) 21:18:33ID:???$domain = "127.0.0.1";
$fp = fsockopen ( $domain , 80 );
fwrite($fp, "Referer: http://www.google.co.jp/\r\n");
fclose($fp);
?>
<a href=http://www.kojikoji.net/>確認</a>
こう書いても送られるリファラがhttp://www.google.co.jp/になりません
原因はなんでしょうか
0397396
2010/06/12(土) 21:19:17ID:7hIU3RqJ0398nobodyさん
2010/06/12(土) 22:10:26ID:???0399nobodyさん
2010/06/13(日) 00:36:25ID:???0400nobodyさん
2010/06/13(日) 00:47:14ID:???http://d.hatena.ne.jp/mgng/20090430/1241059100
2種類入ってるので、どっちかでテストしてみては
0401nobodyさん
2010/06/13(日) 03:03:14ID:???ttp://2chtocsv.zzg.jp/
2ちゃんのスレをCSVにするらしい
今まで無かったのが不思議だな
0402nobodyさん
2010/06/13(日) 03:58:04ID:???こんなのこのスレにいるやつなら誰でも作れますから
0404nobodyさん
2010/06/13(日) 09:43:25ID:???0405nobodyさん
2010/06/13(日) 14:27:11ID:???0407nobodyさん
2010/06/13(日) 18:57:45ID:0BtVGJ62$array = array("33","55");
foreach ( $array as $array ) {
//全角数字を半角に
$array = mb_convert_kana($array , "n");
$test = array();
$test[] = $array;
}
上記のようにしてもエラーが消えず、配列に格納できないのです。
0408nobodyさん
2010/06/13(日) 19:02:49ID:???0409nobodyさん
2010/06/13(日) 19:06:57ID:0BtVGJ62おおーーーーー!!!
上手くいきました!!
ありがとうございます!!!
これでめちゃくちゃはまってたんです。
Thank you!!!!
0410nobodyさん
2010/06/13(日) 19:07:09ID:ebiz4dppforeach ( $array as $array ) {
0411nobodyさん
2010/06/13(日) 19:07:36ID:0BtVGJ62これからは気をつけたいと思います。
0412nobodyさん
2010/06/13(日) 19:34:32ID:0BtVGJ62半角スペースで区切られた文字列があります。
この最初のスペースが出現するまでの "06/12" の最初の文字列のみを削除して、
"タイトル 花見" という文字列を作るにはどうすればよいでしょうか?
逆引きレシピを参考にそれらしい関数を探しているのですが、
どうにも見つからず。。
0414nobodyさん
2010/06/13(日) 20:14:37ID:0BtVGJ62ありがとうございます!!
これでなんとか出来そうです!
0415nobodyさん
2010/06/13(日) 21:11:04ID:gv6bC0iohttp://ideone.com/bNeGf を移植して実現しようと思っているのですが、どうにもうまくいきません。
どなたかMD5→NGFiles.txtのハッシュ値変換のサンプルをください。
0417nobodyさん
2010/06/13(日) 21:25:24ID:???<>をカンマに置き換え
文字列のカンマをエスケープする
終了
0418nobodyさん
2010/06/13(日) 22:10:02ID:???0419nobodyさん
2010/06/13(日) 22:30:54ID:???0420nobodyさん
2010/06/14(月) 05:13:57ID:???0422nobodyさん
2010/06/14(月) 12:30:36ID:Ea+qDap6if(!empty($var['a']) || !empty($var['b']) || !empty($var['c'])){
$varの配列のキーが可変の場合
上記のようにa,b,cとキーを指定しなくても
どれかの値が入ってればtrueと判別出来る方法ありますか?
0423nobodyさん
2010/06/14(月) 12:37:52ID:???foreach ($var as $a) {
if (isset($a)) {
$b = true;
break;
}
}
0424nobodyさん
2010/06/14(月) 12:48:47ID:Ea+qDap60425nobodyさん
2010/06/14(月) 13:04:21ID:???0426nobodyさん
2010/06/14(月) 14:32:12ID:Pwcpy8Zl【管理画面でやりたい事】
・管理画面でアクセスした日から一週間分の出勤予定データを登録できる。
【表示ページ】
・日付ごとに出勤予定の女の子の写真と名前表示
【現在の状況】
・table「girlsprof」で女の子のID、名前、プロフを管理。
【質問】
出勤予定を管理できるよう、table「schedule」を作って管理しようと思ったのですが
このtableにはどのようなカラムをもたせればよいですか?
例1:6/1 6/2 6/3 6/4と月日を全部カラムにしておき、管理画面ではプログラムでその日から一週間分を
取得し、それぞれの日付と一致するカラムを更新。ってやらないとだめなのか?
例2:1〜31までをカラムとする。しかしこれだと、30日に管理画面をひらいたときは本来なら30日〜翌月の5日までの
予定を登録できなきゃいけないのに、その月の日数(2月は28日までしかない)とかによっても、狂ってきてしまいます。
これはどうやれば解決できますでしょうか?
0427nobodyさん
2010/06/14(月) 14:44:10ID:???0428nobodyさん
2010/06/14(月) 14:45:04ID:???0429nobodyさん
2010/06/14(月) 14:55:50ID:???0430nobodyさん
2010/06/14(月) 15:02:29ID:Pwcpy8Zl3カラムだけって事は日付の部分はどう管理するんですか?
日付にも、
何月かの情報を含めて365カラム(うるう年も考えて366カラム)か
1〜31日までの31カラムかとかいろいろあると思うのですが、
3カラムだけで管理するとなると、どうやるのでしょうか?
日付のカラムに出勤予定日を追記していく感じでしょうか?
それだと、過ぎた過去の日にちも残ってしまうということでしょうか?
0432nobodyさん
2010/06/14(月) 15:21:35ID:???一週間分なので、"何日から"かと7日分の出勤予定。 表示側なり管理画面では
今日から一週間分の予定をそこから出す。範囲外だったら予定なし。 未定と休み分けるんなら別カラムか
分かるような値にしとく。
3カラムってのは、出勤用に別テーブルで ID、日付、出勤データ つくる形かと。 どっちも一長一短あるので好きな方で。
0433nobodyさん
2010/06/14(月) 15:34:24ID:???http://okwave.jp/qa/q5968001.html
0434nobodyさん
2010/06/14(月) 15:36:35ID:???普通は横に持たず、縦に持つ。
表示する時にそれを加工する。
過去のデータがどうしても要らないなら毎日、もしくは毎週削除する処理をつくるが、
あったら困るものでもないと思う。
0435nobodyさん
2010/06/14(月) 15:46:37ID:???まぁ、こんなでいいんじゃないの?
girlsprof: | ID | 名前 | プロフ |
schedule: | ID(girlsprofのIDと一致) | 出勤日 |
例)
girlsprof:
| 0001 | ブス子 | ア○ルもおkです |
| 0002 | デブ美 | デブでよければ |
schedule:
| 0001 | 2010-06-25 |
| 0001 | 2010-06-26 |
| 0002 | 2010-06-25 |
女の子のIDで検索すればその子の出勤日が取得できるし、日付で
検索すればその日に出勤する女の子が取得できるから充分でしょ。
0438nobodyさん
2010/06/14(月) 16:32:32ID:hKCZ/dhE0439nobodyさん
2010/06/14(月) 16:35:40ID:???お前らよくマルチに見せかけとかわかるな
俺にはお前らのレスが「マルチに見せかけという事にしたい」と見えてしまうよ
邪推かな?
0441nobodyさん
2010/06/14(月) 16:41:32ID:???ヒント:登録日
>>440
日本人が優れた人種とは一言も言っていない
要するにこんなくだらんことを思いつくようなやつはチョン以外ありえないって言いたかったんだよ
分かりにくくて悪かったな
0442nobodyさん
2010/06/14(月) 17:01:22ID:???0444nobodyさん
2010/06/14(月) 18:18:39ID:154tZPz8下のようにドキュメント宣言を変えただけなのですが、何故かPHPの部分が出力されなくなりました。
なんででしょうか?? apacheの設定が別途必要なのでしょうか??
index.htm
------------------------------
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
…
</head>
<body>
<?php include_once($_SERVER['DOCUMENT_ROOT'] . '/aaa.php'); ?>
…
↓
<!DOCTYPE html>
<html lang=="ja">
<head>
<meta charset="utf-8" />
…
</head>
<body>
<?php include_once($_SERVER['DOCUMENT_ROOT'] . '/aaa.php'); ?>
…
0445nobodyさん
2010/06/14(月) 18:33:38ID:???0446nobodyさん
2010/06/14(月) 19:06:51ID:???0447nobodyさん
2010/06/14(月) 19:46:52ID:???apacheの設定は必要ないだろうからそれだけじゃ分からないよ。
PHPの部分だけ表示されないとの事だけど、肝心のPHPの部分はどうなってるの?
includeしなきゃ表示される?
0448nobodyさん
2010/06/14(月) 20:24:19ID:IP77a2fP0449nobodyさん
2010/06/14(月) 20:25:36ID:154tZPz8short_open_tagはoffになってました
>>447
XHTMLのものをそのまま使ってるだけなので
PHPのコード自体は問題ないはずです
試しに
<?php include_once($_SERVER['DOCUMENT_ROOT'] . '/aaa.php'); ?>
の部分を
<?php echo 'test php';?>
に変えてみたのですが、やはり表示されなかったです
0451nobodyさん
2010/06/14(月) 20:42:11ID:qzix/x5L"4時限 日本のメディアと文学 千田 洋幸 教育"
上のように、半角スペースやタブなど様々な要素が混ざっている文字列を
下のように半角スペース区切りで整形したいです。
■考えたコード
//全角数字を半角に
$keyword = mb_convert_kana($keyword, "n");
//全角スペースを半角に
$keyword = mb_ereg_replace('[ ]{1,}', ' ', $keyword);
$keyword = trim($keyword);
上記のようなコードでは上手くいかなかったのですが、
どうすれば綺麗に整形できるでしょうか?
0452nobodyさん
2010/06/14(月) 20:48:46ID:???0453nobodyさん
2010/06/14(月) 21:17:59ID:qzix/x5Lありがとうございます!
試してみたのですが、
” 1時限 社会開発論 店田 廣文 人科”
このように2以上のスペースやタブの時に完全に半角スペースひとつになりませんでした。。
0454nobodyさん
2010/06/14(月) 21:20:36ID:qzix/x5L$words = trim($words);
$words = preg_split("/[\s,]+/",$words);
正規表現で分割してみたのですが、全角スペースが分割されませんでした。
全角スペースも分割する方法はあるでしょうか?
array
0 => string '4時限' (length=9)
1 => string '日本のメディアと文学' (length=30)
2 => string '千田 洋幸' (length=15)
3 => string '教育' (length=6)
この ”千田 洋幸” も分割したいです。
0456nobodyさん
2010/06/15(火) 04:36:19ID:???<?php
if(is_null($shu)){
種類:<input type="text" name="shurui">
付属品:
<select name="huzoku">
<option value="abc">ABC</option>
<option value="lmn">LMN</option>
<option value="xyz">XYZ</option>
</select><br>
<input type="submit" value="送信">
}
else{
$shu = $_GET['shurui'];
$huz = $_GET['huzoku'];
echo "Your choice is $shu with $huz";
}
?>
</form>
見にくいコピペですいませんが、if文内のタグがすべてエラー対象になってしまいます。
何がいけないのかどなたかご教授のほどを…
0457nobodyさん
2010/06/15(火) 05:05:47ID:???0458nobodyさん
2010/06/15(火) 10:27:34ID:???0459nobodyさん
2010/06/15(火) 11:02:33ID:???それをUTF-8にすると、コメントがすべて文字化けしてしまうのですが、
どうすれば日本語を文字化けせずにUTF-8に変更できるでしょうか?
SHIFT-JISからUTF-8にすると文字コードの違いから
文字化けしちゃうのはわかりますが、対処策がわかりません
0461nobodyさん
2010/06/15(火) 13:53:31ID:???0462nobodyさん
2010/06/15(火) 14:25:48ID:FYWiA/i5ありがとうございます。上手く行きました!
0463nobodyさん
2010/06/15(火) 14:29:04ID:FYWiA/i50 => string '' (length=0)
1 => string '' (length=0)
2 => string 'テスト' (length=9)
3 => string '12' (length=2)
このような配列の時、配列の中身があるものだけ残すには
どのようにすればよいのでしょうか?
array
0 => string 'テスト' (length=9)
1 => string '12' (length=2)
最終的にこのように変換したいです。
マニュアルを調べたところ、array_spliceでやるのかなと思っているのですが、
やり方がなかなか分かりません。
0464nobodyさん
2010/06/15(火) 14:43:49ID:???0465nobodyさん
2010/06/15(火) 14:51:30ID:FYWiA/i5できればもう少しヒントを! 使う関数名だけでもよいので!
0466nobodyさん
2010/06/15(火) 15:04:30ID:???ただし添え字は詰めてくれないのでarray_mergeあたりと併用
0467nobodyさん
2010/06/15(火) 15:05:59ID:???for ( $i = 0 ; $i < count($array) ; $i++) {
if ( $array[$i] ==""){
array_splice( $array ,$i,1);
$i--;
}
}
0469nobodyさん
2010/06/15(火) 15:18:12ID:???echo "元の状態\n";
var_dump($WK);
$WK2 = array();
foreach($WK as $WK1)
{
if((isset($WK1) === true) and (strlen($WK1) > 0))
{
$WK2[] = $WK1;
};
};
echo "\n結果\n";
var_dump($WK2);
0471nobodyさん
2010/06/15(火) 15:26:53ID:???0472nobodyさん
2010/06/15(火) 15:27:54ID:wrbhrBX4$array = array('', '', 'テスト', '12');
var_dump(array_diff($array, array('')));
0473nobodyさん
2010/06/15(火) 17:38:39ID:pnwlJPRhUNIXタイムスタンプってよくない?
0474nobodyさん
2010/06/15(火) 18:02:28ID:???0475nobodyさん
2010/06/15(火) 18:45:33ID:???0476nobodyさん
2010/06/15(火) 19:41:36ID:???0477nobodyさん
2010/06/15(火) 21:01:27ID:???1秒間に10万人が登録しても余裕(1マイクロ秒=100万分の1秒)
0478nobodyさん
2010/06/15(火) 21:07:40ID:???大丈夫な気がするけどw
0479nobodyさん
2010/06/15(火) 21:09:11ID:???0480nobodyさん
2010/06/15(火) 21:10:43ID:???0481nobodyさん
2010/06/15(火) 21:17:55ID:???0482nobodyさん
2010/06/15(火) 22:49:42ID:???0483nobodyさん
2010/06/15(火) 23:14:51ID:???0484nobodyさん
2010/06/16(水) 00:23:12ID:???それ以外にする理由がない
0485nobodyさん
2010/06/16(水) 00:35:10ID:???登録時に既存のIDをチェックして、重複が発生しないようにする
0486nobodyさん
2010/06/16(水) 00:44:04ID:???最近はメールアドレスをID代わりにするのがトレンド
0487nobodyさん
2010/06/16(水) 01:27:08ID:???0488nobodyさん
2010/06/16(水) 01:41:37ID:sfuhSdY7$HTTP["url"] == "\.(php)$" {
{url.access-deny = ( "" )
}
http://exprode.net/index.php?id=087
http://exprode.net/index.php?id=908700
http://exprode.net/index.php?id=adomin
のようなURLまで対応させるにはどうしたらいいでしょうか?
0489nobodyさん
2010/06/16(水) 01:43:16ID:???0491487
2010/06/16(水) 01:56:07ID:sfuhSdY7linux板で聞きます
0492nobodyさん
2010/06/16(水) 02:52:57ID:???デバッグにて引数を渡したいのですが、
メニュー > 実行 > デバッグの構成 > PHPスクリプト引数
に値を設定してもデバッグ時に$_GETの中に値が入ってくれません。
(具体的には、hoge.php?id=1 とし、$_GET['id']で1が取れる事を期待しているのですが・・・)
実行時に引数を渡してやるにはどうしたらよいのでしょうか。
よろしくお願いします。
0493nobodyさん
2010/06/16(水) 05:28:00ID:MIQQfYzzSELECT * FROM tablename WHERE ( colum BETWEEN 10 AND 20 ) LIMIT 25; # 実際には320件ある
rowCount()だと当然「25」となります。
総レコード数である「320」を取得する効率的な方法を教えてください。
現在は、以下のように2回クエリを発行して対処しています。
$stmt = $pdo->query( 'SELECT COUNT(*) FROM tablename WHERE ( colum BETWEEN 10 AND 20 );' );
list( $count ) = $stmt->fetch();
echo $count;
$stmt = $pdo->prepare( 'SELECT * FROM tablename WHERE ( colum BETWEEN 10 AND 20 ) LIMIT 25;' );
$stmt->execute();
他に定石的な方法はありますでしょうか?
0494nobodyさん
2010/06/16(水) 05:43:29ID:???0495nobodyさん
2010/06/16(水) 07:55:42ID:J3wcOhw/【PHPのバージョン】PHP5.10.1
【連携ソフトウェア】MySQL ActionScript3.0
【質問内容】
プログラム初心者です。スレチだったら誘導して頂けると幸いです。
現在、FlashとDBを連携させるプログラムを作っているのですが、
その仲介としてPHPを利用しています。
echo文を使ってFlash側に変数の受け渡しをしようと思っているのですが
PHP側で
echo "key=".$key;
とすると、Flash側に変数$keyを渡すことが出来ているのですが、
echo "key=".$key;
echo "val=".$value;
と記述すると、Flash側の変数keyに文字列として
$keyval=$value;
※&変数には実際の値が入っています。
と表示されてしまいます。
どのような記述をすれば二つの変数をうまくFlash側に渡すことが出来るでしょうか?
よろしくお願いします。
0496nobodyさん
2010/06/16(水) 09:07:59ID:???FlashとPHPでの値のやり取りは変数名=値&変数名=値… と&で連結する必要が
あったんじゃなかったかな
あと気をつけるのはphp側の文字エンコード
0497nobodyさん
2010/06/16(水) 11:36:03ID:???SELECTは一回で済むけど、結局内部的には二回じゃないのか? であり、
なおかつメモリ効率的には「俺って馬鹿げたことしてんなぁ」という方法
countする方をサブクエリにして、その結果を検索結果の方の一カラムに収める。
(検索結果行の全てに、同じ値(count結果)が収まってるカラムが付いちゃう)
MySQLだったら、SELECTは二回だけど二回目は実際の検索はしないから軽い(だろう)という方法有り(他は知らない)
SQL_CALC_FOUND_ROWS でぐぐってみてね。
0498nobodyさん
2010/06/16(水) 11:40:12ID:???0499nobodyさん
2010/06/16(水) 12:34:49ID:???あれば全部見なくても値を返せるから別の処理。2回やってもしょうがない
と思う。まあインデックス使えなければ条件で全部ナメが2回走るかも
だけど、それはむしろインデックス用意しろだな。countとlimitつきのselectを
分けたいぐらい要素数が多いのならその価値はあるだろう。
0500nobodyさん
2010/06/16(水) 13:56:16ID:6gbQuGMYここ等を参考に、swfmillで作成した携帯向けFlashを
header('Content-type: application/x-shockwave-flash');
echo $swfOutput;
のように返すと何故か
FireMobileSimulatorでは表示できるのに携帯では表示できない。
いったんfile_put_contentsでファイルに書き出し、そこにLocationヘッダで飛ばしてやると
携帯でも表示される。
ディスクI/Oを減らすためできればファイル吐かずに済ませたいんですが、
何かお知恵はありませんでしょうか。
0502nobodyさん
2010/06/17(木) 04:56:28ID:mKgRGi9a0503nobodyさん
2010/06/17(木) 05:16:08ID:???0504nobodyさん
2010/06/17(木) 05:20:16ID:???IPで判別してるのかと思ってました。
クッキーにランダムな文字列のセッションIDだけを入れて
後はサーバー側に保存と・・
0505495
2010/06/17(木) 05:26:02ID:sy18pq7kお返事が遅くなって申し訳ありません。
試してみます。
回答ありがとうございました。
0506nobodyさん
2010/06/17(木) 09:29:50ID:Ii8+nE6y送信フォームなどで使うボタン。以下のように書けばボタンの代わりに画像を使うことができますよね。
<input type="image" src="image.gif" name="sub" /> ←(ボタンの代わりに、“image.gif”という画像を使う)
そこで、画像の代わりに文字列を使うことは出来ますでしょうか?どういうことかと申しますと、普通によくあるリンク
(< href="xxxxxxxxx.html">リンク</a>)を張る感じで、それをクリックするとデータを送信させるようにしたいのです。
例えば、これは私の予想ですが、ヤフオクとかで条件を絞り込む場合、
「デスクトップ」という文字列のリンクがあり、それをクリックすると「デスクトップ」というデータを送信し、それを抽出して表示…
という仮定を踏んでいるものだと思っています(間違ってたらすいません)。
皆様のお知恵を拝借したいと思います。宜しくお願いします。
0507nobodyさん
2010/06/17(木) 09:40:25ID:???0508nobodyさん
2010/06/17(木) 11:47:14ID:Ii8+nE6yPOSTとGETリクエストは理解してるの?
理解はしてる…つもりです。一応ですけど。
<input type="image"……で、画像を使った時はうまくいきました。
0509nobodyさん
2010/06/17(木) 12:03:43ID:???ヤフオクの例はGETなんじゃねーの?ってことを
507は言いたいんだと思う。
ちなみにリンクでsubmitしたければ、javascriptで
onclickイベントにsumbitを書けばおk
0510nobodyさん
2010/06/17(木) 18:22:02ID:???<input type="text" name="search">
<input type="submit" value="search!!">
</form>
<?php
if(isset($_POST["search"])){
$str = $_POST["search"];
mb_internal_encoding("UTF-8");
mb_http_output("UTF-8");
$url = "http://search.yahooapis.jp/WebSearchService/V1/webSearch?appid=***&results=2";
$url .= "&query=".urlencode($str);
$data = simplexml_load_file($url);
print_r($data);
}
?>
検索したい言葉を入れて、Yahooの検索APIから検索結果を表示させたいんだけど、
検索結果が文字化けしちゃうし、日本語の検索キーワードを入力すると検索結果0件になっちゃうんだけど
どこがおかしいの?
0512nobodyさん
2010/06/17(木) 23:06:44ID:???0513nobodyさん
2010/06/17(木) 23:11:18ID:???「くだらない質問をするときはIDを出さなければならない」とは書かれているようですが、それがいかがなさいましたか?
0514nobodyさん
2010/06/17(木) 23:11:53ID:???0516nobodyさん
2010/06/17(木) 23:15:55ID:???0518nobodyさん
2010/06/17(木) 23:18:57ID:WMbR8KJ3>>30でUAを設定してるのと設定してないので取得できる量が変わるのはなんで?
0519nobodyさん
2010/06/17(木) 23:21:50ID:???パケットキャプチャしたりするとわかるのかな。
0520nobodyさん
2010/06/18(金) 00:26:09ID:df2633Tiphp4ts.dllをシステムフォルダにコピーすればいいらしいんですが
php4ts.dllが見つかりません
どこにおいてあるのでしょうか?
0522nobodyさん
2010/06/18(金) 00:41:58ID:df2633Tiこのサイトによると必要らしいので
0523nobodyさん
2010/06/18(金) 00:49:38ID:???少なくともそこのサイトの通りやっても5系の入れられないし、
あなたがダウンロードしちゃったのはソースなので使えないです。
0524nobodyさん
2010/06/18(金) 01:29:12ID:df2633Ti回答ありがとうございます
0525nobodyさん
2010/06/18(金) 01:57:21ID:???残婦なんか勧めるなよ
あれは「分かってるヤツ」がほんの若干の手間を省くためのもの
>>524
どこにソースをダウンロードなんて書いてあんだよ
http://windows.php.net/download/
から
x86 Thread Safe
の Installer を落とせ
0526nobodyさん
2010/06/18(金) 03:13:36ID:df2633Tiインストーラーを落としましたサンクスです
インストールする時にother cgiを選んだんですがこれでもいいですよね?
あとインストールすればすぐにPHP使えますか?
0527nobodyさん
2010/06/18(金) 03:33:58ID:feYzfmHO最近、PHPの勉強を始めたばかりなのですが。
XAMPPをインストール、テスト用の簡単なPHPも使用できていて、
動作には問題ないように思います。
mysqlは、utf8の文字コードを追加しています。
また、.htmlで、phpが動作するように、.htaccessを使用しています。
ウェブサイトを基本xhtmlでコーディングしていって、ヘッダーなどの部分を
PHPで共通化できればと思い、勉強を始めたのですが、いきなり文字化けに陥りました。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
これがソース内にあると、文字化けします。
逆に、なければ文字化けはしません。
これは、なぜなんでしょうか・・・
どなたか、おわかりになる方、ご教授してください><
0528nobodyさん
2010/06/18(金) 03:56:02ID:???ごめん オレには other cgi が何か分からん。
だいたい apache module みたいなんだと思う
君が cgi/fcgi を望んでるとは思えん
>>527
それぞれの文字コードを見直す
0530527
2010/06/18(金) 04:33:07ID:feYzfmHOありがとうございます。
php.iniを、もう1度みなおしていたら、UTF-8じゃない部分がありました。
単純なミスで質問してしまって、すいませんでした。
回答ありがとうございました!
0532nobodyさん
2010/06/18(金) 08:52:21ID:KlmzoK3kは表示されるのですが、
echo $_SERVER["REMOTE_HOST"];
は表示されません。
これは何処の設定をいじくれば表示されるようになるんでしょうか?
0534nobodyさん
2010/06/18(金) 14:04:34ID:J92h6I5ehttp://nyx.pu1.net/practice/server_var/server_var2.php#sample6
0535nobodyさん
2010/06/18(金) 14:43:06ID:PtT48P2nMySQLのテーブル「user」の各フィールド名を
user_id|user_name|user_mail
のように、テーブル名を接頭辞にして付けています。
$sql = "SELECT * FROM user";
$res = mysql_query($sql);
みたいにしてSQL文を実行してmysql_fetch_arrayで登録値を取得出来るわけですが、
登録値を取得する時、どういう配列名にすればいいか悩みます。
これまでは
$user = mysql_fetch_array($res);
のように、テーブル名を配列にして代入していたのですが、
これを出力する時、 $user["user_name"]となるので、ややこしく感じます。
どうするのが一般的なかと疑問に感じ、質問させていただきました。
0536nobodyさん
2010/06/18(金) 14:45:47ID:???0537535
2010/06/18(金) 14:53:14ID:PtT48P2n0538nobodyさん
2010/06/18(金) 14:59:35ID:J92h6I5e0539nobodyさん
2010/06/18(金) 15:11:06ID:???結合のときにカラムのエイリアスを付けなくていい
0540nobodyさん
2010/06/18(金) 15:14:44ID:???RDBMSがなんのためにスキーマ、テーブル、カラムで空間を分けてるか考えたら
結合のときにカラムのエイリアスを付けなくていいという理由だけで
接頭辞を乱用すべきじゃないね
0541535
2010/06/18(金) 15:21:55ID:PtT48P2n乱用すべきでないというのは分かります。
ただ、テーブル数が多くなってくると、やはり接頭辞を付けた方が
ソースが分かりやすいんです。WordPressやMTなんかも接頭辞を付けてますし。
で、>>536-540さんの意見を総合すると、
$user = mysql_fetch_array($res);
というようにテーブル名の配列に代入する方法が一般的なんですかね。
0542nobodyさん
2010/06/18(金) 16:42:15ID:???http://livedoor.2.blogimg.jp/agomesu/imgs/4/f/4faec292.png
ばらまこうぜ!
0543nobodyさん
2010/06/18(金) 18:19:48ID:df2633Tiインストールしたんですが
これって設定の変更とかせずにそのまますぐに使えますか?
0545nobodyさん
2010/06/18(金) 18:22:19ID:9ev+TnD6http://itpro.nikkeibp.co.jp/article/COLUMN/20070507/270089/
bamcompileでスタンドアロンEXEアプリを作ろう - PHP TIPS:ITpro
0546nobodyさん
2010/06/18(金) 18:25:10ID:UII6mL4gどうも上手く動作してないような気がします。
wwwフォルダ以下にある色んなphpやjpgなどを開いたら、
↓のapc.phpキャプチャ画像の2〜4番目あたりが変化しそうな気がするのですが、全く変わりません。
この状態だとキャッシュされているのが、その時開いたapc.phpだけという意味ですよね?
どこが悪いのかさっぱりです。
分かる方いましたらどうかよろしくお願いします。
【組込手順】
・本家からAPC.tgzダウンロード→解凍→サーバーにAPCフォルダとしてアップ
・cd APC
・phpize
・./configure --enable-apc
・make
・modulesにapc.soができたのを確認
【主なフォルダ/ファイル構成】
home
|
└myid
|
├APC
| └modules
| └apc.so
|
└www
└html/phpなど
0547nobodyさん
2010/06/18(金) 18:25:32ID:9ev+TnD6XAMPP Windows版 1.7.3 51 MB 自己解凍型RAR アーカイブ
http://www.apachefriends.org/jp/xampp-windows.html#2671
0548546
2010/06/18(金) 18:26:25ID:UII6mL4gttp://up.mugitya.com/img/Lv.1_up120571.jpg
ttp://up.mugitya.com/img/Lv.1_up120572.jpg
ttp://up.mugitya.com/img/Lv.1_up120573.jpg
ttp://up.mugitya.com/img/Lv.1_up120574.jpg
【phpinfo】
ttp://up.mugitya.com/img/Lv.1_up120575.jpg
ttp://up.mugitya.com/img/Lv.1_up120576.jpg
0549nobodyさん
2010/06/18(金) 18:30:17ID:???apt-get install lamp-server とコマンドを打つだけで
Apache MySQL PHPが自動でインストールされるのに
Windowsは非常に面倒だな
0550nobodyさん
2010/06/19(土) 05:25:01ID:9jWjEAKJ0551nobodyさん
2010/06/19(土) 05:41:28ID:???0552nobodyさん
2010/06/19(土) 09:08:29ID:???0553nobodyさん
2010/06/19(土) 19:33:03ID:PoSyZtDIheader('Content-Type: text/html; charset=UTF-8');
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>
<form method="POST" action="">
<textarea name="replace" cols=20 rows=4></textarea>
<input type="submit" value="replace!!">
</form>
<?
if(isset($_POST["replace"])){
$before = $_POST["replace"];
echo $before;
echo mb_detect_encoding($before);
$after = str_replace("です", "でした", $before);
echo $after;
echo mb_detect_encoding($str)."<br>";
}
フォームで文字列置換をやりたいんだけど、うまくいきません。
置換前の文字列とその文字コード、置換後の文字列とその文字コードを表示させてますが、
「あいうえおです」みたいな日本語を入力しても、該当箇所が置換されないどころか文字列自体が表示されません。
しかも文字コードはどちらもSJISになっちゃいます。
どうしたらうまく置換できるのでしょうか。
0556nobodyさん
2010/06/19(土) 19:58:59ID:9jWjEAKJ0557553
2010/06/19(土) 20:31:04ID:PoSyZtDIheader('Content-Type: text/html; charset=UTF-8');
mb_http_output("UTF-8");
mb_internal_encoding("UTF-8");
ob_start("mb_output_handler");
?>
<META httpequiv="Content-Type" content="text/html;charset=UTF-8">
<form method="POST" action="">
<textarea name="replace" cols=20 rows=4></textarea>
<input type="submit" value="replace!!">
</form>
<?
if(isset($_POST["replace"])){
$before = $_POST["replace"];
echo $before;
echo mb_detect_encoding($before);
}
とりあえずPOSTされたデータを表示させることから解決してみようと
>>555のmb_internal_encoding("UTF-8");を追加し、metaタグも入れてみましたが、
FirefoxではPOSTされたデータはちゃんと表示され、文字コードもUTF-8と出るのですが、
IEでは日本語を入力した場合、POSTされたデータは表示されない上、文字コードもSJISと出てしまいます。
ヘッダーもUTF-8にしてるはずなのでPOSTされたデータはUTF-8だと思ったのですが・・・
ヘッダーの設定方法がおかしいのでしょうか?
0558nobodyさん
2010/06/19(土) 21:36:37ID:???してIEとFirefoxで比べてみたらいい
0559nobodyさん
2010/06/19(土) 22:46:46ID:9jWjEAKJint2bin($n) のように変換するしかないですか? 既存関数のみで可能ですか。
fread, fwriteだとテキストで123456が出力されると思うのですが。
function int2bin($x){ return sprintf("%c%c%c%c", $x&255, ($x>>8)&255, ($x>>16)&255, ($x>>24)&255 ); }
function bin2int($s){ return ord ($s)+(ord ($s[1])<<8)+(ord ($s[2])<<16)+(ord ($s[3])<<24); }
0560nobodyさん
2010/06/19(土) 23:01:00ID:???0561nobodyさん
2010/06/20(日) 01:20:59ID:twag0hRe0562nobodyさん
2010/06/20(日) 01:43:30ID:???0564nobodyさん
2010/06/20(日) 01:59:37ID:qnX6bksXどうすればいいでしょうか?
例えば、URL: http://example.com/basic.htmlと言うベーシック認証の
ページがありID:foo / Passwd:barの場合
$ary = file0("http://example.com/basic.html");じゃ取得できません。
どうすればいいのでしょうか?
0567nobodyさん
2010/06/20(日) 02:10:51ID:???Basic認証がかかったページにアクセスする方法 - PHPプロ!Q&A掲示板
http://www.phppro.jp/qa/212
0568nobodyさん
2010/06/20(日) 02:23:15ID:???apc.stat を off にしてphpソースを変更
実行して変更が反映されてなければ間違いなくキャッシュされてる
jpgのくだりはよく分からないけど
キャッシュされるのはphpのバイトコードだよ
パースの手間が無くなる分軽くなる
0570nobodyさん
2010/06/20(日) 09:28:26ID:???http://hain.jp/index.php/tech-j/2007/02/13/p125
0571nobodyさん
2010/06/20(日) 11:15:41ID:OE54gla81.PHPのsystem()で.rbを実行するする
2.そのrbの中では色々な処理をする
3.処理が終わったらPHPにその処理結果を戻す
4.PHPでその結果を条件分岐か何かで判断をする
というようなWebページを作ろうとしています
これって可能ですか?
上2行は確認出来たのですが、結果をPHPに戻すのは無理なような気がします
どうですか?
0572nobodyさん
2010/06/20(日) 11:37:34ID:???0573nobodyさん
2010/06/20(日) 12:10:32ID:???と、Ruby知らなくてPHP中級な俺が言ってみる。
0574nobodyさん
2010/06/20(日) 13:45:50ID:???標準出力をキャプチャしたかったら popen(), proc_open() などを使う
0576nobodyさん
2010/06/20(日) 14:56:32ID:Zg4Yd11eオープンソースのPHPシステムを教えて下さい
0577nobodyさん
2010/06/20(日) 15:13:03ID:???正しく表示する方法はないのでしょうか?
0580nobodyさん
2010/06/20(日) 17:43:38ID:7fNS8+df$FileType = mime_content_type($FileNameTMP);
header("Content-Type:" .$FileType);
readfile($FileName);
こんな感じのソースを書いたのですが、IEだとブラウザでの表示ではなくて保存ダイアログが表示されるようになってしまいます。
Firefoxの場合は問題なく表示できます。
Firefoxも空のテキストファイルだと保存ダイアログが表示されるようになります。
画像ファイルやPDFファイルなどをブラウザで開ける様になる決方法は無いでしょうか?
0581nobodyさん
2010/06/20(日) 17:59:44ID:???header('Content-Type: application/pdf');
0582nobodyさん
2010/06/20(日) 18:02:31ID:7fNS8+dfそれやるとFirefoxでも問答無用で保存ダイアログが表示される。
やりたいのは>>580でも書いていますが保存ダイアログを出したいのではなくて
ブラウザ上で表示したい。
0583nobodyさん
2010/06/20(日) 18:04:12ID:???保存するなら >Content-Disposition: attachment
表示するなら >Content-Disposition: inline
0584nobodyさん
2010/06/20(日) 18:04:41ID:???失礼しました。
【OS名】CentOS5
【PHPのバージョン】5.3
【連携ソフトウェア】
【質問内容】
formから放り込んだ日本語をImageTTFTextで縦書きにしたいのですが、句読点やーがおかしな事になります。
正しく表示する方法はないのでしょうか?
過去ログでは縦書き専用フォントで・・・とかが見つかったのですが肝心の縦書き専用フォントがぐぐっても見つけられません。
0585nobodyさん
2010/06/20(日) 18:22:53ID:7fNS8+dfすみませんでした。
inlineの部分を見落としていました。
IEだとbmpファイルはこの方法でも保存ダイアログが出てしまいます。
また空テキストファイルだとFirefoxだと保存ダイアログがでます。
IEでは空テキストファイルでは保存ダイアログはでません。
これらを解決する方法は無いでしょうか?
0586nobodyさん
2010/06/20(日) 18:27:15ID:7fNS8+df空テキストファイルのMIMEを見ると
application/x-empty
となっています。
application/x-emptyを調べてみてもいまいちどういうときにできるMIMEなのかわかりません。
application/x-emptyをtext/plain変換してやらないと駄目って事ですかね?
0587nobodyさん
2010/06/20(日) 19:43:42ID:???mime-typeを適切に設定しろ
それだけだ
0588nobodyさん
2010/06/20(日) 19:49:09ID:7fNS8+df??????
0589nobodyさん
2010/06/20(日) 20:02:32ID:???ID出すことを忘れているようだけど、ともあれ、本題についてだけど、それは難しい。
フォントをいじってみてはどうか。
0590nobodyさん
2010/06/20(日) 23:22:44ID:V/OxbjwX他でオープンされていると0になるし、
値がキャッシュされるから実サイズと異なる値を返すことあり。頻繁な更新されている物だと。
0591nobodyさん
2010/06/21(月) 00:35:22ID:???ImageTTFTextって使ったことないけど
表示する文字が句読点かどうか調べて
句読点ならは座標をずらせばいいんじゃない?
ハイフンだったら縦棒(|など)に変換するとか。
0592nobodyさん
2010/06/21(月) 00:59:52ID:oQjyj8CX\を含むため。どう直せばいいですか。
function mkdir_r( $path ) {
if(is_dir($path)) return;
$path = str_replace( '\\', '/', $path);
$parts = array_filter ( explode('/', $path), 'strlen' );
$s=""; foreach ($parts as $part) { $s.="$part/"; @mkdir($s); } }
0593592
2010/06/21(月) 01:12:43ID:oQjyj8CX0594592
2010/06/21(月) 01:34:09ID:oQjyj8CXfunction mkdir_r( $t ) {
$s=array();
while( !is_dir($t) ) { $s[] = $t; $t=dirname($t); }
for( $n=count($s)-1; $n>=0; $n-- ) mkdir($s[$n]); }
0596nobodyさん
2010/06/21(月) 12:33:30ID:oQjyj8CX0597nobodyさん
2010/06/21(月) 12:51:52ID:???pathinfoとかdirnameの日本語の不具合って直ってないよね?
http://bugs.php.net/bug.php?id=37738
0598nobodyさん
2010/06/21(月) 18:06:11ID:oQjyj8CX<?php
$a = new A();
$a->add();
$a->add();
class A {
var $num;
function A() { $this->num=0; register_shutdown_function( array( $this, '_A' ) ); }
function add() { $this->num++; }
function _A() { echo "num={$this->num} \n"; }
}
?>
0599nobodyさん
2010/06/21(月) 18:16:36ID:???「〜」の処理とか
> 座標をずらせばいいんじゃない?
これとか、多分素直にさせてくれないよ。
動くとわりと面白い系だから一度は試して遊ぶといいかも。
0601nobodyさん
2010/06/21(月) 18:35:41ID:oQjyj8CX0602nobodyさん
2010/06/21(月) 18:41:50ID:???セーブして実行してみた。
% php hoge.php
num=2
出るじゃん。
0603nobodyさん
2010/06/21(月) 18:42:55ID:oQjyj8CX0604nobodyさん
2010/06/21(月) 18:46:36ID:???グローバルに渡すしか。
0605nobodyさん
2010/06/21(月) 18:47:44ID:oQjyj8CXこれだとクラス変数と別に変数用意する手間が掛かって良くないです。
クラスの値が破壊、初期化されてからregister_shutdown_functionが起動すると思います。
回避する方法ないですか。PHP4です。
$Anum=0;
$a = new A();
$a->add();
$a->add();
class A {
function A() { global $Anum; $Anum=0;
register_shutdown_function( array( $this, '_A' ) ); }
function add() { global $Anum; $Anum++; }
function _A() { global $Anum; echo "num={$Anum} \n"; }
}
0606nobodyさん
2010/06/21(月) 19:00:35ID:oQjyj8CX<?php
$b = new B();
$b->add();
$b->add();
class B {
var $Anum=0;
var $a;
function B() { $this->a = new A(); }
function add() { $this->a->add(); } }
class A {
function A() { global $Anum; $Anum=0;
register_shutdown_function( array( $this, '_A' ) ); }
function add() { global $Anum; $Anum++; }
function _A() { global $Anum; echo "num={$Anum} \n"; } }
?>
0607nobodyさん
2010/06/21(月) 19:09:33ID:???調子悪いので茨の道だぞ。
0608nobodyさん
2010/06/21(月) 19:14:46ID:???classAの $Anum 別物じゃん。
結局BがAのインスタンスもってるだけで >>605と同じ・・・
0609nobodyさん
2010/06/21(月) 19:16:50ID:???$a =& new A();
とかでしょどうせ。
0610nobodyさん
2010/06/21(月) 19:27:13ID:oQjyj8CX<?php
$a = & new A(); $a->add();
$b = & new A(); $b->add(); $b->add();
class A {
var $num;
function A() { $this->num=0; register_shutdown_function( array( &$this, '_A' ) ); }
function add() { $this->num++; }
function _A() { echo "num={$this->num} \n"; } }
?>
0611nobodyさん
2010/06/21(月) 19:29:54ID:???PHP4 new演算子
とかでググれば出てくる。
0612nobodyさん
2010/06/21(月) 19:30:42ID:oQjyj8CX0613nobodyさん
2010/06/21(月) 19:34:20ID:???>>598
>>609 + register_shutdown_function(array(&$this, '_A' ))
0614nobodyさん
2010/06/21(月) 22:56:57ID:???0615nobodyさん
2010/06/21(月) 23:23:53ID:oQjyj8CX複数ファイルを持続接続でアップする方法ありますか。
毎回ログインする方法しか分かりません。
0616nobodyさん
2010/06/21(月) 23:39:00ID:???http://jp.php.net/manual/ja/function.curl-multi-exec.php
これが参考になるかな
0617nobodyさん
2010/06/21(月) 23:46:41ID:oQjyj8CXPHP4だと>>616が使えないです。
FTPのログイン動作に3から10秒ほどかかるのでこの時間の転送量は0です。
ログイン省く方法無いですか。
0618nobodyさん
2010/06/21(月) 23:58:15ID:???0619nobodyさん
2010/06/22(火) 02:55:15ID:???0620nobodyさん
2010/06/22(火) 03:50:07ID:???0621nobodyさん
2010/06/22(火) 09:02:05ID:???(そもそもPHP捨てたほうがいいというのは置いといてw)
0622nobodyさん
2010/06/22(火) 09:11:04ID:???PHPからC++のコード生成出来たり、実行ファイルが作れればいいのだが。
追加機能は例えば、static_php.libを組み込むことで実現出来たり。
0623nobodyさん
2010/06/22(火) 09:13:48ID:???HipHopはCentOSとFedora向けに開発されており、他のオペレーティングシステム上でのビルドは現在のところ機能しません。
HipHop for PHP
http://blog.candycane.jp/archives/295
0624nobodyさん
2010/06/22(火) 10:21:03ID:???なんでもWebだったらタダでやってくれると思ってないか?
0625nobodyさん
2010/06/22(火) 10:41:41ID:???まぁ使うけど。
5.3で静的遅延束縛が実装されて大分使いやすくなった。
0626nobodyさん
2010/06/22(火) 12:37:56ID:???今頃取り入れたらそれこそPHPらしいって言われるな
0627nobodyさん
2010/06/22(火) 18:42:11ID:ZnYDyWrvテキストデータの場合
fgets()を利用してループさせる。
file_get_contents()もしくはfile()でいっきに読み込む
どっちの方が効率がいい処理になるのでしょうか?
みなさんは何を基準にしてどの関数を利用するようにしていますか?
0628nobodyさん
2010/06/22(火) 18:48:40ID:???0629nobodyさん
2010/06/22(火) 18:49:19ID:???そうする。
0630nobodyさん
2010/06/22(火) 18:56:16ID:???タブや改行区切りで済むなら一気読みでexplodeが最速。
一回目と二回目
file
10.944231987 14.324997901917
serialize
15.630096912384 10.502514839172
var_export
16.92795419693 13.347457885742
explode
1.0216579437256 1.743134021759
0631630
2010/06/22(火) 18:58:18ID:???0632nobodyさん
2010/06/22(火) 21:08:21ID:???勝手に$A[$n] =NULLがセットされる気がしてたから。
存在しない配列・変数は自動生成するもんだとおもってた。
しかし、今日気づいた。増えてなかった。
0633nobodyさん
2010/06/22(火) 21:55:14ID:???亀レスだけど縦書き試してみた。
<?php
$im=imagecreatefrompng('sample.png');
$bgcolor=imagecolorallocate($im,255,255,255);
$im=imagerotate($im,90,$bgcolor); //左90度回転
$black=imagecolorallocate($im,0,0,0);
$font='vSHGM.ttf'; //縦書き専用フォント
$size=22; $x=50; $y=50;
$text='「馬〜鹿、アホー」って書いてみるテスト。';
imagettftext($im,$size,0,$x,$y,$black,$font,$text);
$im=imagerotate($im,-90,$bgcolor); //右90度回転
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);
?>
ImageTTFTextのAngleを-90にするとガタガタになるんで、
元の図形を回転させてみた。
いちおう句読点や長音、ニョロ、小さい「っ」の位置は正しく表示される。
でも、もともとのフォントの形が…残念…
0634nobodyさん
2010/06/22(火) 22:09:05ID:???0635nobodyさん
2010/06/22(火) 23:33:08ID:???効率って、
同じようなことするのにソースコードの行数が少なくて済む効率?
実行時間の効率?
使用メモリの効率?
0636nobodyさん
2010/06/23(水) 00:03:36ID:???0637nobodyさん
2010/06/23(水) 03:08:02ID:???0638nobodyさん
2010/06/23(水) 23:12:08ID:SXPCexzA・tmpファイル名から判断→できないですよね?頭にphpやsess_など特定の語がつくらしいことは分かったのですが・・・
・フォルダを監視し、アップロード開始前後に増えたファイルをAとみなす。→同時期に関係ないファイルが増えることもあるので微妙
0639nobodyさん
2010/06/24(木) 01:13:30ID:???リクエストを受け取って動くコードじゃなしに、別で動いてるディレクトリ監視用のなんかで、
受信が終わってリクエストされたPHPのファイルのなかみが実行される前に
アップロードされ一時保存されてるファイルにちょっかい出したいとか、そういう感じ?
0640nobodyさん
2010/06/24(木) 01:19:10ID:???そもそもバッファに収まるサイズなら一時ファイル作らないだろうし
0641nobodyさん
2010/06/24(木) 02:29:20ID:OBMIoFMZそんな感じです。
0642nobodyさん
2010/06/24(木) 06:36:59ID:WgZlfAT4PHPにて、以下のコードが意図したように動作しません。
$funcs = array(func_a, func_b, func_c);
foreach ($funcs as $func){
$func(); //$func === String... "func_a", "func_b", "func_c"
}
どうも調べてみると PHP の配列では、関数への参照が期待されるところが、文字列として解釈されてしまうみたいです。
どのようにすればこの問題を回避できるのでしょうか?
アドバイスよろしくお願いします。
0643642
2010/06/24(木) 06:46:36ID:WgZlfAT4x この問題を回避
x この問題を解決
0644nobodyさん
2010/06/24(木) 07:45:38ID:???よく分からんけど
>php -r "$funcs = array('func_a', 'func_b', 'func_c'); foreach($funcs as $func) $func();
Fatal error: Call to undefined function func_a() in Command line code on line 1
0645642
2010/06/24(木) 07:57:50ID:WgZlfAT4すみません、どうやらこちらの勘違いだったみたいです。
> var_dump($funcs)
array(3) { [0]=> string(4) "func_a" [1]=> string(4) "func_b" [2]=> string(4) "func_c" }
上記をまんまに受け取ってしまって、文字列が格納されていると判断していました。
しかし、先ほど確認してみると実際には関数への参照が格納されていることを確認できました;
どうもありがとうございました。
0646nobodyさん
2010/06/24(木) 08:34:42ID:???たとえば、$n=10に対して、10個目に格納されているキーと値を取得できますか。
0647nobodyさん
2010/06/24(木) 08:37:30ID:MnfGX6ASループでなくて、ランダムアクセスする方法ありますか。
こういうやつでなくコストが低いやつが良いです。
$n=10;
$cnt=0; foeeach ( $A as $key->$val ) { if($cnt==$n) break; $cnt++; }
0648nobodyさん
2010/06/24(木) 08:43:48ID:WgZlfAT4array_rand じゃだめなの?
0649647
2010/06/24(木) 08:48:10ID:MnfGX6ASランダムアクセス = シーケンシャルサーチ(>>647)をしないアクセスってことです。
0650nobodyさん
2010/06/24(木) 09:35:17ID:???配列の配列にすべきと思うけど。
0651nobodyさん
2010/06/24(木) 09:48:42ID:???0652nobodyさん
2010/06/24(木) 12:10:57ID:MnfGX6AS0653nobodyさん
2010/06/24(木) 13:05:35ID:???未定義の定数 func_a は文字列 "func_a" と等価に扱われているだけ
関数はファーストクラスオブジェクトじゃないのから
識別子となる文字列で間接的に扱うしかない
http://php.net/manual/ja/functions.variable-functions.php
0654nobodyさん
2010/06/24(木) 16:04:42ID:sfa066RHここの略称の略称はなんでしょうか?
0655nobodyさん
2010/06/24(木) 16:34:14ID:???0656nobodyさん
2010/06/24(木) 17:26:06ID:???0657nobodyさん
2010/06/24(木) 17:31:46ID:???0658nobodyさん
2010/06/24(木) 23:37:31ID:???HipHop PHPをwindowsに対応してほしいです。
0659nobodyさん
2010/06/25(金) 02:25:39ID:???0660nobodyさん
2010/06/25(金) 07:58:18ID:???0661nobodyさん
2010/06/25(金) 10:36:18ID:beZDHavcFTPソフトからもphpからも操作不可能です。
どんなアクセスも可能なファイルはどのように作成すればいいですか?
0662nobodyさん
2010/06/25(金) 10:37:35ID:beZDHavcオプションでは付いてないんですが。
あとから変更すると既に変更不可になってそうです。
0663nobodyさん
2010/06/25(金) 11:31:43ID:???0664nobodyさん
2010/06/25(金) 11:33:14ID:beZDHavcパーミッションが411になってしまったんだと思うんですが。
これって削除も更新も出来ないんですが。
FTPソフトから。
これにアクセスする方法はないんですか?
0665nobodyさん
2010/06/25(金) 11:34:25ID:beZDHavcサンクス。 phpから親ディレクトリのパーミッション変更してみます。
0666nobodyさん
2010/06/25(金) 11:35:07ID:???0667nobodyさん
2010/06/25(金) 13:10:12ID:beZDHavc0668nobodyさん
2010/06/25(金) 13:47:53ID:F/VYj9suextension_dirとinclude_pathという2つのパスがありますが
これらは何を基準に分けてるのですか?
extension_dirの中を見るとso拡張子のファイルしかないので、こちらはバイナリファイルを置けばいいのですか?
追加したいライブラリがso拡張子だったらextension_dirに突っ込んで
phpファイルだったらinclude_pathに突っ込む、という感じでいいのかな。
0669nobodyさん
2010/06/25(金) 19:25:21ID:TAYX3VSM一部の漢字がうまく変換されずに困っています。
JIS第三水準以上になると、ほとんど駄目なようなのですが、
対処法はありますでしょうか?
よろしくお願いします。
0670nobodyさん
2010/06/25(金) 20:04:08ID:beZDHavc0671nobodyさん
2010/06/27(日) 01:38:10ID:aVrX+ivVecho $text[3];
こうやれば「d」の文字が拾えますが
$text = "あいうえお";
echo $text[3];
とやった場合マルチバイトのため文字として拾えません。
これを拾えるようにする方法は無いのでしょうか?
$text = array("あ","い","う","え","お");
これはなしの方法であくまで
$text = "あいうえお";とやった変数に格納したデータを拾う方法。
0674nobodyさん
2010/06/27(日) 07:10:24ID:???0675nobodyさん
2010/06/27(日) 12:43:50ID:aVrX+ivVそれつてmb_系(mb_substr)の関数仕えって事?
0677nobodyさん
2010/06/27(日) 14:02:58ID:???http://jp.php.net/manual/ja/ref.mbstring.php
0678nobodyさん
2010/06/27(日) 14:29:26ID:???0679nobodyさん
2010/06/27(日) 15:06:07ID:???普通は関数使うね
0680nobodyさん
2010/06/27(日) 17:02:21ID:???0681nobodyさん
2010/06/27(日) 21:53:55ID:hmPoeXmO1,佐藤,ok,43
2,鈴木,no,65
3,田中,ok,87
4,斉藤,no,23
5,紅子,ok,90
4番目の斉藤のnoの部分をokに変えようとした場合
シェルのsedみたいに該当部分だけを書き換えることが出来る関数とかあるでしょうか?
ちなみにDBへの移行が出来ないのでfileで読み込んで斉藤にヒットした行のnoをokに変更、それ以外はそのままファイルに追記していく形で変更を行ってます。
0682nobodyさん
2010/06/27(日) 22:34:28ID:???DBは使えないってsqliteもだめなの?
0683nobodyさん
2010/06/27(日) 22:39:39ID:???0684681
2010/06/27(日) 22:45:42ID:hmPoeXmOcsvとして扱う関数があるわけですね。
そちらをちょっと調べてみます。
DB(sqlite含)関連が入っていない+追加出来ない状態です。これはサーバーの仕様なのであきらめてます。
>>683
私もそう思います。
でもきっとこれを作った当初は規模の拡大を予測してなかったんだと思います。
ソースを見たところ社内SEが部署内のちょっとした効率化のために作成したもののようです。
部署内でちょっとずつ機能追加してたら、他の部署からも〜みたいな感じで膨らんで今にいたるという状況みたいです。
ゼロから完全書き換えしたほうが後々いいとおもってはいますが、そこは大人の事情で出来そうにないので現状で何とかしようとしていたところです。
0685nobodyさん
2010/06/28(月) 14:52:59ID:t3TKO+l1PEARの公式サイトからXML-RPC2のパッケージをダウンロードして解凍したら
PHPファイルじゃなくてXMLファイルでした。
何を言っているのか分からないかもしれませんが
私にも何が起こったのか分かりません。
超能力とかそういうのじゃありません。
もっと恐ろしい能力の片鱗を味わいました。
どうすればいいですか教えて下さい。
0686nobodyさん
2010/06/28(月) 15:05:34ID:t3TKO+l1本当にありがとうございました。
0687nobodyさん
2010/06/28(月) 17:01:14ID:me2fxhSAこれを
<a href="http://aaa.jp/aaa/"><img src="http://aaa.jp/aaa/A_000000.jpg" ><br>暑い</a>
と置き換えたいのですがどうすればいいでしょうか?
0689nobodyさん
2010/06/28(月) 17:08:50ID:me2fxhSA<a href="http://aaa.jp/aaa/"><img id="pac-A_00000" alt="暑い" src="http://aaa.jp/aaa/A_000000.jpg" ></a>
<a href="http://aaa.jp/bbb/"><img id="pac-b_00001" alt="寒い" src="http://aaa.jp/aaa/A_000001.jpg" ></a>
etc・・・
これを
<a href="http://aaa.jp/aaa/"><img src="http://aaa.jp/aaa/A_000000.jpg" ><br>暑い</a>
<a href="http://aaa.jp/bbb/"><img src="http://aaa.jp/bbb/b_000001.jpg" ><br>寒い</a>
>>688
正規表現分りません><
0690nobodyさん
2010/06/28(月) 17:20:11ID:???#1嘘つき君。
>HP作成集などに載っている素材
>どれも問題ありません。
>(本の中で素材の注意書きに、「再配布や販売を目的とする素材の2次使用、商用利用は禁止する」とあります)
の部分は完全無視。
0691690
2010/06/28(月) 17:21:02ID:???0692nobodyさん
2010/06/28(月) 17:23:52ID:???>正規表現分りません><
調べる気がないの?
http://www.google.co.jp/search?source=ig&hl=ja&rlz=&q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE&aq=f&aqi=g10&aql=&oq=&gs_rfai=
>事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
さらに
>【その他諸注意】
>・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0693nobodyさん
2010/06/28(月) 17:26:25ID:???勉強しろ
0694nobodyさん
2010/06/28(月) 18:10:59ID:me2fxhSA$rcd = ereg_replace("^id=\".+\"$", "123", $var);
echo "$rcd";
とりあえず実験でこうやってみましたが駄目でした
>>693
これ以降は聞きません
今回だけです
0695nobodyさん
2010/06/28(月) 18:19:01ID:???いろいろやってみるといいよ。
http://www.rider-n.sakura.ne.jp/regexp/regexp.php
0696nobodyさん
2010/06/28(月) 18:35:46ID:???0697nobodyさん
2010/06/28(月) 18:35:48ID:me2fxhSA( ^ω^)おっおっおっ
良いサイトありがとう!
0698nobodyさん
2010/06/28(月) 18:37:34ID:me2fxhSADOMとかわかんないお( ^ω^)
でもありがとう( ^ω^)
0699nobodyさん
2010/06/28(月) 18:47:59ID:z0Gu2+zStry{
in_array($hoge,$fuga);
}catch(Exception $e){
echo 'error';
}
としたときに
in_array関数のパラメータに誤ったデータが入ってきたら
Exceptionのキャッチが出来るかと思っていたのですが、
キャッチできませんでした。
そういうものなのでしょうか?
もしキャッチをするとしたらどの様に記述すればよろしいのでしょうか?
よろしくお願いいたします。
0700nobodyさん
2010/06/28(月) 18:53:51ID:???http://jp.php.net/manual/ja/function.in-array.php
例外なんて発生しません
0701nobodyさん
2010/06/28(月) 19:48:46ID:???ありがとうございます。
やっぱり無理なんですね。
実務では、DB操作で複数テーブルへの操作を行おうとしていて、
in_arrayでエラーが発生したら
例外をキャッチしてロールバックをしたかったのですが、
そのまま素通りしていたものですから、
なにか良い方法がないかと思案しているところでした。
0703nobodyさん
2010/06/28(月) 19:59:50ID:???すればいいのでは?
0704nobodyさん
2010/06/28(月) 20:13:30ID:???0705nobodyさん
2010/06/28(月) 20:53:04ID:???0706699
2010/06/28(月) 20:57:18ID:???第二引数に配列でない値がとんできたとか・・そういう類の予期し得ないデータです。
>>703
ありがとうございます。その場合PHPのエラーが発生したらfalseが
返ってくるのでしょうか。
ちょっと今試せない環境なので、試せるようになったら
試してみたいと思います。
0707nobodyさん
2010/06/28(月) 20:59:53ID:???0708nobodyさん
2010/06/28(月) 21:22:59ID:???http://www.cocoaliz.com/php/index/14/
0709nobodyさん
2010/06/28(月) 21:24:49ID:???こんな感じの日時をunixtimeに変換する関数みたいなのありますか?
0711709
2010/06/28(月) 21:42:50ID:DMKCG0er0712nobodyさん
2010/06/28(月) 23:37:43ID:???703だけどもしくはset_error_handlerでPHPエラー時に例外投げるようにするという手もある
>>711
みんなには内緒だよ つstrtotime
0715nobodyさん
2010/06/29(火) 00:56:28ID:???>>708は標準関数が例外を吐く例には見えないんだが・・・?
>>706
第二引数に配列でない値、それは予期し得ないデータとは言えませんw
is_array使えばいいだけだろwww馬鹿なの?wwww死ぬの?wwwwww
0718nobodyさん
2010/06/29(火) 07:50:59ID:???0719nobodyさん
2010/06/29(火) 07:53:01ID:???0720nobodyさん
2010/06/29(火) 07:55:11ID:???0721nobodyさん
2010/06/29(火) 12:00:35ID:???何かあったらcatchでつかんでくれるって方が楽だと思うんだけどな・・
PHPにはterminate()も無いんだよね?
0722nobodyさん
2010/06/29(火) 12:56:17ID:???2.sambaのunix charsetのようなファイル名の文字コード等は取得できますか?
$_SERVERにはないようですし。。。
getlocaleは地域の取得で違いましたし。。
なぜ必要か、
1.は便利だから。
2.はファイルアップロード機能の汎用性のあるものを作りたいからです。
ファイル保存時適切に日本語ファイル名のエンコーディングを指定、変換しないと化けちゃうからです。
PHP初心者です。至急宜しくお願いします。昼休みあと5分(涙
0723nobodyさん
2010/06/29(火) 15:34:47ID:???0726nobodyさん
2010/06/29(火) 15:46:22ID:???これがどの行為を指しているかによるな
0727681
2010/06/29(火) 22:09:22ID:DeLVAKxKそれとも動くけど推奨は出来ないということでしょうか?
0728nobodyさん
2010/06/29(火) 22:25:16ID:???> かわりに PCRE 拡張モジュール を使うことが推奨されています。
> この関数をコールすると E_DEPRECATED が発生します。 PCRE への変換についてのヘルプは 相違点の一覧 を参照ください。
消えて無くなることは無いがlinuxはモジュールを選んでいれられるため
今後regexが入ってない環境が出てくる可能性が高いということ
特殊な使い方をしない限りすべてpregで代替可能です
そしてeregより高速に動作します
0729nobodyさん
2010/06/29(火) 22:41:44ID:DeLVAKxKなるほど。
eregをpregに書き換えるスクリプトでも作って書き換えてみます。
0730nobodyさん
2010/06/30(水) 01:40:45ID:???0731nobodyさん
2010/06/30(水) 09:46:55ID:XzF49h+x計算できる数値で00、01
とか2桁で数値を表示させるにはどうすればよいのでしょうか?
0732nobodyさん
2010/06/30(水) 10:11:06ID:???%02d
0733nobodyさん
2010/06/30(水) 10:41:22ID:XzF49h+xなんかうまくいかないんですけど原因がわからないのでお願いします。
$number = "1";
echo printf("%02b",$number);
→ 012
と表示されます。
本当は01としたいのですがどの変がおかしいのでしょうか?
【OS名】winxp sp3 (xampp1.6.4)
【PHPのバージョン】 5.2.4
0734nobodyさん
2010/06/30(水) 10:46:04ID:???printfだけで出力までするからechoは余計。printfは出力した文字数を
値として返す(この場合は"01"で2文字だから2)から、それがechoで
さらに出力されて余計な2も出てる。
0735nobodyさん
2010/06/30(水) 10:48:14ID:???0736nobodyさん
2010/06/30(水) 11:10:33ID:XzF49h+x表示については解決できました。
これを1づつ増やしていくにはどう処理すればいいのでしょうか
$number = '0';
$number =($number + 1);
file_put_contents( "a.txt", "$number" );
テキストに01 02みたいに出力したいんですが
この場合02ではなく 2 で出力されてしまいます
0737nobodyさん
2010/06/30(水) 11:12:13ID:XzF49h+x0738nobodyさん
2010/06/30(水) 11:27:43ID:???http://www.php.net/manual/ja/language.types.string.php#language.types.string.conversion
0740nobodyさん
2010/06/30(水) 14:31:43ID:XzF49h+x>>738
仕様でできないってことなのかな
他の方法考えて見ます(01スタートでなく最初から2桁の11スタートとか
どうもありがとうございました。
0741nobodyさん
2010/06/30(水) 15:00:40ID:???$number = $number + 1;
file_put_contents( "a.txt", sprintf("%02d",$number) );
数値足してくんなら、最初っから数値にしとけよ。
数値にみなせる文字列だったら+1すれば数値に解釈して"01" + 1 ってやれば 2になるけど "02"にはならねーから。
2桁で表示させる方法聞いといてそれなんでつかわねーんだよ。
俺らバカにしてんのか?
分かんなかったら分からんって書けよ。
0743nobodyさん
2010/06/30(水) 19:10:54ID:???優しくしてやれよw
0744nobodyさん
2010/06/30(水) 19:36:55ID:???こんな馬鹿と一緒の職場とか想像すると寒気がするな
0745nobodyさん
2010/06/30(水) 20:19:11ID:QOd5zTpX質問がプログラムのことなのでこちらで質問させていただきます。
$hour = date('H');
if($hour < 12){
$jikan = array(
"時間" => array("AM","午前中"),
"午前" => array("AMです","午前中です"),
"午後" => array("まだAMです","まだ午前中です"),
);
}else{
$jikan = array(
"時間" => array("PM","午後"),
"午前" => array("もうPMです","もう午後です"),
"午後" => array("PMです","午後です"),
);
}
$data = array(
"6月" => array("6月です","JUN"),
"30日" => array("30日です","Thirty"),
"(時間|午前|午後)" => $jikan,
);
このように実装して
「時間、午前、午後」と書き込むと午前か午後によって違う返事を返すが、
「6月、30日」と書き込むと時間に関係なく同じ返事を返すようにしたいと思っていますが、
上記だと、「時間、午前、午後」とif文中の単語で話しかけると、
「Array」という文字列を返してきてしまっています。
まだPHPは初心者のため、すみませんがどこが間違えているのかご教授願えませんでしょうか。
よろしくお願いいたします。
0746nobodyさん
2010/06/30(水) 20:35:59ID:???答えようがないよね?
返事とか書き込むととか、話しかけるとか言われても
他人には分からないことだということは、理解頂きたい。
0747nobodyさん
2010/06/30(水) 21:10:31ID:???これを
"時間" => "午前中",
こうするとどうなるの?
0748745
2010/06/30(水) 21:51:29ID:QOd5zTpXすみません・・・どう説明すればいいのかわからなくて・・・
>>747
そうすると、$jikanの中に"午前中"が入ります。
0749nobodyさん
2010/06/30(水) 22:02:11ID:???じゃあ、話しかけた時の処理にあると予想される、
$jikan[なんとか]
というところを
$jikan[なんとか][0]
こうするとどうなるの?
0750nobodyさん
2010/06/30(水) 23:26:23ID:???おまいさん、まさか出力が「$data」ってオチじゃないだろうな?
あと、出力結果が「Array」ってことは、配列を理解してないんジャマイカ?
「PHP初心者」って言ってるけど、PHP以外はどんなのを理解してんの?
0751nobodyさん
2010/07/01(木) 02:22:42ID:???0752nobodyさん
2010/07/01(木) 13:38:55ID:???0753nobodyさん
2010/07/01(木) 22:35:32ID:BxoJrqT8ありますか。
0754nobodyさん
2010/07/01(木) 22:36:53ID:HAlm0epVview.php?a=index
としているサイトがあり、a=で各ページを指定して
テンプレートを読み込んでいると思います。
MVC的にこうする方が管理しやすいらしいのですが、
index.phpやentry.phpにする場合と比べて、メリットがよくわかりません。
なぜURLパラメータでテンプレート指定するのでしょうか?
0755nobodyさん
2010/07/01(木) 22:54:15ID:???それでもわからんならまたこい
0756nobodyさん
2010/07/01(木) 23:10:32ID:BxoJrqT8ユーザーサイドはJavascriptなんだ。
統一したほうがわかりやすいが。
0757nobodyさん
2010/07/02(金) 00:18:35ID:???0758nobodyさん
2010/07/02(金) 05:12:45ID:AwwkgWaDデータベースとか単独で動かない機能はけずっていい。
0759nobodyさん
2010/07/02(金) 07:42:33ID:???0760nobodyさん
2010/07/02(金) 13:10:04ID:???基本的なとこの記述くらいは統一してほしいな。
JSで変数名に$付けて叱られたことが何度あったことか。
0761nobodyさん
2010/07/02(金) 13:19:17ID:???0764nobodyさん
2010/07/02(金) 15:15:32ID:VD/AbeYDすみません、知恵袋なんですがおしえてください
全然わからないです・・
0765nobodyさん
2010/07/02(金) 15:37:06ID:???0766nobodyさん
2010/07/02(金) 16:14:02ID:tc4YOvkcお問い合わせフォームのような機能がある場合
Model:DBへの追加やメール送信処理を行う(/model/contact.php)
View:お問い合わせフォームのテンプレートを選択(/template/contact.tpl)
Controller:どのファイルを操作するか指定。上記の例なら「contact」
そして結果を受け取って出力
と言う考えで正しいでしょうか?
そして、ControllerにModelの内容書いた方が早い気もするのですが、
それはやっぱり駄目なのでしょうか?
0767nobodyさん
2010/07/02(金) 16:22:42ID:???例えば半年放置して再開したときその真価が分かる
0768nobodyさん
2010/07/02(金) 16:45:38ID:VD/AbeYD解決しました!
ありがとう
0769nobodyさん
2010/07/02(金) 17:23:24ID:???0770nobodyさん
2010/07/02(金) 17:25:56ID:???0771766
2010/07/02(金) 18:06:49ID:tc4YOvkc自分が作っているシステムでは、Controllerが肥大化する事はないので
Modelと分けなくても良いのではないか?と思っています。
ただ、コーディングを向上させたいので、MVCを勉強して
どういう分け方をすればいいか学んでいます。
オープンソースのOpenPNEとかEC CUBEとか見てますが、
classファイルが複雑化されていて、元を辿るのに一苦労です。
コーディング的にはそれが正しいのかも知れませんが。
0772nobodyさん
2010/07/02(金) 19:36:02ID:???疎結合とか単純化とか後で楽するため的な無駄な作業だからなw
考えを保守とかバグ対応とかに向けたら少し分かるかも。
0773nobodyさん
2010/07/02(金) 20:15:37ID:???0774nobodyさん
2010/07/02(金) 20:25:22ID:???0775nobodyさん
2010/07/02(金) 20:54:48ID:asARGkCPNon Thread SafeとThread Safeの違いが判りません。
これらはどういった機能で、どちらを使えばいいんでしょうか?
0776775
2010/07/02(金) 21:14:48ID:gGj5zy9Z0777nobodyさん
2010/07/03(土) 18:25:21ID:84+K0MiSすみません。質問なんですがこれわかるかたいませんか?
76行目は最後の行なんですが、なにが問題なのかがわかりません・・
0778nobodyさん
2010/07/03(土) 18:39:53ID:???0779nobodyさん
2010/07/03(土) 20:06:53ID:84+K0MiSおおできた!w
ありがとう!
0780nobodyさん
2010/07/04(日) 02:22:50ID:lkrZPMsoすいませんこれってどういうことですが?質問自体バカで申し訳ない
0781nobodyさん
2010/07/04(日) 02:37:21ID:???http://jp.php.net/manual/ja/index.php
0782nobodyさん
2010/07/04(日) 03:25:39ID:???すみません。質問なんですがこの方が誰か分かる方いませんか?
0783nobodyさん
2010/07/04(日) 03:35:25ID:lkrZPMso非常にありがたいのですが、できればヒントをいただけると幸いです。
0784nobodyさん
2010/07/04(日) 04:12:47ID:???おまいさんはこっち
ttp://set.bbspink.com/test/read.cgi/avideo/1274977885/
ネタかも知れんが2chでの質問者は大概「age」だぞ
0785nobodyさん
2010/07/04(日) 09:39:50ID:???サンクス
0786nobodyさん
2010/07/04(日) 10:38:00ID:fEOSEN4h良い質問は良い回答から。
「これってどういうことですか?」と言う質問は漠然としすぎて、
質問になっていない。
答える方も困るんだよ。
「やかんってなんですか?」って聞かれて
「金属です。」「お湯を注ぐものです」「お湯をわかすものです」
たくさん答えができてしまうだろ。
「やかんってどういう物質でできているんですか?」
という具体的な文章で質問しなさい。
中学生2年女子より。
0787nobodyさん
2010/07/04(日) 11:12:10ID:???0788nobodyさん
2010/07/04(日) 12:38:39ID:???質問の仕方もそうだけど、回答する側もある程度質問者の
意図するところを汲み取るようにしないと。相手は分からないんだから。
エスパー出来ない奴は答えるべきじゃないよ。
0789nobodyさん
2010/07/04(日) 13:34:13ID:???国語のテストかよ
0791nobodyさん
2010/07/04(日) 13:57:27ID:???俺ならこう答えるよ
「定数にする事で、共通ディレクトリや設定値を入れて
各ファイルで呼び出すが出来るから。」
0793nobodyさん
2010/07/04(日) 16:02:43ID:???ちなみに . 足し算ってなんの言語由来?
0794nobodyさん
2010/07/04(日) 17:06:01ID:/aajFMKwすみません、このifの条件文なんですが、どういうことなんでしょうか?;
変数がセットされていることと、もうひとつの条件がよくわからないです・・
0795nobodyさん
2010/07/04(日) 17:24:09ID:???0796nobodyさん
2010/07/04(日) 17:28:16ID:???0797nobodyさん
2010/07/04(日) 18:07:51ID:???じゃ駄目?
0798nobodyさん
2010/07/04(日) 18:54:41ID:/aajFMKw$_POST["title"]がtrueってどういうことを意味するのですか?
0799nobodyさん
2010/07/04(日) 18:59:52ID:???http://php.net/manual/ja/types.comparisons.php
ほい
0800nobodyさん
2010/07/04(日) 19:35:11ID:/aajFMKw注意: $xが定義されていない状態で単に if ($x)としてしまうと
E_NOTICE レベルのエラーが発行てしまいます。
代わりに、empty()や isset()を使うかあるいは変数を初期化するようにしてください
このことですか?
いまいちわからないです;
0801nobodyさん
2010/07/04(日) 19:56:27ID:???って判断したい場合、$_POST["title"]が未定義の場合もtrueと判断される。
それを防ぐため定義チェック(isset)を追加したりする。
んで>>794の場合は条件的にissetは必要ないのだけど、クセかなんかで
issetを付けちゃってるだけだと思う。
0802nobodyさん
2010/07/04(日) 20:28:54ID:???で、issetでチェックしてあれば、ショートサーキットで後ろの評価しないんで・・・
0803nobodyさん
2010/07/04(日) 21:59:15ID:lkrZPMsoすいませんが、定数の定義付けってdefine("定数名","定数の値") でなくとも
できるのでしょうか?
どうしてこういう書き方をしているのかご教授お願いいたします。
0804nobodyさん
2010/07/04(日) 23:07:11ID:???0805nobodyさん
2010/07/05(月) 01:21:12ID:kve1q94Kclass Main extends Sub
{
public function __construct()
{
echo $this->test;
}
}
abstract class Sub
{
public function __construct()
{
$this->test = 1;
}
}
$ob = new Main;
というコードを書いたのですが、何も出力されません。
イメージ的には継承されたSubの値がMainに反映されて
結果が表示されると思ったのですが、継承元でconstructは無理なのでしょうか?
0806nobodyさん
2010/07/05(月) 02:01:53ID:???子クラスでコンストラクタを定義した場合は
明示的に parent::__construct() で呼ぶ必要がある
0808nobodyさん
2010/07/05(月) 05:10:09ID:???0809nobodyさん
2010/07/05(月) 05:13:11ID:???揚げ足で悪いが未入力じゃないというのは語弊がある
正しくは存在し且つNULL以外で初期化されている変数だと思う
0811nobodyさん
2010/07/05(月) 12:23:16ID:???0812nobodyさん
2010/07/05(月) 12:54:33ID:???==による緩やかな比較の欄どぞ
http://php.net/manual/ja/types.comparisons.php
0813nobodyさん
2010/07/05(月) 13:26:37ID:E/YNQXWp}
else {
echo "titleが未入力ですよ";
}
未入力チェックってこういうことだと思うんだけど、
"0"の場合に未入力と判定されちゃわない?
質問になってしまったのでID出し。
0814nobodyさん
2010/07/05(月) 14:01:03ID:???0815nobodyさん
2010/07/05(月) 14:36:41ID:???0816nobodyさん
2010/07/05(月) 15:00:30ID:???0817nobodyさん
2010/07/05(月) 15:06:22ID:???される
それをやりたいなら
if(isset($_POST["title"]) && $_POST["title"] != "") {
}
とするべき
0818nobodyさん
2010/07/05(月) 15:06:31ID:???もよく見るけど、あれと == "" とは違うの?
0820nobodyさん
2010/07/05(月) 15:13:38ID:???0821nobodyさん
2010/07/05(月) 15:15:29ID:???is_nullをいつも使っているんだが
0822nobodyさん
2010/07/05(月) 15:18:34ID:???!== とか === 使えって。
== NULL って、 false でも 0でも 空の配列でも "" でも 通るぞ。
0823nobodyさん
2010/07/05(月) 15:25:57ID:???0824nobodyさん
2010/07/05(月) 16:03:47ID:???0825nobodyさん
2010/07/05(月) 16:08:53ID:???0826nobodyさん
2010/07/05(月) 16:33:32ID:???0827nobodyさん
2010/07/05(月) 16:36:38ID:???0828nobodyさん
2010/07/05(月) 16:38:39ID:???0829nobodyさん
2010/07/05(月) 16:42:07ID:???0830794
2010/07/05(月) 17:07:39ID:XGgM750L$_POST["title"]がtrueを返すときの条件が比較表?みてもわからない;
http://www.phppro.jp/school/phpschool/vol13/2
今このスケジュール表のプログラミングしてるんですが、このページの下のほうにある
<dl>
<dt><label for="schedule-title" id="label-title">タイトル
</label></dt>
<dd><input type="text" name="title" id="schedule-title"
value="<?php print(htmlspecialchars($_POST["title"],
ENT_QUOTES)); ?>" /></dd>
<dt><label for="schedule-body" id="labe-body">内容</label></dt>
<dd><textarea name="body" id="schedule-body">
<?php print(htmlspecialchars($_POST["body"], ENT_QUOTES)); ?>
</textarea>
</dd>
</dl>
これは正しいのですか?
何回試してもエラーが出てしまいます。
Undefined index: title in <b>C:\Apache2.2\htdocs\schedule_edit.php</b>
on line <b>121</b><br />
<br />
<b>Notice</b>: Undefined index: body in <b>C:\Apache2.2\htdocs
\schedule_edit.php</b> on line <b>125</b><br />
0831nobodyさん
2010/07/05(月) 17:23:48ID:???Undefined index: となってるから
$_POST["title"]と$_POST["body"]を空で送信(submit)してるでしょ
空で送信されたら未定義になる。
未定義なのにprintさせようとしてるからNoticeがでてる。
正しくはissetなどで確認してから・・・となるんだろうけど
この場合のNoticeは無視しちゃう所多いよ
0832nobodyさん
2010/07/05(月) 17:39:17ID:???http://www.php.net/manual/ja/language.types.boolean.php#language.types.boolean.casting
あとphpproの講座は使えないから他の本で勉強する事をお勧めする
0833nobodyさん
2010/07/05(月) 17:41:56ID:qHUIRNCb0834nobodyさん
2010/07/05(月) 17:48:04ID:???0835nobodyさん
2010/07/05(月) 18:26:03ID:E/YNQXWpformで送られるデータって文字列として取得されることが保障されてるんだっけ?
それなら !== ""でよさそうだけど。
>>830
phpの内容がわからないのでどこが121行目かちょっとわからんとです。
0837nobodyさん
2010/07/05(月) 21:59:14ID:???0839nobodyさん
2010/07/05(月) 22:17:23ID:???所詮はただの配列なんだからちょこっとコード書いてみりゃ分かるだろ。
0840nobodyさん
2010/07/05(月) 22:22:52ID:???これだけでおk、
0841nobodyさん
2010/07/05(月) 22:23:16ID:???0842nobodyさん
2010/07/05(月) 22:37:01ID:???0845nobodyさん
2010/07/05(月) 23:26:29ID:???保障されているってことでいいのかしら。
ラジオボタンとかでvalue=1とかしてても勝手にint変換されたりしない、でおk?
0846nobodyさん
2010/07/05(月) 23:34:50ID:???0847nobodyさん
2010/07/05(月) 23:49:49ID:???0849nobodyさん
2010/07/05(月) 23:56:22ID:???0850nobodyさん
2010/07/06(火) 00:49:38ID:???文字列か配列かのどちらかになる可能性がある
コードゴルフならともかく初心者に>>840を教えてるのが居たら袋叩きにしていいぞ
0851nobodyさん
2010/07/06(火) 01:07:54ID:???第三者が見てわかりやすい記述を心がけようぜ。
0852nobodyさん
2010/07/06(火) 01:42:19ID:???Cのコードゴルフじゃあるまいし全然原型とどめてるじゃん。
0853nobodyさん
2010/07/06(火) 02:24:13ID:???application/x-www-form-urlencoded の title[0]=0 を受け入れるが意図した挙動じゃないだろ?
入力値を信用したコードの時点で使いものにならない
0854nobodyさん
2010/07/06(火) 02:57:17ID:???0855nobodyさん
2010/07/06(火) 08:57:03ID:???name属性がない場合 null
name属性があって入力がない場合 ""
よって
if( isset($_POST['hogehoge'] ) && $_POST['hogehoge'] !== "")
{
}
じゃねーのかい!
0856nobodyさん
2010/07/06(火) 10:38:17ID:???0857nobodyさん
2010/07/06(火) 11:22:03ID:1Cm5WNj+http://(ドメイン)/(コントローラー)/(アクション)
という形になっているのを見かけます。
例)掲示板に投稿
http://hoge.com/bbs/entry
それで思ったのですが、アクション(メソッド)が指定されているURLに
直アクセスされた場合、どうするのでしょうか?
POSTのデータが送られてきたか否かで判断して、直アクセスの場合は
元のページにリダイレクトする、とかそう言う事をしているのでしょうか?
アクションを直接GETとしてURLに含めるのは、セキュリティ的に疑問です。
0858nobodyさん
2010/07/06(火) 11:32:45ID:???0859nobodyさん
2010/07/06(火) 11:39:40ID:???0860857
2010/07/06(火) 12:07:00ID:1Cm5WNj+GETだとフォームを介さなくてもアクセスできるから
POSTより緩いと思うんですよね
>>859
857に書いたようなURLがformのactionにしていされていたら
検索エンジンのクローラーに取得される可能性があります。
そうなると、セキュリティ的にまずいと思うんですよ。
0861nobodyさん
2010/07/06(火) 12:18:29ID:???0862nobodyさん
2010/07/06(火) 12:25:44ID:???あっさり解決するから。
0863857
2010/07/06(火) 13:34:39ID:???0865nobodyさん
2010/07/06(火) 21:14:40ID:???0866nobodyさん
2010/07/07(水) 00:12:26ID:???0867nobodyさん
2010/07/07(水) 00:32:00ID:???0868nobodyさん
2010/07/08(木) 08:59:00ID:Tsw8WKYJ【質問内容】
PHP で文字列を組み上げるのに、Ruby でいうところの #{} 的な
インラインテンプレートみたいなのってないでしょうか?
sprintf と + で処理の実現自体は可能なんですが、なんかごちゃごちゃしてしまうので
もうちょっとエレガントな記法ってないのかなと思って質問する次第です。
よろしくお願いします。
0869nobodyさん
2010/07/08(木) 09:53:28ID:???0870868
2010/07/08(木) 10:05:54ID:???ただ、それだけのために Smarty 組み込んだところで、余計可読性下げそうでちょっと勘弁。
ありがとうございました。
0871nobodyさん
2010/07/08(木) 10:51:51ID:???まあ、自分でテンプレート処理書いちまえばいいんだと思うけど。
実際は "This is a {$pen}";ですむんじゃねーの?
0872868
2010/07/08(木) 11:04:41ID:???単純に "{$var}" で展開されたのね・・・万事解決です、本当にありがとうございました。
ってかくと感謝してなさそうに見えて不思議ですが、ほんとに助かりました。ありがとう。
0873nobodyさん
2010/07/08(木) 11:07:30ID:???0874868
2010/07/08(木) 11:31:52ID:???0875nobodyさん
2010/07/08(木) 18:18:32ID:???アクセス規制用に以下の部分を別ファイルにしたいのです。
deny from 192.168.0.11
deny from 192.168.0.12
deny from 192.168.0.13
deny from 192.168.0.14
みたいな感じで。
httpd.confを触れるなら include ファイルパス
で、できるのですが。。。。
.htaccessではできないんどえしょうか?
0876nobodyさん
2010/07/08(木) 18:22:36ID:???0878nobodyさん
2010/07/08(木) 22:38:14ID:lGIUgqylDB名を、配列に取得して、プルダウンメニューで選択するようにしたいのですが
ボックスに表示する部分なのですが
mysql_list_dbsを使ってmysql_fetch_arrayでいけますか?
0879nobodyさん
2010/07/09(金) 03:37:15ID:xzt7gYmYユーザー定義関数内でデータベースを扱う場合、
各関数内に
//MySQLに接続
$con=mysql_connect(DB_SERVER, DB_USER, DB_PASS);
//データベース選択
mysql_select_db(DB_NAME,$con);
として一々データベースに接続しているのですが、
パフォーマンスは悪くならないのでしょうか?
みなさんがどうしてるか知りたいのです。
もし一々接続しなくてもいける方法、
もっとパフォーマンスが良くなる方法などがあればご教授ください。
0880nobodyさん
2010/07/09(金) 04:23:31ID:???0882nobodyさん
2010/07/09(金) 17:23:12ID:7d5uHpFB0883nobodyさん
2010/07/09(金) 17:29:30ID:???http://php.net/manual/ja/language.oop5.interfaces.php
0885nobodyさん
2010/07/09(金) 21:53:07ID:???同じ引数で接続する場合は既存の接続を再利用してくれるが
USE `database` を毎回発行するのは無駄なので、
リソースをどこかにプールしておくべき
function get_connection() {
static $c;
if (!$c) {
$c = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
mysql_select_db(DB_NAME,$con);
}
return $c;
}
0886名無しさん@そうだ選挙に行こう
2010/07/10(土) 04:56:21ID:WdQ5SbfS外部へのコネクションが極端に時間がかかるのです。
普通のテキストを読み込むだけで10〜20秒程度要します。
厳密には関係ないかもですが、ネットワーク帯域自体は細いわけではなくサイトは瞬時に表示されます。
ただのこの外部へのコネクション時は非常に時間がかかるんです。
PearのHTTP_Clientを使って接続しているのですが、何か情ありませんでしょうか?
0887名無しさん@そうだ選挙に行こう
2010/07/10(土) 04:58:08ID:WdQ5SbfSPHPは5.1,6です。
0888名無しさん@そうだ選挙に行こう
2010/07/10(土) 05:37:00ID:4d57FSnB$fruit = array("Apple" => "りんご", "Orange" => "みかん",
"Grape" => "ぶどう");
で例えばAppleの中にある文字が本当にりんごだった場合のみ
処理を続行するようなことってできますか?
もしAppleに「みかん」が入っていたら処理を中断するような感じにしたいんですけど
0889名無しさん@そうだ選挙に行こう
2010/07/10(土) 06:07:03ID:WdQ5SbfSif ($fruit['Apple'] === 'りんご') {
echo 'Appleはりんごだよー';
}
else {
echo '中断するよ';
}
887です。
原因はDNS周りにありそうです。汚しましてすいませんでした。
0890名無しさん@そうだ選挙に行こう
2010/07/10(土) 12:37:46ID:2QvhDB/50891名無しさん@そうだ選挙に行こう
2010/07/10(土) 12:41:51ID:2QvhDB/50ch PHP
http://script.s16.xrea.com/2ch/php/
Sch BBS
http://www.sanadake.info/sch/bbs/
0ch BBS
http://0ch.mine.nu/
0892名無しさん@そうだ選挙に行こう
2010/07/10(土) 14:58:38ID:g8ZkkqTi調べるにはどうすればいいのでしょうか?
$text = 'testName';
$type = 'Name';
if (strstr($text, $type)) {
echo $text."に".$type ."は含まれています";
}
とするれば一応出来るのですが、「末尾が$typeである」
という条件を加えたいと思います。やり方を教えてください。
0893名無しさん@そうだ選挙に行こう
2010/07/10(土) 15:01:24ID:2QvhDB/5PHP5とかからだと、文字列の後方検索に対応していたはずだけど。
多くで動くようにするなら、正規表現。
0894名無しさん@そうだ選挙に行こう
2010/07/10(土) 15:10:36ID:g8ZkkqTiif(preg_match("/(.*)+" . $type . "$/", $text, $array)){
echo $text."に".$type ."は含まれています";
}
0895名無しさん@そうだ選挙に行こう
2010/07/10(土) 15:15:33ID:2QvhDB/50896名無しさん@そうだ選挙に行こう
2010/07/10(土) 15:21:46ID:g8ZkkqTiもし別の条件で通ったり通らなかったり無いか自信が無くて・・・
とりあえずこれでいきます。
0897名無しさん@そうだ選挙に行こう
2010/07/10(土) 16:01:10ID:???if( substr( $text, 0-strlen($type)) === $type )
0898794
2010/07/10(土) 17:45:08ID:9rtjPRpZ0899名無しさん@そうだ選挙に行こう
2010/07/10(土) 17:57:03ID:???$title .= "test";
echo $title; //bakatest
0900794
2010/07/10(土) 18:18:52ID:9rtjPRpZ0901名無しさん@そうだ選挙に行こう
2010/07/10(土) 22:32:13ID:0jjmMoFCちなみにPHPのネストの上限ってあります?
後者が内部的にはネスト扱いとなるなら、関係あるのかなーと思って。
0902名無しさん@そうだ選挙に行こう
2010/07/10(土) 23:11:38ID:o7F/R3R50903901
2010/07/10(土) 23:44:49ID:0jjmMoFCなるほど〜。どうもです。
インタプリタ的には前者を使った方が優しいかな。
0904名無しさん@そうだ選挙に行こう
2010/07/11(日) 01:19:52ID:C1oKqEx50905名無しさん@そうだ選挙に行こう
2010/07/11(日) 02:54:27ID:???function is_class_extended($base) {
foreach (get_declared_classes() as $super) {
$class = new ReflectionClass($super);
while ($class = $class->getParentClass()) {
if ($class->getName() === $base) {
return true;
}
}
}
return false;
}
echo 'Exception is extended? ', var_export(is_class_extended('Exception'), true), PHP_EOL;
echo 'stdClass is extended? ', var_export(is_class_extended('stdClass'), true), PHP_EOL;
0906名無しさん@そうだ選挙に行こう
2010/07/11(日) 08:03:31ID:???0907名無しさん@そうだ選挙に行こう
2010/07/11(日) 11:42:10ID:???0908名無しさん@そうだ選挙に行こう
2010/07/11(日) 19:08:50ID:aH0kYx2z./aaaディレクトリ内においてディレクトリ名がbbb/
さらにその中のccc/までたどり着くには
どういった記述がよろしいのでしょうか
0909nobodyさん
2010/07/12(月) 10:44:20ID:???0910nobodyさん
2010/07/12(月) 18:29:55ID:2AUEyQFR正規表現で投票してみればいいさ。
0911nobodyさん
2010/07/12(月) 20:09:58ID:o18xCfm1$res = mysql_query($sql);
while($row = mysql_fetch_array($res,MYSQL_ASSOC)){
print_r($row);
}
とした時に、nameの部分が被って配列に代入されます。
フィールド名の指定を「user.name, category.name AS cate_name」
みたいに変更する以外に方法はないのでしょうか?
0912nobodyさん
2010/07/12(月) 21:29:01ID:r9oprwp5結局bind時に変数名がかぶるから、asった方がいいと思う。
0913nobodyさん
2010/07/12(月) 23:47:53ID:???その実装方法は地雷だからやめた方がいい。
「必要なメソッドが実装されているか」だけを検査すべき。
スマートにやるならインターフェイスを使う。
0914nobodyさん
2010/07/13(火) 00:07:54ID:???クラスが継承されている場合、継承元のクラスファイルを読み込む
ような仕様がしたいのですが、これも地雷になるのでしょうか?
0915nobodyさん
2010/07/13(火) 00:43:05ID:lEQMzPMj0916nobodyさん
2010/07/13(火) 00:51:22ID:???0917nobodyさん
2010/07/13(火) 01:02:31ID:???その場合、親クラスは絶対に読み込み済。だから読み込む必要などない。
やってみればすぐ分かるが、親クラスを読み込んでいない状態で子クラスは宣言できない。
0918nobodyさん
2010/07/13(火) 03:29:43ID:???クラス定義する時にどのファイルが必要か判ってるんだから
require_once 基底クラス を書いておくか、
オートローディングを使うのが定石
http://www.php.net/manual/ja/language.oop5.autoload.php
A.php
<?php class A {}
B.php
<?php require_once 'A.php'; class B extends A {}
C.php
<?php require_once 'B.php'; new B();
0919904
2010/07/13(火) 10:11:14ID:???ありがとうございます。
クラス定義する時、どのファイルが必要か分からないようにしたいんです。
フレームワークのように、柔軟に作ったファイルが読み込まれるような。
オートローディングは使っているのですが、
PHP4に対応させたい場合、どうすればいいかと思いまして。
また、918さんのような書き方もB.phpを各ファイルに書かなくてはいけず、
効率が悪いと思います。
0920nobodyさん
2010/07/13(火) 10:26:14ID:???俺も困ったけど諦めた。
0921nobodyさん
2010/07/13(火) 10:32:32ID:???0922904
2010/07/13(火) 10:35:05ID:???捨てても良いかもしれませんね。Class定義しにくいし。
オートローディングでやります。
0923nobodyさん
2010/07/13(火) 20:22:51ID:hmJ3ix43xmlのエレメントを再帰的に配列に格納したいと思いますが、
いい案が思い浮かびません。
xsltのように捜索してテンプレートにマッチさせ値を取得できればと思っています。
xpathを利用しても、取り出す要素は固定化してるし。
何かいい方法はありませんでしょうか。
0924nobodyさん
2010/07/13(火) 20:51:27ID:???$array = Zend_Json::decode(Zend_Json::fromXml($xml, true));
0925923
2010/07/13(火) 22:32:14ID:hmJ3ix43さすがに、アトリビュートも取得する方法はありませんでしょうか。
一応取得時にarrayでなく、objectも指定しましたがアトリビュートの値までは
取得できませんでした。
0926nobodyさん
2010/07/13(火) 23:06:59ID:???0927923
2010/07/14(水) 01:19:28ID:ez+KFUZ4ありがとうございました。
0928nobodyさん
2010/07/14(水) 08:49:45ID:XR87xhsM$b = '$a = "あいうえお"';
var_dump($b);
$aの変数を取り出す方法はありませんでしょうか。
0929nobodyさん
2010/07/14(水) 09:37:02ID:???$b = $a.'="あいうえお"';
じゃないのか?
シングルクォートで囲んでたら文字列扱いされるよ
0930nobodyさん
2010/07/14(水) 09:42:02ID:XR87xhsM0932nobodyさん
2010/07/14(水) 10:00:23ID:XR87xhsMjavascriptみたいですね。
0934nobodyさん
2010/07/14(水) 10:58:15ID:XR87xhsM単純にevalで評価するところとか。
0936nobodyさん
2010/07/14(水) 16:43:45ID:oe5o0zrzテーブルごとのキャッシュを消すためになんかいい方法ないでしょうか?
今のところSQL文を別テーブルに保存してそれを消すときに取り出してひたすらforeachしようかと思っているのですが。
0937nobodyさん
2010/07/14(水) 17:54:19ID:???■Ktai Library for cakephp 勉強会@関東
URL: http://atnd.org/events/6209
日時: 2010/07/17 11:00 to 15:00
場所: マイ・スペース&ビジネスブース池袋西武横店
参加条件: Masa-Pさんの本「PHPで作る携帯サイト デベロッパーズガイド」を持参、かつ4章までを自力である程度実装できている、もしくは出来る方
■OpenPNE3で学ぶsymfony勉強会
URL: http://atnd.org/events/6255
日時: 2010/07/24 15:00 to 17:00
場所: 手嶋屋新宿御苑オフィス
内容: この勉強会は毎回OpenPNE3の各機能、仕様にフォーカスを当て、ベースフレームワークであるsymfonyを理解していく勉強会です。
参加者はみんなsymfonyに興味のあるプログラマです。Webエンジニアとのネットワークづくりにもお役立てください。
■Python4PHPer 第7回講習会
URL: http://atnd.org/events/6344
日時: 2010/08/12 10:00 to 22:00
場所: 国立オリンピック記念青少年総合センター
内容: Python未経験者向けの、PythonとGoogle App Engine (GAE) の入門講座です。
■第11回 LOCAL PHP部勉強会
URL: http://atnd.org/events/6443
日時: 2010/08/28 14:00 to 16:30
場所: 札幌市産業振興センター セミナールーム9
0938nobodyさん
2010/07/14(水) 17:56:29ID:???0939nobodyさん
2010/07/14(水) 18:16:54ID:???0940nobodyさん
2010/07/14(水) 19:12:50ID:???0941nobodyさん
2010/07/14(水) 19:14:08ID:???0942nobodyさん
2010/07/14(水) 19:14:13ID:???0943nobodyさん
2010/07/14(水) 20:31:35ID:???0944nobodyさん
2010/07/15(木) 23:59:02ID:???分かってんなら書き込むな氏ね
0945nobodyさん
2010/07/16(金) 13:45:22ID:???0946nobodyさん
2010/07/16(金) 14:04:06ID:???0947nobodyさん
2010/07/16(金) 15:29:50ID:SH5lEMBU固定表示した投稿をページのようにまっさらな状態にしたいのですが。
0948nobodyさん
2010/07/16(金) 15:41:32ID:???index.phpに、以下の方法で該当部分のコードを囲んで出来ました。
これを機にPHPの勉強をしたいと思います。お騒がせしました。
<?php if (is_sticky()) {?>
<?php } else{ ?>
該当部分のコード
<?php } ?>
0949nobodyさん
2010/07/17(土) 04:00:38ID:thvaY0IW画像をアップロードする時にリサイズしようと思っているのですが
リサイズ後の画像が真っ暗です
どこが悪いのでしょうか?
$src = @imagecreatefromjpeg($move_file);
$dst = imagecreatetruecolor($new_width,$new_high);
imagecopyresampled($dst,$src,0,0,0,0,$new_width,$new_high,$file_width,$file_high);
imagejpeg($dst,"./test.jpg");
0950nobodyさん
2010/07/17(土) 04:11:39ID:???0951nobodyさん
2010/07/17(土) 12:57:59ID:???0952nobodyさん
2010/07/17(土) 21:59:34ID:z9LmUGB3もし出来るのであればWindows、Linux共に方法を知りたいです
例えば友人のパソコンにWebサイトなどを作ってやってApache下に置いたとしても、友人がそのソースコードを真似て他に配布したりというのを避けたいのです
Linuxであればパーミッションでと思ったのですが、相手のパソコンなので、普通にroot権限だとパーミッションなんか関係なくなるので意味が無いなと思いまして
どうしたらいいのでしょうか?
0953nobodyさん
2010/07/17(土) 22:28:43ID:???0954nobodyさん
2010/07/17(土) 22:34:13ID:???0955nobodyさん
2010/07/18(日) 00:01:33ID:???0956nobodyさん
2010/07/18(日) 12:13:05ID:MZPafWAG0957952
2010/07/18(日) 13:21:53ID:???友人のパソコンを使うのではなく、自分で開発したものをフォルダ内に入れるということです
OSは相手はWindowsXPとか7のHome版です
自分はCentOS使ってますけど
難読化以外には何か対策は無いのでしょうか?
例えば何かソフトでそのフォルダへのアクセスをガードできたとしても、ブラウザ上で実行が出来なければ意味が無いですし
皆さんは商用の場合はどのような対策をされているのでしょうか?
そのままシステムを丸々他にコピーされても困ると思うのですが
例えcopyrightを書いていたとしてもさほど関係なさそうですし
0958nobodyさん
2010/07/18(日) 13:34:46ID:???なんでそれが友人なの?最初から隠さず商用と書けば良いのに。
商用なら色々方法あるし。
0959nobodyさん
2010/07/18(日) 13:42:03ID:???最近は「オープンソースにする」という裏技もあるが。
友人と契約なんてできない?そもそも人のコードを勝手に盗む、あるいは盗むかもしれないと疑わないといけないような奴は友人ではない。
0960952
2010/07/18(日) 13:57:38ID:???まぁ友人に頼まれてって感じなのですが、個人で使うならいいのですが、おそらく他人のパソコンにも入れるだろうなと思いまして
例えばWindowsのダウンロード→インストールするタイプのフリー版以外のソフト(詳しく知りませんがCだかVisual C++なんかで作られたものなど)は簡単には他のパソコンには入れられませんが、
PHP何かで作ったものはApache下に置いたフォルダさえあれば言い訳で、どう対処するんだろうと疑問に思いまして
自分は自分の為だけにしか作ったことが無いもので、そういった場合どうするんだろうと思いまして
>商用なら色々方法あるし
具体的にはどのような対処法があるのでしょうか?
もし宜しければ教えていただきたいです
>>959
ライセンス契約ですか
確かにそれが一番だと思います
ただ、興味本位で聞かせていただきたいのですが、その場合中にはそういうのを無視して配布するような人もいて、こちらがそういう相手を認識できないこともあると思いますが、
そういう場合はどのようにするのがいいのでしょうか?
よく考えてみて、こういう問題ってPHPは難しいな、と思いまして
0961nobodyさん
2010/07/18(日) 15:18:50ID:???0962952
2010/07/18(日) 16:47:37ID:???確かにそのような事も考えたのですが、アプリケーションによってはlocalhost/のようにネットに繋がなくても使えるものもありまして
特にDBを動かすようなものは
そこで振り返ってみて、PHPでそういう話題とか記事を見聞きしたことが無いな、と思いまして質問させてもらいました
そういう場合に自分ではどうにも対策が分かりませんでした
0963nobodyさん
2010/07/18(日) 17:21:45ID:???0964nobodyさん
2010/07/18(日) 18:42:48ID:VLBtU4j9それはその人を信頼するしかないんじゃないの?
もしくは自分で自宅サーバーを作ってその友達しか入れないように
するとか。
後はライセンスだな。でもこっそりほかの人に配布したら
意味ないし、つーかPHPは難しいなというよりあんたが難しい。
後別にlocalhostでの起動ならphpでなくてもよかったんじゃないの?
0965nobodyさん
2010/07/18(日) 20:06:43ID:WiuHCw18ぐぐって$_SERVER ['REQUEST_URI']とか試しましたがドメイン部分が取れません。
他にも色々試しましたがドメイン部分移行の/の後しか取れません。
PHP5.2.11でCentOS、Apache2.2です。
0966nobodyさん
2010/07/19(月) 00:05:30ID:???0967nobodyさん
2010/07/19(月) 08:29:41ID:???システム屋なんかはシステム入りのサーバーを丸ごと貸し出して
内部には入らせないようにするとこもあるらしいけど。
あくまで使用のみの権限にして。まあWEBAPIみたいなもんだけど。
難読化は解読が難しくなるだけで、ブラウザ上でも実行可能だけど。
実は以前これで揉めた事があるので、良い対策方法を俺も知りたい。
0968nobodyさん
2010/07/19(月) 11:10:14ID:???0969nobodyさん
2010/07/19(月) 11:26:37ID:???0970nobodyさん
2010/07/19(月) 13:52:04ID:???PHPはこの点は難しいよね。
ちょっとPHP知ってる人がいればすぐに真似されたり転用され得るから。
例えばVC++で作られている(と思われる)ソフトなんかは例えばテキストエディタで開いても文字化けしてたりして、詳しくない人はビビってそれ以上やらないだろうけど。
難読化はただ相手に転用される時に判別付きにくくする程度の気休めだろうけどね。
>>969
自分はC++はやったこと無いんだけど、C++に変換とか出来るの?
またそういうので対策になるの?
0971nobodyさん
2010/07/19(月) 16:14:03ID:2i1rbnSf0972nobodyさん
2010/07/19(月) 16:30:35ID:???<?php
while ($row1 = mysql_fetch_array($res1)) {
print "<tr>\n";
print "<td><b><a href=./e=&view_id=".$row1["s_name"].">" . $row1["s_name"]."</a></b></td>\n";
print "</tr>\n";
}
?>
<td>を<td align="center">とか余分なタグを入れるとエラーがでます。
<table>も同じくです。printするだけなのに、どうしてエラーになるのでしょう?
0973nobodyさん
2010/07/19(月) 16:37:57ID:???0974nobodyさん
2010/07/19(月) 17:51:26ID:sHIUCWJERSSサイトURLをひとつだけ設定し、記事表示件数を5としました。
すると表示される一番最初の記事だけが表示され
あとの四行が全て(1970/01/01)と表示されてしまいます。
これは何がいけないのでしょうか?
0975sage
2010/07/19(月) 17:53:10ID:Ug5vBszxシングルクォート使っちゃいなよ。
0978nobodyさん
2010/07/19(月) 23:34:04ID:???いや、そうじゃなくてな、
文字列の中に(中略)というわけでそれを言うなら「時は」じゃなくて「に限らず」だな。
0979nobodyさん
2010/07/20(火) 01:26:17ID:???$str = "<td><b><a href=./e=&view_id=".$row1["s_name"].">" . $row1["s_name"]."</a></b></td>\n";
でエラーになります><
だな
0981nobodyさん
2010/07/20(火) 23:02:30ID:???そのパソコンでしか使えないようにするような事は
ただ、コードが複雑になってしまう
難読化に関してはまぁしてもしなくてもいいんだけど、出来るならした方がいいと思うね
0982nobodyさん
2010/07/21(水) 02:35:12ID:FRhRPQxhhttp://lh4.ggpht.com/_M6yDAZ34keM/TEXa-23DdOI/AAAAAAAAAEU/pt0imvSvoDs/mbstr.jpg
上記画像のようにフォームから出力された文章の一部がランダムに文字化けしたり、半角空白が挿入されたりしています。
色々試すと、ある程度の長文でマルチバイト文字のみがこうなるようです。
php.iniを見直しても分からずじまいで、原因はどこにあるのでしょうか。
0983nobodyさん
2010/07/21(水) 04:07:51ID:???それか自前でへんなエスケープしてるとか
0985nobodyさん
2010/07/22(木) 00:31:23ID:9L3V/lR5$cgi = $context->getCgi();
この場合の「->」ってどういう働きをしているのでしょうか
0986nobodyさん
2010/07/22(木) 00:54:29ID:???>5 の4。ちなみに名前は「アロー演算子」と言うのだが、あまりこの名称を使っている人を見ない。
つうかこのスレだけで数回出てきているので「->」で検索。
まずは配列(array、連想配列)を思い浮かべてくれ。
$user["name"]とか$user["age"]とか、そういう変数を複数持てるアレだ。
配列だとキー名は単なる文字列だが、オブジェクトの場合はキー名の代わりに変数名みたいなものを使える。
$user->age とか $user->name とかいう形でアクセスできる。 ちなみにうっかり$user->nmae とかタイプミスするとエラーになる。
んで、オブジェクトを使っている場合は、値だけではなく「関数」も持たせられる。
$user->get_price()とかすると、$userの持ってるget_price()という関数が呼び出される。
この関数の中では、$user->ageや$user->nameのような、「オブジェクトの持つ変数」も使えるし、$user->get_gender()のような他の関数も(書いてあれば、だが)呼べる。
詳しくはマニュアルにて熟知すべし。
http://jp2.php.net/manual/ja/language.oop5.php
0987nobodyさん
2010/07/22(木) 01:56:48ID:9L3V/lR5すばらしいお返事です!ありがとうございました!
0988nobodyさん
2010/07/22(木) 02:49:53ID:???0989nobodyさん
2010/07/22(木) 08:46:02ID:???なにか理由があるのでしょうか。
0990nobodyさん
2010/07/22(木) 14:09:39ID:NJJj5G9Eデータ保存用のdatファイルの内容が消えたりするんだが
何が原因なの?
サイトurl
http://test001.atumari.net/miku/miku.php
ソースurl
http://test001.atumari.net/miku.zip
0991nobodyさん
2010/07/22(木) 14:38:59ID:???0992nobodyさん
2010/07/22(木) 14:40:14ID:???0993nobodyさん
2010/07/22(木) 14:55:10ID:NJJj5G9Eはしてるけどやり方が間違ってるのかな?
0994nobodyさん
2010/07/22(木) 15:09:19ID:???まとまった説明ってどっかにない? がんばって探してる
けどどうにも見つけられない
0995nobodyさん
2010/07/22(木) 15:22:24ID:???やり方が間違っている。
排他制御対象のファイルは読むときもロックしないとだめ。
そうじゃないと書き換え中の半端な状態のファイルを読んで
しまうことがある。
"w"でfopenするとその時点でファイルが空になるので、その
あとでflockしても手遅れ。ロック外で書き換えたことになる。
0996nobodyさん
2010/07/22(木) 16:54:25ID:NJJj5G9Eありがとうございます!
0997nobodyさん
2010/07/22(木) 21:45:15ID:???iniなんてwindows世界のものなんだから[*]
「PHPで」という風に探さずに
↓という方向で探せばけっこう見つかるよ。
http://www.google.co.jp/search?hl=&q=windows+ini%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E6%9B%B8%E5%BC%8F&sourceid=navclient-ff&rlz=1B3GGLL_jaJP384JP384&ie=UTF-8&aq=1&oq=windows+ini%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB
[*]厳密にそうなのかどうかは、まあ知らん。
0998nobodyさん
2010/07/22(木) 22:18:31ID:???0999nobodyさん
2010/07/23(金) 01:27:05ID:???1000nobodyさん
2010/07/23(金) 01:27:48ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。