【PHP】下らねぇ質問はID出して書き込みやがれ 116
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 115
http://kohada.2ch.net/test/read.cgi/php/1327005803/ ◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
6 :
nobodyさん :2012/02/26(日) 12:26:31.13 ID:nCX4lbdW
23. オブジェクト指向 実装が中途半端なので使用しないこと。 本格的なオブジェクト指向言語に比較してパフォーマンスが劣ります。
7 :
nobodyさん :2012/02/26(日) 12:28:18.88 ID:nCX4lbdW
24.パフォーマンスが悪いと感じられるとき キャッシュを使用してください。 それでもだめならサーバーCPUのオーバークロックをお試しください。
煽られたからって顔真っ赤にして書き込まなくてもw
なんだ?このスレ。
ネタなんだから反応しないでさ、 IDでてんだから、NGしろ馬鹿
オブジェクト指向ってもともと実行パフォーマンスは悪いもんだろ?
乙
アジャイルは低コスト短納期が目的 ハイパフォーマンス求めるならプロセッサ固有の命令セットでバリバリハードコーディングがオススメ ∧_∧ ( ゚ω゚ ) コーディングは任せろー バリバリC□ l丶l丶 / ( ) やめて! (ノ ̄と、 i しーJ
なんのことを聞いてるのかわからんし
荒らしは反応されるのが一番のご馳走 飽きるまで放置
>>6 はPHPしか知らないだけのアホだと思う
PHPのコードが最適化されないことによる所以
ようはコンパイラとインタプリタの違いで片付く問題
オブジェク指向パラダイムでインタプリタのrubyはやはり遅い
>>14 コピペした処理のパフォーマンスが悪くて怒ってるんだと思うよ
まずOOとOOPの違いぐらい理解しとけ って言いたくなるよな
>>16 そのとおり。だからphpではOOPはほどほどに。
流れが
ビビルOOp
22 :
nobodyさん :2012/02/26(日) 16:33:14.93 ID:Ty40dDQp
Array ( [0] => Array ( [0] => Array ( [0] => 2 ) ) [1] => Array ( [0] => Array ( [0] => 1 ) ) [2] => Array ( [0] => Array ( [0] => 3 ) ) ) このような形の配列をarray_multisortでソートするにはどうすれば良いでしょうか?
PHPはそもそもオブジェクト指向言語じゃない。 機能が一部後付されただけ。 PHPにパフォーマンスを求めること自体が間違っている。
わかったから
PHPでオブジェクト?ったく笑わせんな ゴミに捨てろ
>>22 クイズでも出してるつもりか?
教えてくださいだろ
27 :
nobodyさん :2012/02/26(日) 19:48:42.94 ID:Ty40dDQp
>>26 htmlspecialcharsはどのクラスのメソッドですか?
教えてください。
PHPer、レベル低いね。
>>22 普通にならび変わるだろ?添え字上書きされるけど
34 :
nobodyさん :2012/02/26(日) 21:43:28.72 ID:/kPpcXH5
>>33 出来ませんでした。恐らく、
[0] => Array
(
[0] => Array
(
[0] => 2
[1] => 1
)
)
上の様な形でなく、
[0] => Array
(
[0] => Array
(
[0] => 2
)
[1] => Array
(
[0] => Array
(
[0] => 1
)
)
このように一つ一つ別になっているからだと思うのですが、このようなものをソートするやり方はあるのでしょうか?
>>34 <?php
$data=array();
$data[0][0][0]='2';
$data[1][0][0]='1';
$data[2][0][0]='3';
array_multisort($data);
echo "<pre>";
var_dump($data);
echo "</pre>";
//こゆことじゃないんか?
普通に動きましたよ。 /* コード */ $test = array( array( array(2) ), array( array(1) ), array( array(3) ) ); array_multisort($test); Zend_Debug::dump($test);
/* 出力 */ [0] => array(1) { [0] => array(1) { [0] => int(1) } } [1] => array(1) { [0] => array(1) { [0] => int(2) } } [2] => array(1) { [0] => array(1) { [0] => int(3) } } }
38 :
nobodyさん :2012/02/26(日) 22:55:51.16 ID:Ty40dDQp
39 :
nobodyさん :2012/02/27(月) 00:03:35.92 ID:hV/3kGWo
htmlspecialcharsはどのクラスのに所属するメソッドですか? 教えてください。
( >д<)、;'.・ ファンクション
>>39 htmlspecialcharsはphpの組み込み関数です
メソッドと関数の違いはわかりますか?w
えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
43 :
nobodyさん :2012/02/27(月) 01:10:58.93 ID:hV/3kGWo
>>41 組み込み関数とはどういう意味でしょうか?
phpはオブジェクト指向言語ではないのですか?
>>42 そうなんですか!
反応したら負け
メソッドは引数を持たなく、関数は引数を持つ メモメモ・・・・。
42 名前: nobodyさん [sage] 投稿日: 2012/02/27(月) 00:59:20.23 ID:??? えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます そうなんだ・・・。
>>43 if文とかfor文とかをオブジェクトとしてPHPに実装している凄腕なひとなんだな
ならもぉPHPやる必要ないよね〜
自分専用の言語作ったほうが早くない?
ニートならできる まあ頑張れよ(棒読み)
>>48 >>43 でもないんだけどオブジェクト指向言語のご経験は?
このスレは
質問する奴も馬鹿、答える奴も馬鹿
53 :
nobodyさん :2012/02/27(月) 09:32:22.59 ID:3PUrmhLe
適当に画像をうpして、作った画像アップローダーのテストしてたら、 mimeタイプがx-pngが出てきて、pngを許可にしてたが弾かれた、 x-pngってよく出てくるのでしょうか? php歴2年で初めてみました。
IE8以前とレガシーモードだな
Ieは滅びろ
>>55 CSSやHTMLレベルからやってんのかどうかわかる言葉だなw
日本語でおk
>>53 MIMEタイプをどう拾うかにもよるけれども
$_FILEで見てるならば、ブラウザの申告したものを見てることになる。
image/pjpegとか出てくるだろ。その環境だと。
59 :
nobodyさん :2012/02/27(月) 15:13:08.80 ID:EtiAdS4g
【OS名】UNIX系(共用サーバーのため詳細不明) 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL 【質問内容】 以下のようにすると、POSTで取得した値が2012-02-27になるのですが、 print '<td>' . $day . '<input type="radio" '; print 'name="myday" value="2012-02-27">'; 以下のように変数でいったん置き換えると0000-00-00になります。 $s = "2012-02-27"; print '<td>' . $day . '<input type="radio" '; print 'name="myday" value=$s>'; どこがどう間違っているんでしょうか? 教えてください。よろしくお願いします。
' で囲った場合は変数展開されないです
ブラウザの“ソースを表示”を有効に使おうぜ
62 :
nobodyさん :2012/02/27(月) 15:30:27.64 ID:EtiAdS4g
63 :
nobodyさん :2012/02/27(月) 19:29:00.80 ID:4hoIqr2g
あるURLから、file_get_contentsで画像を取得し、
それを、Cache_Liteでキャッシュしつつ表示するっていうものを作りたいのですが
どうやっても、FFで確認したら
「画像ファイル
http://~/img.php は壊れているため 表示できませんでした。」
と表示されます。
内容としては、
img.php
<?php
$url = '
http://example.com/ '.$_GET['id'].'.jpg';
$image = file_get_contents($imgUrl);
header('Content-Type: image/jpeg');
echo $image;
?>
を、
<img src="
http://example2.com/img.php?id=hoge " />
という感じで呼んでいるだけなのですが。。。なぜか上手く表示されません。
すいません。宜しくお願いします。
FFって何?
65 :
63 :2012/02/27(月) 20:03:10.95 ID:4hoIqr2g
FireFoxです 周りではこう呼んでるんで。。
>>63 一個ずつ変数をechoってってどこにちゃんと何が入っているかとか
確認していけばすぐ解決するよ。それ。
67 :
63 :2012/02/27(月) 20:43:16.07 ID:4hoIqr2g
>>66 ありがとうございます。地道にやってみます^^;
>>65 まずPear:Cache_Liteを使わないとどうなのか
header already sentみたいなメッセージが出てたりして。
42 名前: nobodyさん [sage] 投稿日: 2012/02/27(月) 00:59:20.23 ID:??? えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
エロ画像うpでもつくんのかな
$imgUrlって$urlじゃないのかとか、そんな話じゃないよな?
あれ生きてる?
テスト 死亡
なんかkohadaおかしい
この板って5スレしか無いの?死ぬの?
うっせえ死ね
今をときめく、ウェブ言語「PHP」
このスレあれば事足りる
また勝ってしまったか・・・
>>73 あー見落としてた。きっとそれが正解だと思う
84 :
nobodyさん :2012/02/28(火) 08:17:07.40 ID:MraNK8dl
質問があります。旨く説明できなくてごめんなさい。どうぞよろしくお願いします。 index.phpを振り分けファイルにして、作業ごとにphpファイルを振り分けようと思っています。 ニーズにより、$_POST["mode"]や $_GET["mode"]を持って飛んでくるので、それらを if else か switch で振り分けて、表示させるところまではできました。 index.php で振り分ける前に、ちょっと何かして、変数を渡す必要があるので、 header('Location: ./index.php?mode=hoge'); ではなく、require か include で次のページに移っています。 それで、たとえばhoge.php で作業をして、index.php経由でどこかのページに行ったときに、 今度は作業をしたあとなので(データベースの変更など)内容が変わって表示されるべきところ さっき表示したキャッシュが残っていて、表示される内容が更新されません。 ヘッダ送信ならno-cacheを送信することもできますが、requireで読み込むファイルを 再読み込みさせるにはどうしたらいいでしょうか。 require しているのは、作業するphp で、そこで加工して、smartyに渡して表示させています。 今は、FTP でindex.phpを一度削除しない限り、内容が更新されません。 smarty の moge.tpl をいったん削除しても、(そのファイルがなくても)index.php で require した時のキャッシュが残っているのか、表示されます。 【PHPのバージョン】PHP 5.2.17 【OS】わかりません、さくらインターネットのレンタルサーバーです どこに問題があるのか、把握できないため、わかりにくくて申し訳ありません。 そもそもこういう仕様が間違っているのでしょうか。何かアドバイスがありましたら よろしくお願いします。
そんなめんどくさい仕様を考えるのはやめにして 素直にZendやcakeを勉強して見ては
smartyのキャッシュなら、キャッシュのパラメータ工夫するか、 キャッシュやめてしまえ。 テンプレート消しても表示するんなら、compile_check falseになってんだろ。
87 :
84 :2012/02/28(火) 10:46:21.69 ID:MraNK8dl
>>85 趣味でしょぼしょぼやっているので、フレームワークというとなんだか大げさな
気がしてしまって・・・
>>86 いま調べてきたら trueになっています。
ブラウザの問題かと思って、IEとFirefoxを試してみましたが結果は同じでした。
毎回requireさせる方法ってないもんでしょうか。また、問題切り分けのための
何かテストできることがありましたら、アドバイスお願いします・・・。
requireが問題なの?index.phpそのもののキャッシュだと思うけど
正直に言えば、これ以上はエスパーでないと無理です。
90 :
nobodyさん :2012/02/28(火) 12:45:49.64 ID:gmDIsIfQ
ログインして入った、master_yu_kun.phpを 検索サービスから検索されなくするにはどうするのですか?
>>84 たぶん、質問している側と読んでいる側で
「ページを移る」の意味に混乱が生じていると思う。
includeやrequireは「移る」って言わず整理しなおして
もっかい説明してちょ。
なんとなく理解できるけど、そしたらもうちょっとがんばれるかもなんで。
自分でデバッグさせればいいじゃん鬱陶しい
>>84 smartyのキャッシュじゃなくて、PHPのキャッシュかもしれない。
eAcceleratorとかAPCとか
>>87 めんどくさい質問の時は
公開できる範囲内でできるだけ具体的なコード貼ってくれ
複数レスにまたがってもいいから
95 :
84 :2012/02/28(火) 14:33:41.95 ID:MraNK8dl
みなさん、本当にごめんなさい。
自分でも何がわからないのかよくわからなくて混乱しています。
>>88 index.phpのキャッシュといわれれば、そういう風な気もしてきます。(smartyの
テンプレートを削除しても問題なくページが表示されていたので)
>>91 ちょっとわたしの勘違いがあったかもしれませんが、index.php の終わりの方で
include 'moga.php';
exit;
としたら、そのmoga.phpを実行する---そっちのページに行くと思っていました。
マニュアルや、includeについて説明されているページをあちこち読んできたのですが
includeするってことは、読み込まれたページがindex.phpの一部になるのですか?
>>93 phpのキャッシュというのもありそうですね・・・
eAccelerator等は、特に追加でいれていません(デフォルトで入っているかどうか
調べ方もわかりません、すみません)
96 :
nobodyさん :2012/02/28(火) 14:34:31.94 ID:MraNK8dl
>>94 はい、すみません。これからちょっと用意してきます。
>>95 echo time();
とか毎回変わる内容を入れてみてどうなの?
キャッシュしないでしょ。
【OS名】CentOS 6 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL 【質問内容】 定期的にバックアップを自動で行いたいのですがテーブル数が多いので一括でバックアップできる方法を探しております。 execやsystemが使用出来ないサーバーなんですが、PHPからmysqldumpと 同じ効果がある関数などあったりしますか?
cron使えないの?
100 :
98 :2012/02/28(火) 16:03:59.59 ID:2XRQp2f6
すいません ID出てませんでした。
101 :
98 :2012/02/28(火) 16:04:44.10 ID:2XRQp2f6
じゃシェルスクリプト書いて実行させればいいのでは?
PHPのプロならCLIだなw
104 :
84 :2012/02/28(火) 17:15:31.16 ID:MraNK8dl
これでもだいぶ整理してきたつもりなのですが、長くてすみません PHPを使って、うちの事業所の発送管理をしようと思っています。 [index.php] <?php session_cache_limiter("public"); session_start(); session_regenerate_id(); 〜ここでセッションに前に渡した鍵を持っているか確認〜 login名により、実施可能な処理を振り分けとか if ($_GET["mode"]=="denpyo_input"){ include "denpyo_input.php"; exit; } else if($_POST["mode"]=="hasso") { include "hasso.php"; exit; } else if(($_POST["mode"]=="hasso_mail")||($_GET["mode"]=="hasso_mail")) { include "hasso_mail.php"; exit; } else if($_POST["mode"]=="send_hasso_mail"){ include "send_hasso_mail.php"; exit; ・・・と似たような処理がたくさんあります 今つまっているのは、hasso_mailで呼ばれた時の処理です。
105 :
84 :2012/02/28(火) 17:19:33.39 ID:MraNK8dl
hasso_mail.phpが呼び出されたら、「商品発送済み & メールアドレスが ある人 & 発送済みメールの必要な人(メールアドレスがあっても、 発送したというメールの必要のない相手もいるので)」をデータベースで検索します 0件だったら「今日はメールを出す必要はありません」と表示して終わり 1件以上見つかったら、配列にデータを持ってsmartyにわたして表示
106 :
84 :2012/02/28(火) 17:20:27.59 ID:MraNK8dl
[ hasso_mail.php ] 〜最初に、各設定ファイルの読みこみや データベースの接続のため前半省略 〜 $sql = "SELECT * FROM order LEFT JOIN customer USING(customer_id) "; $sql .= "WHERE shipping_day IS NOT NULL AND hasso_mail='0' "; $sql .= "AND ・・・・他いくつか条件"; // hasso_mail 0:これから出す人 1:メール発送済み 2:メール不要 9:メールアドレスなし $result = mysqli_query($conn, $sql); $num = mysqli_num_rows($result); if($num === 0){ $smarty=new Smarty(); $smarty->display("no_mail.tpl"); // 今日はメールを出す必要がありません exit; } while($row = mysqli_fetch_assoc($result)){ $order_id = $row[id]; $name = $row[name]; $date = $row[shipping_date]; } $smarty->assign("order_id",$order_id); $smarty->assign("name",$name); $smarty->assign("date",$date); $smarty->display("hasso_mail.tpl"); // ここでメールを出す必要のあるお客さんのリストを出す exit;
107 :
84 :2012/02/28(火) 17:22:07.05 ID:MraNK8dl
hasso_mail.tpl では、メールを出す必要のあるお客さんのリストを 表示して、ラジオボタンで、誰にメールを出すか選択させる sumbitボタンを押すと、メールを出すお客さんの伝票番号を持って、今度は send_hasso_mail.phpへ
108 :
84 :2012/02/28(火) 17:23:37.58 ID:MraNK8dl
[ hasso_mail_send.php ] 〜最初に、各設定ファイルの読みこみや データベースの接続のため前半省略 〜 if($_POST["send"]=="yes"){ 〜ここでメールを送信する処理〜 $sql = "UPDATE order SET hasso_mail=1 WHERE order_id="; $sql .= $_POST["order_id"]; ← 本当は中身を確認してから処理してます $result = mysqli_query($conn, $sql); if(mysqli_error($conn)){ die("更新失敗".mysqli_error($conn)); } mysqli_close($conn); header('HTTP/1.1 303 See Other'); header('Location: ./index.php?mode=hasso_mail'); /* ここでhasso_mailを呼び出すと、複数あった「メールを出す 必要のある人が、だんだんに減っていって、最後は0件になって 「今日はメールを出す必要がありません」のページに行かれる予定・・・なんですが・・・*/ }
109 :
nobodyさん :2012/02/28(火) 17:25:19.42 ID:MraNK8dl
実際は、メールを出す必要のある人が減りません。orz ・データベースでSQL文を発行して確認すると確かにメールを出す必要のある人の数は減っている。 ・直接hasso_mail.phpを呼び出してリロードすると、数は減っている。 ・index.php?mode=hasso_mail で呼び出すと減っていない(何回リロードしても減らない) ・hasso_mail.tpl を削除してみても、正しく?表示されて数は減らない ・index.phpを削除して、すぐにアップロードしてリロードしても減らない ・index.phpを削除して、いったんリロードして(エラーをだして) アップロードしなおすとようやく内容が反映されます。
110 :
nobodyさん :2012/02/28(火) 17:29:14.28 ID:MraNK8dl
すみません
>>108 は一行目 [ send_hasso_mail.php ] の間違いです。
>>95 仕事忙しくなってきてちょと読めてないけど
>includeするってことは、読み込まれたページがindex.phpの一部になるのですか?
そうです。その通りです。
$_SERVER['PHP_SELF']してみそれ。
,-、 ,.-、 ./:::::\ /::::::ヽ /::::::::::::;ゝ--──-- 、._/::::::::::::::| /,.-‐''"´ \:::::::::::| / ヽ、::::| / ヽ| l l .| ● | んーと l , , , ● l ` 、 (_人__丿 、、、 / `ー 、__ / /`'''ー‐‐──‐‐‐┬'''""´ ,-、 ,.-、 ./:::::\ /::::::ヽ /::::::::::::;ゝ--──-- 、._/::::::::::::::| /,.-‐''"´ \:::::::::::| / ヽ、::::| / ● ヽ| l , , , ● l .| (_人__丿 、、、 | よく分かんない l l ` 、 / `ー 、__ / /`'''ー‐‐──‐‐‐┬'''""´
試しにリロードをCtrl-F5でやるとか
115 :
84 :2012/02/28(火) 19:33:40.33 ID:MraNK8dl
解決していませんが、とりあえずご報告 index.php に echo time() を追加して、リロードしたりいろいろ試してみました。 Firefox ・リロード、F5、スクリプト経由で(DBで処理した後) index.php?mode=hasso_mail を呼び出しても、表示結果変わらず IE ・最新の情報に更新、F5でも表示変わらず ・スクリプト経由で(DBで処理した後) index.php?mode=hasso_mail を 呼び出したら、timeスタンプ更新されて、メールを出す必要のある人の行も減っていました! smarty で表示させているテンプレートのヘッダのmetaタグに下記を追加 → 効果なし <meta http-equiv="Cache-Control" content="no-cache">
116 :
84 :2012/02/28(火) 19:41:21.53 ID:MraNK8dl
Firefoxの、キャッシュを全て削除して、その後にリロードしたら 情報が更新されました。(その後データベース更新して、戻ってくると先ほどと同じ状況。 でも、再びキャッシュを削除してリロードすると反映されます) ということで、index.php のキャッシュが表示されているようです。 index.phpをキャッシュさせずに、毎回新規に読ませれば解決しそうです・・・といっても どうすればいいのか、これから調べるところですが・・・ 解決の糸口が見えてきたような気がします。 みなさん、本当にありがとうございました。
>>84 たとえば
>>84 がそのPHPにアクセスした結果がプロキシにキャッシュされて、
赤の他人がそのキャッシュを表示しても問題ないのか?
そういうコードになってると思うけど。
118 :
nobodyさん :2012/02/28(火) 20:07:57.96 ID:MraNK8dl
>>117 うーん、よくわかりません。どのあたりでしょうか・・・
119 :
84 :2012/02/28(火) 20:14:24.21 ID:MraNK8dl
あ、名前でてませんでした。84です
>>117 今の予定では、これらのphpスクリプトは、非公開ディレクトリ(.htaccessでアクセス制限)で
実行するつもりです。ローカルにサーバたててやったほうがいいでしょうか・・・
セッションでいろいろやれているなら問題ないはずではあるけど、こっちではわかんないし。 キャッシュじゃなくて、なんか勘違いしてる気がするなぁ。 hasso_mail.tplのformのとこどーなってる?
121 :
nobodyさん :2012/02/28(火) 20:28:47.33 ID:MraNK8dl
>>120 どうなってるの?・・・っていわれてもよくわかりません。普通だと思います。
method="post" で、action="index.php"
お客さんごとにラジオボタンを持たせて、そこに伝票番号がついています。そのほか
いくつかの情報を <input type="hidden">で渡しています。
submitで送信しています。
42 名前: nobodyさん [sage] 投稿日: 2012/02/27(月) 00:59:20.23 ID:??? えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
回答者のバカぶりはすごい
Ruby使いの悪口はやめようよ
128 :
nobodyさん :2012/02/29(水) 15:05:49.16 ID:i0fISUeh
file_get_contentsでhtmlを取り込む際、ページ全体取り込むと時間がかかるため文字数をを指定して取り込もうとおもうのですがうまくいきません。
例えば
$url ="
http://www.amazon.co.jp/gp/offer-listing/4044292108/ref=dp_olp_used?ie=UTF8&condition=used ";
echo file_get_contents( $url , false , null , 108741 , 300);
こうした場合このような結果が帰ってきます。
Warning: file_get_contents() [function.file-get-contents]: stream does not support seeking
Warning: file_get_contents() [function.file-get-contents]: Failed to seek to position 108741
開始文字数を現在は 108741 にしていますが 2000 にしたら正常に動作したのですが、この開始文字数は制限があるのですか?
そういうことがやりたい場合はfile_get_contentsは使うな curlを使え
131 :
nobodyさん :2012/02/29(水) 17:09:43.10 ID:i0fISUeh
返信ありがとうございます
>>129 curl使う方がいいですか・・・
ぱっと調べてみたんですが、任意の範囲(何文字〜何文字,<div class="A">〜</div>だけ 等)の取得が出来なさそうだったので
file_get_contentsで必要そうな部分だけを抜き出し、そこからpreg_match()などで検索しようとおもったのです。
もう少しcurlについて勉強してみます。
>>130 これはfile_get_contentsが文字数制限あるとかじゃなくて、htmlのどれかのタグ要素が読み込めないためそれ以降の文字数が指定できないということですか?
だとしたらcurlでも何らかのオプションを設定してもできないんでしょうか?
>>131 file_get_contentsなんて今すぐ使うのをやめろ
>>131 シーク操作に対応していないサーバということで諦めるしかない
ダウンローダーとかでもたまにあるでしょ
resumeができないとことか
イメージとしてはあんな感じ
134 :
nobodyさん :2012/02/29(水) 18:59:17.42 ID:i0fISUeh
>>133 やはりそういうことですか
処理速度を速くしたかったんですが、諦めて全文取得します。
ありがとうございました。
42 名前: nobodyさん [sage] 投稿日: 2012/02/27(月) 00:59:20.23 ID:??? えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
137 :
nobodyさん :2012/03/01(木) 02:37:22.78 ID:QEq3BeNx
42 名前: nobodyさん [sage] 投稿日: 2012/02/27(月) 00:59:20.23 ID:??? えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
phpのsendmailで以下の時間指定のメール配信をしているんですが、 これまで23時から8時まではメールを送らないよう次の設定をしていて この時間はメールを送れないようしていました。 $time=date("H"); if($time < 23 or $time < 8){ 条件が真の場合の処理←メール送らない else 条件が偽の場合の処理←メール送る これを深夜1時から朝8時までに変更したい場合は どのような条件文になりますでしょうか? 次のようにしてみたところ 日中(朝8時以降)のメールが送れなくなってしまいます。 $time=date("H"); if($time < 1 or $time < 8){ 条件が真の場合の処理←メール送らない else 条件が偽の場合の処理←メール送る
修正します。6行目? if($time < 23 or $time < 8){ ↓ if($time >= 23 or $time < 8){ でした。。。
and使え
こういうの、ゆとりっていうのか? if文考える前に 日 本 語 で 条件を考えてみたりしないのか。
$time=date(H); if($time > 1 and $time < 8){ か?
144 :
nobodyさん :2012/03/01(木) 09:46:43.64 ID:V6dbm0J6
Apache + PHPで全てのプログラム・全てのユーザー間で変数を保持する方法ってありますか? 具体的にやりたいのは以下のことです。 1.あるリクエストでDBサーバーが落ちたことを感知したら$_DB_DEADにtrueをぶち込む 2.次回以降のリクエストでは$_DB_DEADがtrueになっていたらエラーメッセージを出す ※すべてのリクエストごとにDBが生きているかどうか調べると時間がかかるため 3.cron等で定期的に生存判定プログラムを走らせ、復活したら$_DB_DEADをfalseにする 適当なファイルに書き出して毎回それを読み込めばできますが、メモリ上に残す方法があるんなら それを使いたいです。
cronではhttpd経由でphpで判定するの?
>>145 どちらでも。
コマンドラインのほうが楽でしょうが、127.0.0.1:80へのリクエスト飛ばす
プログラムを走らせてもいいわけですし。
プロセスが別かどうか知りたかったんだけど、 まあファイルでいいと思うけどな
>>144 dekiruwakeneedaroks
ファイルにしときゃ悩むこともないのに、 なんでわざと回り道するんだろw
>>144 PHP走らせてるサーバ上でSQLiteはダメすか。
一応、インメモリデータベースにもなるが。
>>144 phpでは無理。別言語ではできるものもある。
152 :
nobodyさん :2012/03/01(木) 14:25:30.06 ID:1NaN8Vlk
function getRandomString($length) { $max = 0; $randstr = ""; $strchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $max = strlen($strchars) - 1; $randstr .= substr($strchars, rand(0, $max), 1); $length --; $strchars = "0123456789"; $max = strlen($strchars) - 1; for ($i = 0; $i < $length ; $i ++) { $randstr .= substr($strchars, rand(0, $max), 1); } return $randstr; } 上のファンクションで、 真ん中あたりにある $length --; の --;って何を表す記号でしょうか??
顔文字
$length = $length - 1;
ループで$i++は無意識に使ってるけど$i--がわからないってことは 内容はよくわからず慣習的に使ってるからなんだろうな
157 :
nobodyさん :2012/03/01(木) 15:48:28.92 ID:1NaN8Vlk
なるほど。デクリメントですか! ありがとうございました!
くそ・・・今日は、eclipseの調子が悪い
eclipseなんてクソの集まり
IIS7でPHP動かしてるのですがDreamweaverで分割表示した時にの右側の部分でPHPの表示を確認することはできませんか? それと、PHPを学習する上でおすすめのサイト等があれば教えて下さい。ページの自動生成くらいまで出来るようになりたいです。
162 :
160 :2012/03/01(木) 20:54:45.07 ID:MIvctavF
>>161 すみません、よく読まずに質問してしまって。
公式マニュアルがいいんですね
一つ目の質問だけ、お願いします
>>162 Dreamweaverスレってないの?
165 :
160 :2012/03/01(木) 21:36:46.38 ID:MIvctavF
>>
//if(!array_key_exists( $attributeNo ,$indexArray))で数秒かかってたのが @$h=$indexArray[$attributeNo]; if(!$h)としたら1ミリ秒になった。 ビルドインより早いってどういう事なの。
phpでOOPすると遅すぎ。
アルゴリズムが糞なんだろ
>>170 はぁ?
phpはオブジェクト指向言語じゃないから
オーバーヘッドが大きいのは当たり前。
言語全般の話だよ
Ruby Perl Python
symfonyってなんで遅いのでしょうか?
>>175 珍回答乙。
OOP以前にphp自体が遅いだけw
パフォーマンスを求める言語じゃない。
Hiphop for PHP入れれば早くなるんじゃね? 一度使ってみたいとは思うが環境作るのがめんどくせ
>>170 オブジェクト指向言語じゃないからOOPすると遅くなる。
簡単なこと。
>>181 facebookと同じ失敗してもしょうがない。
オーバークロックしろと何度いったら
>>176 python早いよ。
みたいなサーバー作れるくらい。
誰かPhalanger使ったこと無い?
>>186 早いけど、サーバーが有料なのでメリットは少ない。
Quercusの方が費用対効果が高い。
Phpの利点ってラクなことだよな 速度は遅いけど開発速度はダントツ
昔ほど遅くはないト思うけどね 特に5.4になってから結構早くなってる 使用者が多い分速度改善のためのサードパーディ製品も豊富だし コミュニティは縮小気味だけどまだまだバックエンドではいけるんじゃないかね
卒業研究にandroidのアプリ作ることになったんですが、 今まで大学で習ったのがC言語、独学したのが、php、Javascript なのですが、Javaってphpと比べて難しいですかね? phperの意見が聞きたいです。
191 :
nobodyさん :2012/03/02(金) 03:49:45.64 ID:06mRWUWG
卒業研究にandroidのアプリ作ることになったんですが、 今まで大学で習ったのがC言語、独学したのが、php、Javascript なのですが、Javaってphpと比べて難しいですかね? phperの意見が聞きたいです。 すいません、下げてました
>>191 どちらかというとjavaはCに近いと思う
ちなみに.netとかVCとかそういうのをC言語といっているレベルなら問題外だと思うけど
PHPしかやったことなかったけど、 基本情報でJavaを選択してやったけど試験問題に合格できる程度には出来るみたいだよ。 穴埋めだから簡単なのは当たり前なんだけど、 ソースコードも読みやすくて結構わかるなと感じた。 ただジェネリクスとかスレッドとかPHPerが知らない機能もたくさんあるから、 やっぱ出来ることが多い分にはややこしくて難しいんだなと感じた。
>>192 > .netとかVCとかそういうのをC言語といっているレベル
こういう人たちからみたほうが、javaはCに近いと感じられるのではないか。
そりゃソースコードは読みやすいだろう。
JAVAは設計書をしっかり作れば、だれが書いても似たようなソースになるからな。
>>191 読めるのは読めるんじゃないかね。
ただJAVAの全仕様を頭に入れるのは何年もかかると思う。それぐらい汎用性が高い。
webアプリ開発でも使えるけど、シンプルなソースにはなりにくい。
196 :
nobodyさん :2012/03/02(金) 09:39:23.86 ID:1GN/43Ty
DBを更新した場合、静的htmlを出力しなおすものがありますが、 (今は知りませんが5年前ぐらいのMovableTypeがそうでした) このようなキャッシュシステムを自分で構築するのは結構つらいものがあります。 また、静的htmlなのでアクセス速度の向上は見込めると思いますが、 ちょっとした更新のたびに何ページも作成、出力しなおすのは非効率だとも思います。 逆にgetでクエリを投げてページを動的に変える方法は簡単ですが、 毎度DBにアクセスするので速度が遅くなってしまうと思います。 これを解決するためにインストールするソフトウェアがAPCとかなんでしょうか?
>>196 大体あってるけど、APCはそれが目的ではない。
APC使っても同じように毎回DBにアクセスするけれど、PHPの速度が改善される。
>>196 規模と目的によると思うが、俺は毎日cron回して更新されてたら
全部新しく書き出すようにしてるけどね。更新頻度が高くないから。
頻繁に更新されてアクセスも多いようなら自分で好みのを作れ。
それだけのサイトなら金も時間もかけられるはずだろ
>>196 「毎度DBにアクセス」はメモリキャッシュが貧弱なphp特有。
速度が気になるなら非スクリプト言語に変える。
phpは速度を求める言語じゃない。
DBのアクセスは言語関係なくね? プログラムの実行速度のことは言ってなくね?
APCってなんなの?って聞いてるだけ
203 :
nobodyさん :2012/03/02(金) 13:48:15.98 ID:RcaMuVZ3
>>202 触るな。PHPに親でも殺されたんだろ。
206 :
196 :2012/03/02(金) 15:47:04.35 ID:1GN/43Ty
>>197 ありがとうございます。
仕組み的には受け取ったクエリをハッシュにし、
それに対応する結果をキャッシュするような仕組みを考えていました。
特定のキャッシュ更新のため対応する情報のあるDBの更新をどう検出するかは深く考えていませんでしたが、
よく考えると情報量が膨大になり技術的にも難しそうですね。
規模によってはクエリの組み合わせパターンも天文学的数字ですし、
サーバリソースにも問題が出てきそうですね。
もうちょっと色々勉強してみます。
207 :
196 :2012/03/02(金) 15:47:55.43 ID:1GN/43Ty
他の方もレスありがとうございました。 意見を参考にさせていただきます。
PHP5.4が出てるのに話題にもならないのなwwww だからここの連中はレベルが低いんだよwwwwwwwwwwwwwwwwwww
>>208 バカダナーオマエ
スレタイから、初心者〜が多いに決まってるし、ログみれば質問と回答ばかりで
ほとんど雑談ないだろ。話したいなら他いくでしょ。
質問スレだってことすら読めないやつってことだよ ホントレベル低いw
わかったwわかったw 俺がPHP5.4出てる事を書いて確認に言って初めて知ったんだろ?wwwwwwwwwwwwwwwwwwwwww
>>212 誰も話しにかみついてねえじゃねえかwwwwwwwwwwwwwwwwwwwwwwwwwww
会話についていける奴がいねえんだなwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ここ質問スレな
反応するだけ喜ぶんだから、反応してはいけない。 飽きるまでほっとくしか手はない。このあと自演して煽ってくるから気をつけろ。
まあここ見てるのは質問者も回答者もレベルは低いから当然だけどな
>>213 先端を追う人は開発がどれくらい進んでいるのか随時みているから、リリースが発表されても驚かない
安定を求める人は、使っているディストリがRPM出すまで気にしないから、リリースが発表されても驚かない
リリースされた!って喜ぶのは初心者。
phpはバグだらけなので新しいものに飛びついてもね。
と、初心者が申しております
確かにバグは多いかな。
パフォーマンス上がるからあげる予定
>>221 ようやく5.3がまともになってきたレベルなのに
5.4は怖くて使えない。すぐにバグフィックス連発される予感。
ソースコードも読めない奴は5.3使ってれば良い
な、ここまで自演。 言ったとおりだろ
ここから自演
24.パフォーマンスが悪いと感じられるとき キャッシュを使用してください。 それでもだめならサーバーCPUのオーバークロックをお試しください。
寒い夜もオーバークロックでポッカポカ
phpをMacでやるなら、xamppかmampはどっちがいいですか?
>>229 最初からインストールされているapacheとphpでOK
これも自演釣り
>>229 マックやるならソースコードからコンパイルしろよ
>>231 Hadroopを使うほどの大規模だったらphp無理だよ。
良い例がfacebook。
気にするな。
誰も反応しないからって、自演すんな。
Hadoopのこと?
給与明記しない時点で・・
PHPer、レベル低。
一般的には常識とされている、 真実は一つだけ 怒りは自然な感情 戦争・テロは無くならない 死刑には殺人の抑止力がある 虐められる側にも虐めの原因がある 自己チューな人間ほど自己愛が強い などの間違いを解説ちう m9(`・ω・)ビシ 義務教育では教えない最新哲学 感情自己責任論
phpってゲームとか作れるの?
オセロくらいなら
世の中のゲームは全てPHPとイスラエルでできています
サーバーサイドの言語だけでゲーム作るとか変態
PHPでマリオ作れるよ 次のターンでクリボーにぶつかります行動を選択して下さい ・ジャンプする ・動かない ・前進する ・後退する
ターン制のマリオって?
250 :
nobodyさん :2012/03/03(土) 20:23:16.74 ID:7jpuwzKe
>>250 rewriteでググレ
ヘッダーを見ると分かると思うが拡張子ががzipファイルなのにtext/htmlになっているのはurlを書き換えてるから
色んなWebサイト回ってPHPの勉強してるのですが、サンプルソースをそのままコピペしてbodyタグの中に突っ込んでもちゃんと動いてくれない事が多々あります。 一つのサイトだけではなく、いくつかのサイトのソースで試してもダメなので此方側の問題だと思うのです。 echo "**"等は動くのですが、どういうことなのでしょうか?
php.iniのや鯖の設定の問題を疑ってみるとか
Phpのバージョンも確認したほうがいい あとエラーメッセージちゃんと表示するようにしてエラーここに貼ってくれ
256 :
nobodyさん :2012/03/04(日) 00:20:07.25 ID:TPaK4mCG
おふたりともありがとうございます。 躓いているのがクッキーを設定し、読み込むというものなのです。 私自身のブラウザの設定はクッキーを有効にしてあるのでここは問題ないと思います。 エラーメッセージは無く、ただ表示されないという状況です <?php $word = "おおおお"; setcookie("data".$word,time()+60*60); ?> <?php $word = $_COOKIE["data"]; echo $word; ?> ソースはこのような感じです
257 :
nobodyさん :2012/03/04(日) 00:26:20.08 ID:TPaK4mCG
環境の事を書くのを忘れていました。 動かしている環境はIIS7.5 PHP5.31 Opera11.61です。
PHPでゲームだと テキストゲームかな
setcookieはhtmlの出力前に書け
>>256 "data". $word を "data", $word に
264 :
nobodyさん :2012/03/04(日) 01:12:34.15 ID:TPaK4mCG
わああ! ありがとうございます!! よく見るとちゃんとコピペできてませんでした!!;; .と,間違って売っちゃってて・・・すみませんでした・・・。おさわがせ
Body直下にsetcookie書いてる?
romajisika,utenakunatta.
>>268 Are you speak English?
272 :
nobodyさん :2012/03/04(日) 14:16:18.58 ID:lqZkE7tp
PHPMYADMIN使ってますがエラーがでます。 /usr/lib/php/build/ というディレクトリが無いのでエラーになります。 パッケージで入れたので、ビルド場所なんて無くて当然ですが どいうしたらよいでしょうか。
Windows+XAMPP使いの多いこのスレで答えられる奴はいるかな?
おれは全部ソースからビルドして入れてるから パッケージはよくわからんな。 どういうエラー?
あと、/usr/local/lib/php〜とかもない?
>>272 パッケージで入れたけど、/usr/lib/php5/build はあるよ?
php が決め打ちになってるなら、
php5 を php にリンク張ればいいんじゃないの?
戻り値に、「なにもしない」を返せる関数って作れますか? $a = hoge( $b ); としたとき、$bの条件によって $a を変更したいんだけど ある条件では $a を変更しない なんて関数作れるのかな。 無理だよな。 今は仕方ないので $a = hoge($a,$b)って作ってるけど美しくない。
Ext JS 4 のスレが無いので誰か立ててください。
自分は立てられないので…
----------------------------------------------------------------
【RIA】Sencha Ext JS 4【フレームワーク】
なかったので立てました。
Ext JS クロスブラウザー対応、RIA開発用フレームワーク
http://extjs.co.jp/products/js/
プロシージャの外でif使ったらぶさいくだから全部中だけで処理したいんじゃないの? 俺はやり方しらんが
>>279 if( ishoge($b) ) $a=hoge($b);
みたいなコードを書けってこと?
>>278 dojo.jsスレの方が需要ありそうだが
>>282 美しさを追求しているところに余計なことでした。
すみません。
286 :
nobodyさん :2012/03/04(日) 18:35:31.77 ID:BDETq1qQ
<?php session_start(); // ログインチェック require_once '〜.php'; ?> <html>以下略 なんかbodyに書いた部分でffでも問題なかったにに ie8では上に謎のスペースが入ったから何故か試行錯誤してたら、 htmlタグの上のphpの記述が問題だった。sesstionをhtmlタグより 上に書かないとerrorが出るしどうしたらいいのでしょうか? ってかieがこんなに厄介とは思いもよらなかったです。
bomかなんかでは?
>>277 function a(){
return;
}
function a() { goto a; echo 1; a: } a();
>>286 htmlファイルをphp側からrequire
>>277 function hoge($a, $b) {
if (fuga) return $a;
else return $hage;
}
$a = hoge($a, $b);
ってやってるけど、パラメータから$aを省きたいってこと?
function hoge(&$a, $b) でいいんじゃね?
$c = hoge( $b ) $a = ある条件($c) ? $a : $c;
( >д<)、;'.・ ファンクション
>>295 42 :nobodyさん [↓] :2012/02/27(月) 00:59:20.23 ID:???
えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
い・・・引数
珍回答
い?
ん?
PHPerはレベルが高い。 ここの回答者はほんと尊敬する。
>>144 素直にmemcached使うとかじゃダメなの?
>>302 JavaではできるのにPHPではできないんですか?っていうよ。
ライブラリ使えば?とかの流れも同様に泥沼化したがる
>>144 アプリケーションスコープに格納したら良いよ
305 :
nobodyさん :2012/03/05(月) 09:50:21.01 ID:tzDsfQTC
質問です。正規表現につまっています。 (https?)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+) https? > http or https :// > :// [:alnum:] は 英数字 \+\$\;\?\. は +$;?. ←こういうことでしょうか? %,!#~*/:@&=_- ←これは、どういうことでしょうか? [・・・]+ > 繰り返し $2グループの中の文字の繰り返しということ〜だと思っているのですが違いますか? なぜエスケープされていない箇所があるのでしょうか。。。
エスケープいらない文字だから -は[]内ではエスケープ欲しいけど、最後だと動く ;にはいらない
php関係ねえええええええええええええ
309 :
305 :2012/03/05(月) 14:29:43.10 ID:???
返信ありがとうございます。 エスケープしなくても意味をもたない文字ということですね。 -もなるほどです。 PHPの勉強している時に出てきたものですから、ここで質問してしまいました。 すいません。 誘導ありがとうございます。 失礼いたしました。ありがとうございました。
311 :
277 :2012/03/05(月) 18:49:27.96 ID:???
312 :
277 :2012/03/06(火) 00:26:49.78 ID:???
>>277 $aが具体的に何を表すのか知らんが
そういう時はクラスのプロパティとして$aを保持してればよくね
色んなことを一行で表現するより論理ごとに別れてた方がきれい
class Test
{
private $_a
public function __construct($a)
{
$this->_a = $a;
}
public function hogeA($b)
{
//$this->_aに対する操作(適当に条件分岐させろ)
}
public function getA()
{
return $this->_a;
}
}
$Test = new Test('test value');
$Test->hogeA('test value 2');
echo $Test->getA();
操作部分やらを一行ですませたいなら、hogeAメソッドにreturn $this;を追加して echo $Test->hogeA('test value 2')->getA();
綺麗な粗大ゴミですね って277が言ってました
319 :
277 :2012/03/06(火) 11:20:30.82 ID:???
しねよゴミ回答者共
え、277ってネタじゃなかったの?
id出せばいいのに・・・
"なにもしない"を返したときは $a $a = func($b) !== "なにもしない" ?: $a;
なんだネタじゃねーのか。
>>277 どうしてもそうしたいならglobal $a;かけろ。
そうすりゃhoge($b)だけで済むじゃん。
珍回答だけど、珍質問相手だから勘弁しろ。
珍回答するなら無名関数だろ
293で既出だが、なるべく短くしたいなら参照渡しで良いだろ。 $a = hoge($b); と hoge($a,$b); 同程度の文字数だし。
この際動けばいい 笑顔で納品してこい
ごくたまに、きちんと設定しないから、ソースがまる見えのサイトを見掛ける。 メアドとか(DBとかの)パスワードとか書いてるのもあったり、危ねえ。 みんなパスワードをソースに書くのか?
ソースが見られたレベルでは、DBのパスがなかったから良かったという状況がわかんない。
>>327 入門レベルの参考サイトを見てまねたんじゃないかな。
勉強はじめた時に、直書きから、外部にして〜って段階ふんで習った?記憶がある
逆にどこにパスワードとか書けばいいの? public_htmlより↑ってこと?
フレームワークなんか見ればわかるけど普通にpublic_html下にベタ書きするぞ まあ上に置けるなら置けばいいけど ちゃんと鯖側で設定してるのが大前提だし気にする必要はないのではないか? きちんと設定していないという状況がもうアウトなわけで その設定できてないことに対する予防措置をとろうとするのはどうかと思うわ
public_htmlより上に置けば安全ということはないしな。
セキュリティにうるさい人は静脈認証でもしてるんかな
>>332 public_htmlの上に置くのは当然
あえて下に置けよ 強気でいくのだ何事も
日本人と欧米人の感覚は違うからな
Apacheアクセスログとか見てても不正侵入試みようとする連中は お決まりのphpmyadminとかしか見てないから安心だ 下に桶
339 :
nobodyさん :2012/03/06(火) 18:47:59.27 ID:sDRjkI45
$_POST 別のページに情報を引き継ぐ $_GET URLに情報を添付して別のページにデータを引き継ぐ $_SESSION サーバーに一定時間 データを保存してデータを引き継ぐ こんな感じの理解であってますか?
>>339 とりあえず初歩の理解としてはそれで十分だけど、ちょと違うっちゃ違う。
POSTはいったんクライアントに全部情報を収容した上で
次のページにアクセスする際に全部投げ返してる。
GETも似たようもなもんだけど、URL経由で投げ返してるところがPOSTと違う。
SESSIONは、一定時間かどうかは設定次第で、何も設定しないノーマル状態だと
ブラウザが終了したとき、SESSIONも一緒におなくなりになる。
なお、データ保存先はサーバであって、クライアントはそれを取り出す鍵だけ持つ形になる。
GET POSTは引き継ぐ仕組みというより受け取る仕組み。 パラメータつきのURLからとか、プログラムからデータ送るとか 元がページじゃないことも。
344 :
nobodyさん :2012/03/06(火) 19:42:30.33 ID:wqn36gVq
>>341 phpではSESSIONにクラスは格納するのはあまり無いことでしょうか?
前スレにお帰り下さい
$unko
347 :
nobodyさん :2012/03/06(火) 21:16:48.12 ID:W+3fB5k3
AjaxアプリケーションをFC2レンタルサーバーLiteで試してるのですが、 FFでは文字化けしないのですが、何故かIE8で文字化けしてしまいます。 文字コードはhtmlもphpもutf8です。 さっぱりわかりません。助けとください。
>>347 Ajaxで取りに行った先に更にバックエンドがあったりしないの?
Ajaxで取りに行った先で取得しているデータが別の文字コードになってたりとか。
つか、スレチじゃないか。もしかすると。
IEはレスポンスヘッダの文字コード指定がないとそーなったような気が
X-Content-Type-Options: "nosniff"
351 :
nobodyさん :2012/03/06(火) 23:09:20.18 ID:qtKZw4aa
画面遷移でリダイレクトではなくフォーワードする方法はありますか?
つphp+javascript
353 :
nobodyさん :2012/03/06(火) 23:38:32.05 ID:qtKZw4aa
>>352 サーバー内部で転送する方法はありませんか?
requireでいいんじゃねーの?
だめなんです
>>354 それだったら処理結果が元に戻ってくるw
>>351 できる。
言語機能にはないが、創意工夫でがんばればなんとかできる。
たぶん。
fopenがlocalhostで動かないのですが、セキュリティか何かの設定の問題ですか?
ちなみにこのようなエラーが出ます
Warning: fopen(counter.txt) [function.fopen]: failed to open stream: No such file or directory in C:\inetpub\wwwroot\study\counter1.php on line 10
Warning: fclose() expects parameter 1 to be resource, boolean given in C:\inetpub\wwwroot\study\counter1.php on line 28
count:
参考にしたソースはこれです
http://www.phpbook.jp/appli/accesscounter/counter1.html
fopen(counter.txt) fopen('counter.txt')
>>356 処理結果が元に戻ってくるとは?
サーバー内部で転送・・・ a.phpで中身というか、内容がb.phpでしょ?
a.phpに受けたリクエストもb.php(のスクリプト)で処理するんだし。
a.phpで受けたリクエストなんかの条件?にしたがって include("b.php")と。
◆質問する時の注意 ・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す) ・ 己の行った操作、変更などを詳しく明記すること。 ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。 ・ 質問者として、態度をわきまえること。 ・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。 (PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。) ◆質問後の注意 ・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。 ・解決しなくても回答をもらった場合はお礼を言うこと。 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。) ◆回答者への注意 ・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること
>>360 フォーワードって何かわかってる?
それだったらインクルード前とインクルード後の結果が
同時にクライアントに送信されるでしょ?
されません
>>363 されるよ。
リダイレクトとフォーワードの違いはわかるの?
PHP側じゃなくて、Apache側でよければmod_rewrite使うとか
>>363 あの、インクルードとフォーワードは違うと思うけど・・・。
他の言語知ってればそんな答えにはならないよ。
367 :
nobodyさん :2012/03/07(水) 01:15:48.01 ID:428syFfx
>>362 いや、フォワードを実装するなら、そんなことにはならないよ。というか、しない。
すごくシンプルな実装をするなら
<?php
if (〜) include('a.php');
else include('b.php');
?>
mod_rewriteでリダイレクトさせたいのですが
.htaccessに
RewriteRuleをどのように書いたらいいかわかりません。
http://abc/xyz.php を
http://abc/xyz.html にしたいのですが、サイトを見てまわりましたが
わかりませんでした、
動的を静的にするもっと複雑なリダイレクトの
サンプルばかりで・・・
方法を教えてください。
372 :
nobodyさん :2012/03/07(水) 07:05:42.07 ID:WdbH+KTk
mysqlで自分のパソコンのxamppでは、新規データを登録(insert)し、その データを更新(update)するときにタイムスタンプが新たに押されるの ですが、レンタルサーバー上では、データ更新の際にタイムスタンプが 更新されません。どうしたらいいのでしょうか?
初心者はXAMPP使うな
>>372 カラムの設定に ON UPDATE が付いてなさそう
>>368 それ、インクルード。
リダイレクト、フォーワードでぐぐれ。
>>369 rewrite 書き換え前のパス 書き換え後のパス
書き換え前は正規表現になるから気をつけてなー。
引数引き継ぎたいなら、引き継ぎたい文字列が入る部分に()つけて、後ろのほうは$1とか$2とかつけてやれば引き継ぐから。
まぁ、今回はいらんみたいだが。
>>376 フォーワードはやめようぜ。 4wordですか?
あなたこそ、ちゃんと検索してどういうものか調べたほうがいいのではないですか?
遷移とか変な概念があるから混乱するかもしれませんが、やってることは
a.phpってアクセスに対して、 b.phpの内容を実行して表示するだけですよ?
>>367 Windowsのバージョンぐらい書けや
それとMAX_PATHを超えることは無理
>>378 >>379 とんちんかんな質問相手にもめるのやめようぜ。
質問者も質問を是正・補足するのあきらめていなくなったようだし。
ID出してるのいなくなったべ。
XAMPPって単語に反応するのは大抵初心者
Curlについて教えてください。
URLによってソースが取得出来るものとできない物があって困っています。
例えば下のURLだと
$ch = curl_init('
http://item.rakuten.co.jp/book/6414086/ ');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$str = curl_exec($ch);
curl_close($ch);
echo $str;
結果
301 Moved Permanently
Moved Permanently
The document has moved here.
と表示されます。
どうすればいいでしょうか?
>>383 CURLOPT_FOLLOWLOCATIONをtrueかな
リファラとかUAとかクッキーとかセットしろや
387 :
367 :2012/03/07(水) 11:57:05.66 ID:428syFfx
その後検証を続けてみたのですが、 どうやらそもそもPHP4でUTF-16のパスが使えるということが間違いだったようです...。 PHP4のファイルシステム関数にUTF-16のパスを与えると謎の既存ファイルを指すようで、 例えば、存在しないファイルでも file_exist はTRUEを返したりするようです。 お騒がせして申し訳ないです。
配列を連結する時に、joinを使うかimplodeを使うか考え出すと夜も眠れません。 どうかお助けください。
>>388 implode explodeを使うべきってマニュアルのどっかにあったけど、そのURLを出せずにすまないと思う
ってか、いまのjoinはimplodeのaliasらしい。 なのでどっちでもいいけど、implodeのほうがいいよ
>>388 joinはエイリアスです
基本的にエイリアスの使用はやめましょう
>>390 エイリアスのページに書いてあります
>>389 >>379 はそう言ってると思うのだが、あの文章だとイントネーションで
意味が変わってくるなw
>>392 ごめんね、エイリアスになる前の記憶しかなかったんだ。
397 :
nobodyさん :2012/03/07(水) 17:28:37.67 ID:mMKjJQE+
398 :
358 :2012/03/07(水) 17:29:42.47 ID:mMKjJQE+
なまえにレス番入れるんでしたね。すみません。
君がfopenに渡したのは文字列じゃない 文字列を渡したいならちゃんとダブルクォーテーションかシングルクォーテーションで囲うこと
400 :
358 :2012/03/07(水) 17:38:38.70 ID:mMKjJQE+
>>399 $counter_file = 'counter.txt';
$fp = fopen($counter_file, 'r+');
これではダメということですか?
いいよそれで。 r+ってことは事前にファイルが無いとダメだが 実行時の権限で書き込めるファイルはそこにあるの?
それも文字列を渡しているのでそれでいい
No such fileだからそもそも無いね
無い時は作るのならa とか a+で
405 :
358 :2012/03/07(水) 17:55:36.26 ID:mMKjJQE+
なるほど!ファイルがなかったのですね!ありがとうございます。 ファイルを作成してみると、先程のエラーの代わりに今度はこのようなエラーが出るようになってしまいました。 Warning: fopen(counter.txt) [function.fopen]: failed to open stream: Permission denied in C:\inetpub\wwwroot\study\counter1.php on line 10 Warning: fclose() expects parameter 1 to be resource, boolean given in C:\inetpub\wwwroot\study\counter1.php on line 28 count: エラー文で検索してみると、権限がないとかどうとかで・・・。 一応このユーザーアカウントははUACも切ってて、何の制限もないはずです。どういうことですか?。 IISやPHP.iniの設定の問題でしょうか?
IISはどのユーザー権限でphp動かすの? そのユーザーの書き込み権限をそのディレクトリに追加してやればいい
おっとファイルは事前に作ったのか ならそのファイルの書き込み権限に追加、だな
408 :
nobodyさん :2012/03/07(水) 18:17:56.99 ID:YWemLpkn
submitを1回押してactionに対してpostを複数回送ることって可能でしょうか?
そいつはjavascriptの仕事じゃないかな
410 :
358 :2012/03/07(水) 18:23:58.41 ID:mMKjJQE+
411 :
nobodyさん :2012/03/07(水) 18:27:42.78 ID:YWemLpkn
>>409 javascriptさんの仕事内容教えていただけますか?
板違い
>>410 既定とDefaultは同じ意味だ、気にせず進め、、というかもうphp関係無いなあ
414 :
358 :2012/03/07(水) 18:35:32.53 ID:mMKjJQE+
最後の画像の書き込み、変更のチェック
>>414 Windows板だな。
とりあえずエクスプローラからファイル右クリックして
セキュリティから追加でIUSR_なんちゃらをフルコンで追加してやれ
最後から4番目だったな・・・ このページの内容をやったんなら気づくとは思うのだが。
418 :
358 :2012/03/07(水) 18:48:18.65 ID:mMKjJQE+
すみません。すでにフルコントロールにしてあったようなのですが、ダメでした。 板違いということで、これ以上このスレに書き込むのはやめておきます。有難うございました。
お前ら仕事中に2chして大丈夫なのか
っていうか2chで聞かないと制作が進まないし
仕事と2chは切っても切れない関係ですよ
仕事なんてしてませんよ
423 :
358 :2012/03/07(水) 19:07:48.69 ID:???
2chが仕事だよ
おwwwwまwwwwえwwwwwwらwwwwww
php mixi ログインで検索
>>408 PHPからPOSTでプッシュすることも出来るから
一旦、なんらかの値を受け取るのをトリガーに処理かましながらでも出来るよ。
PHP POST 送信 で検索
>>425 file_get_contentsは使うなっていってんだろしねや
>>428 すいません初心者なもので・・・
どうするのが一番正しいのでしょうか?
>>429 使うな君といって、教えてくれないので無視しなさい。
で、検索したの?
>>430 検索してみたらphp mixi apiなるものがあったので
試してみようと思ってます
ありがとうございます
mixiクラスってもう使えないんですかね・・・ <?php require "mixi_class.php"; if(is_logined()){ echo "ログインしてます"; }else{ echo "ログインできてないです"; } ?>
434 :
433 :2012/03/07(水) 21:36:42.29 ID:???
上のように書くと Fatal error: Call to undefined function login() in index.php on line 4 となってしまいます;;
is_loginedがクラスのメソッドなら、 インスタンス->is_loginedとか クラス:: is_loginedとかになるんじゃねーの? エラーには is_ついてないしよく分からんね
久しぶりに思い出した まるでPHPusersMLのような質問だw
>>438 本当に初心者で申し訳ありません
インスタンスを作成してから試した所
実際のメールアドレス、パスワードを入れてもログイン出来ません
このクラスが使えないのか自分の入力が間違っているのかわからないです。
<?php
require "Mixi.class.php";
$mixi = new PHP_Mixi();
$mixi->email = "
[email protected] ";
$mixi->password = "passwd";
if($mixi->is_logined()){
echo "ログインしてます";
}else{
echo "ログインできてないです";
}
?>
を表示するとログインできてないですと表示されます
loginってメソッドあるやん is_loginはログイン中かどうか確認するためのメソッドやろ
>>440 質問の回答になってないけど、スレのルールは守ったほうがいいと思う
よそのサーバからデータ取ってくるような質問ばっかりだな。
>>440 初心者という自覚があるのなら、まずはコードを読めるようになるところからはじめるといいよ
はい、終了
( >д<)、;'.・ ファンクション
42 :nobodyさん [↓] :2012/02/27(月) 00:59:20.23 ID:??? えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
質問者ならID出せよ
いやだ
PHPerは馬鹿ばっかり。
自己紹介はいいから質問ないならお前ら黙ってな
掲示板(PHP)とtwitterを連動させようと思ったのですが、書込後にデータをtwitterに吐き出した後、掲示板が止まってフッター部分が表示されません。なにか良い方法はないのでしょうか?
require_once("twitteroauth.php");
$consumer_key = "****";
$consumer_secret = "****";
$access_token = "****";
$access_token_secret = "****";
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
$req = $to->OAuthRequest("
http://api.twitter.com/1/statuses/update.xml ","POST",array("status"=>"ツイート"));
header("Content-Type: application/xml");
457 :
455 :2012/03/08(木) 16:21:04.81 ID:???
自己解決しました!
458 :
455 :2012/03/08(木) 16:49:07.46 ID:bF3prAQQ
解決しておりません ナリスマシはご勘弁を。。。
>>457 なんかID出さない奴はもうそれでいいような気がしてきた。
460 :
455 :2012/03/08(木) 17:20:26.47 ID:bF3prAQQ
御免なさい、別板の質問スレで「アゲるなカス」と罵倒されて以来、sageで質問する習慣が… Orz
>>455 >>1 を読まないような奴は質問の仕方もクズだな
twitteroauth.phpってなんだよ
どこから入手できるライブラリから書かないと相手には通じませんよ
人に伝える努力は惜しまずに
ああ、気持ちはよくわかる。
よくわかるが、このスレでこの展開を迎えたとき、
>>455 =
>>457 であり、ID:bF3prAQQが成りすましという疑いのレスが続くことがある。
簡単に言うとIDつきでもっかい質問書いたほうがいいよ。
>>455 へのレスをするとすると、情報が少ないように思う。
少なくともそのコードは関係ないだろ htmlの途中にxml表示するとかミラクルなことやってるわけじゃないだろ?
464 :
455 :2012/03/08(木) 18:06:22.69 ID:bF3prAQQ
>>464 ちゃんと掲示板のソースは最後まで出てる?
問題切り分けてちょ。
出力htmlのソースを表示してヒントにしつつ 掲示板の止まってるとこの前後のソースを探ってみるしかない なんかエラーがあったらexitとかdieとかの処理を挟んでるんじゃないか?
サンプルはAPIで取得したxmlデータをそのままxmlファイル形式で出力するようにしてるんだろ header()の行を削除すれば解決するはず
468 :
455 :2012/03/08(木) 23:02:26.36 ID:???
自己解決しました!
42 :nobodyさん [↓] :2012/02/27(月) 00:59:20.23 ID:??? えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
470 :
455 :2012/03/09(金) 00:38:10.11 ID:???
>>470 も偽者なんだろうなぁ。
質問者消えたな。
最初からIDだしとけばよかったのにね☆ミ
日付超えること考えると鳥だけどな。
474 :
nobodyさん :2012/03/10(土) 01:46:11.17 ID:YxaN43P5
facebookアプリを開発しているのですが、ご教授願います。
参照:
http://socialmediaexperience.jp/2885 下記のサンプルプログラムに、facebookのウォールに投稿するための権限を取得したいのですが、
'scope' => 'publish_stream',
こちらをどこにどうのように記載すべきでしょうか。
<?php
$app_id = 'アプリケーションID';
$app_secret = 'アプリの秘訣';
$my_url = 'Webサーバ側のURL';
// ステップ1.ユーザーがログインしているか否かの確認
$code = $_REQUEST["code"];
if(empty($code)) {
$dialog_url = "
http://www.facebook.com/dialog/oauth?client_id= "
. $app_id . "&redirect_uri=" . urlencode($my_url);
echo("<script> top.location.href='" . $dialog_url . "'</script>");
}
// ステップ2.Facebook側からトークンを取得
$token_url = "
https://graph.facebook.com/oauth/access_token?client_id= " . $app_id . "&redirect_uri=" . urlencode($my_url) . "&client_secret=" . $app_secret . "&code=" . $code;
$access_token = file_get_contents($token_url);
// ステップ3. トークンを使用して、graph APIから名前を取得
$graph_url = "
https://graph.facebook.com/me? ".$access_token;
$user = json_decode(file_get_contents($graph_url));
echo $user->name;
?>
最近こんな質問ばっかだな いくらSNSが流行ってるからって外部APIの質問ばっかでげんなりですよ
476 :
nobodyさん :2012/03/10(土) 02:25:42.43 ID:dC1w2H2t
PHPで一番手軽に全文検索するにはどうしたらいいでしょうか?
SQLiteでも使って下さい
どういうデータ構造かわからんと答えようがない
479 :
nobodyさん :2012/03/10(土) 02:34:43.14 ID:/aJUja8G
文字列の正規表現で 「数値と英語と . と / と hoge 以外にマッチ」 というのをやりたいのですがどうも失敗してしまいます。一発での解決方法とかあるのでしょうか? \Dやったあとまた\Wでマッチング、その後ドットでマッチングと物凄く効率悪い方法しか思いつかなかったのですが
別スレ作れよもう
わざわざFacebookの仕様を調べて答えろと? HTTPクライアント作成したくても自力で出来ないなら諦めろよ
>>481 =484なの?
何で煽ったんだろ。
>>475 の感想が気に入らなかったにしても、質問者じゃないならスルーすればおk
487 :
nobodyさん :2012/03/10(土) 06:45:55.14 ID:Tk4y3EFU
今質問しても大丈夫でしょうか?
今は荒れてるからあと6時間待て
一言ですむ。 PHP用のAPI使え。devサイトで提供してるんだから。
むしろ今質問しろ
491 :
nobodyさん :2012/03/10(土) 06:57:05.40 ID:Tk4y3EFU
改行を含むtextを読み込み、そこの特定の行から〜最後までを取り出したいのですが (例:50行あるtextから46行〜50行までの取り出し) この場合fileだと無駄に全部取得してしまうのでfgets()やfopen()などのほかの関数を使ったほうが良いと気づきました この動作を行う場合最適なtextファイル読み込み関数は何になるんでしょうか?
その程度の処理ならfile関数でもほとんど変わらない。なんでもいいよ。
>>491 最適って最速ってこと?CPU負荷が最少ってこと?メモリ使用量が最少ってこと?トラフィックが小さいってこと?保守性がいいってこと?
プログラムするならあいまいな言葉は使わないほうがいいよ
494 :
nobodyさん :2012/03/10(土) 07:10:09.93 ID:Tk4y3EFU
それで?
たいして計算するような処理じゃないんだしCPU負荷なんてそんなかからんでしょ 気にする必要ナッシン
498 :
nobodyさん :2012/03/10(土) 09:13:40.01 ID:NmPFatN8
php4 で、これって同じ? $this->親クラスのコンストラクタ; parent::親クラスのコンストラクタ; ※php4なので親クラスと子クラスではコンストラクタ名は異なります。
APIなんてしっかり使い方が記された公式ドキュメントがあるじゃん それもよまないで質問するなよ
502 :
nobodyさん :2012/03/10(土) 18:49:41.14 ID:ZtiXTycw
if($_POST){ } なにかしらPOST が取得できたら TUREという理解でいいんですか
そうだけど if($_SERVER['REQUEST_METHOD'] === 'POST') のほうがしっくりくる
感覚論出たw
505 :
nobodyさん :2012/03/10(土) 19:38:52.62 ID:Y036jPvy
アメブロ等の検索システムってどうやってphpで実装するのでしょうか? なにか、有名なライブラリ等はあるのでしょうか?
>>505 $sql = 'select * from table where content like %' . $word . '%';
507 :
nobodyさん :2012/03/10(土) 19:50:14.78 ID:Y036jPvy
たぶんデータベースを知らないんじゃないか?
MySQLのお勉強をしてくださいね
はいなー
Tritonnを使いなさい
516 :
475 :2012/03/11(日) 00:27:37.57 ID:???
分かりません。 ごめんなさい これでいいんでしょ
質問した奴はよっぽど悔しかったんだな
だろうな。質問したらなんでも得れるとでも思ってるんでしょうな。 典型的なゆとりっすな
いつものやつだろ ほっとけ
520 :
名無しさん :2012/03/11(日) 17:29:34.13 ID:pFTcjAB+
さっきちょっと検索の醍醐味が薄れてきた気分になった。
521 :
505 :2012/03/11(日) 20:03:10.11 ID:6FUbVztn
アメブロ等の検索システムは、記事のタイトルと本文を データベースに記録してあり、それの検索をphpでlikeを 使い検索ということでしょうか?
523 :
nobodyさん :2012/03/11(日) 20:32:11.92 ID:Ul7q+mz0
525 :
nobodyさん :2012/03/11(日) 20:41:25.72 ID:Ul7q+mz0
>>500 想像がつく範囲で試しても、想定漏れがありそうで怖いので聞いてみました。
(A)「parent::method」という書き方は(B)「class::method」という書き方に似ていて、
(B)だとオブジェクト変数にアクセス出来ないので、それと同じ制限があるのかと
思いましたが、試したところ、その制限はありませんでした。
なので
「$this->親クラスのコンストラクタ」と「parent::親クラスのコンストラクタ」は
同じ動作なのかと思ったのですが、一応、識者に聞いてみたかったのです。
>>501 違うのですね。
どこが違うのかポインタ教えていただけるとありがたいです!
530 :
498=523=525 :2012/03/11(日) 20:49:14.66 ID:Ul7q+mz0
>>524 サーバー構成と応答の許容時間によります。
「like '%xxxx'」のように、検索文字列の前に「%」を付けると索引が使われない
ため、テーブルを全件見に行かないといけなくなり、件数やサーバーの能力に
応じた時間がかかってしまうためです。
索引に頼ることができないため、データベースのデータが確実にメモリーに
キャッシュされるチューニングをした上で、メモリー容量まではある程度高速に
検索ができますが、それを超えると極端に遅くなっていきます。
531 :
498=523=525 :2012/03/11(日) 20:57:36.15 ID:Ul7q+mz0
>>502 悪くは無いですが、if(isset($_POST)){} じゃないとinfoログが出ます。
532 :
nobodyさん :2012/03/12(月) 00:31:59.22 ID:JEbP5xt5
for文を使いループで一つ2行あるテーブルを作るにはどうすればいいのでしょうか? -------- -------- ------- -------- | | | | | | | | | | | | | | | | -------- ------- --------- --------- -------- -------- ------- -------- | | | | | | | | | | | | | | | | -------- ------- --------- --------- このように、4つめになったら改行をする、と言う風にしたくて、 一応それはできたのですが、 -------- | | | | |-------| | | |-------| こんな感じに一つ一つを二行にして、横に並べ4つ目で改行、とするにはどうすればいいのでしょうか? 下手で分かりにくいかも知れませんが、教えてください、お願いします。
>>530 理由じゃなくて目安を聞いてるんだけど・・・。
コンピュータと話してるんじゃなくて人間と話してるんだぜ。
またお前か
535 :
498=523=525 :2012/03/12(月) 01:08:28.65 ID:pwdc/TOi
>>533 目安を書いてますよ。
データベースサーバーがキャッシュ可能なメモリー容量までです。
レコード長でわり算してみてください。
あなたの環境のことは私にはわかりません。
メモリーが500GByteでレコード長が1byteなら500G行までです。
536 :
498=523=525 :2012/03/12(月) 01:14:20.88 ID:pwdc/TOi
>>532 テーブルというのはHTMLのテーブルですか?
良くわからないので、欲しい結果をHTMLで書いてみてはどうでしょうか。
537 :
nobodyさん :2012/03/12(月) 01:18:06.28 ID:Ik+kB/Cp
PHPでオブジェクト指向プログラミングを行うとき、 標準関数群はどのクラスに属していると考えればよろしいのですか?
>>530 中間一致でインデックスが使われないDBに限定した話ですかね。
googleページを解析してたらphpエディタが固まった サクラエディタは何ともないのに あいつらやっぱり変態だわ
>>538 ほとんどのDBは
中間一致でインデックスは使われません。
だから特殊なDBが必要になる。
541 :
498=523=525 :2012/03/12(月) 01:30:42.38 ID:pwdc/TOi
>>538 標準的なRDBMSの場合で書きました。
「中間一致でインデックスが使われないDB」ではないDB、
つまり全文検索機能がある場合(使用する場合)は、
もちろんこの限りではありません。
という意味で、
>>523 で、「「全文検索」で情報を漁ってください。 」と書きました。
>>536 PHPで書いたソースは、めちゃくちゃかも知れませんがこんな感じです。
<?php
$data=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
echo "<table border>" . "<tr>";
for($i=0,$n=count($data);$i<$n;$i++){
if (($i % 5) == 4) {
echo "</tr>"."<tr>";
} else {
echo "<td width=\"160\">" . "あ" ."</td>";
}
}
?>
<html><body>
<table border>
<tr><td>タイトル1</td><td>タイトル2</td>
</tr><tr><td>あ1</td><td>あ2</td>
</tr></table>
</body></html>
欲しい結果は、画面表示だけみればこのように、上下セットでとなるものを作りたいです。
そしてループで横に並べ4つめで改行、と言う風にしたいです。
>>542 <hr>で区切るか<br>で改行とか装飾は<span>でっていうのがシンプルで管理も楽かなーと思う
<tr><td><span class='title'>タイトル1</span><hr>あ1</td><td>タイトル2<hr>あ2</td>
544 :
498=523=525 :2012/03/12(月) 02:28:01.78 ID:pwdc/TOi
>>542 こんな感じ?
<?php
$data=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
$i = 0;
echo '<html><body><table>' . "\n";
foreach($data as $value)
{
$i++;
if(($i % 4)===1){
$line1 = '<tr>';
$line2 = '<tr>';
}
$line1 .= sprintf('<td>タイトル%s</td>', $value);
$line2 .= sprintf('<td>あ%s</td>', $value);
if(($i % 4)===0 or $i===count($data)){
echo $line1 . '</tr>' . "\n";
echo $line2 . '</tr>' . "\n";
}
}
echo '</table></body></html>' . "\n";
?>
今yum死んでる?アップデートもインストールもできない
546 :
545 :2012/03/12(月) 16:51:27.16 ID:???
すみません。誤解な上にスレチでした。
はやてのようにあらわれて
548 :
nobodyさん :2012/03/12(月) 18:01:36.44 ID:JEbP5xt5
いいってことよ
剰余の計算で===とかw
いくつかの突っ込みどころの中でそれを選んだ
>>550 はすごいな
比較演算子は、そっちで書ける限りそっちのほうが早いし間違いも無い。 笑うのはありえない。
===ではなくて ==と書きたいこともあるだろう? そうでなくて、厳密な比較でいい場合はってこと。
==で書いてるコードって今時あんの?
PHP以外というかコンパイラ言語なら==が普通だろ PHPerルール押し付け(・A・)イクナイ!!
誰も他の言語の話してないしよ PHPの==と===の違いを理解してから言ってくれ
>>554 いやだから何が早いのかさっぱり分からんが。
判断速度が?記述速度が?処理速度が?
理解してなきゃコンパイラ言語と言わんわ
for ($i=0;$i<count($array);$i++) とかもそうだな 外に出せとかいうやついるよな CやJava使いが簡単に使えるような仕様にしてんだから そいつらにすれば余計なお世話だ
>>558 あいまいな比較は、厳密な比較より遅いってだけの話だよ
遅いっていっても100万回ループしてやっと差がつく程度のレベルだろ
100万年ROMってやっと違いに気付くレベルの差か
>>560 CやJavaと同じ仕様で考えるなら===を使うけど
速度云々の問題では
=== の方が速いし、何より型違いによるバグに気付きやすいなるでしょ
勉強になったわ
使うなリストに入れとけ ==は使うな
別に遅くてもええわ 俺の糞だし
571 :
nobodyさん :2012/03/13(火) 00:53:05.78 ID:qKbE02zH
パーミッション設定について、ローカルサーバを立てて自分の パソコンでphpやcgiを動かしてるだけなら特に意識しませんでしたが、 レンタルサーバーはパーミッション設定により動かなかったりします。 phpは644で動いてますが、cgiは644では動かず700にする必要が ありました。phpとcgiの正しいパーミッション設定を教えて下さい。
PHPer、ダメポ。
>>573 10万回くらいまわすテストしてみれば分かるかと。
1秒も変わらないと思うけど。
>>571 PHP関係ないよね
===の話で終わりか。
>>571 webサーバの設定次第だから
レンタルサーバの業者に聞けw
っていうか、普通はどっかに書いてある。
>>571 CGIなら実行権限がいる。
mod_phpなら実行権限はいらない。
579 :
578 :2012/03/13(火) 07:12:42.52 ID:???
あ、嘘つき呼ばわりしてごめん CやJavaで===使うっていってるのかとおもた 曖昧な比較ができるのがPHPのいいところ ただし使う人はちゃんと仕様を理解しないとだめだね
580 :
nobodyさん :2012/03/13(火) 07:21:37.09 ID:l22JItfE
他言語で 変数A.関数(変数B) っていう書式で関数使うノあると思いますが 同じのをPHPで書く場合は 関数(変数A, 変数B) になるんですよね?
581 :
578 :2012/03/13(火) 07:31:55.39 ID:???
性能悪いPCでまわしたら0.05秒差がついた パフォーマンス云々いうほどのものではないのにはかわりないが・・・ $start = microtime(true); $a = 1; for ($i = 0; $i < 1000000; $i++) { if ($a === $i) {} } echo microtime(true) - $start;
>>580 オブジェクトでしょ?
>>581 1回あたり0.00000005秒の違いか
552の限界までパフォーマンスを追及する姿はかっこいいね!
型の違う$a = '1'での比較はどうだったのかと一応突っ込んでおくか
2倍と言ったら聞こえはいい
パフォーマンス云々の問題にすり替えるなよ
>>571 ほれみろWindows+XAMPPしか使ってこなかったろ
今すぐ仮想マシンを用意してubuntuでもdebianでも何でもいいからいれろ
そもそも === が必要になることがこの言語のいびつさを物語っている
== 初心者向け === ベテラン向け
== ベテラン向け === 初心者向け
必要な場面で必要なもの使えばいいだけやん 議論することでもなんでもないが ちなみに===演算子はJavaScriptにもある
最初から===を使っておけば型の比較によるバグは起こらない ==を使うのは初心者だけにしておけ
>ちなみに===演算子はJavaScriptにもある インタプリタにはほとんどある もしくはそれに類する関数とか(JavaやC#でいうString.equalsのようなもの)
一歩上を目指したい人の為の使うなシリーズ ・外部サイトにアクセスするときfile_get_contentsは使うな ・比較に==は使うな ・エイリアスは使うな ・非推奨関数は使うな ・XAMPPは使うな
記述速度もそうだし、便利だから使えばいいじゃん。
問題はパフォーマンスにもそんな差が出ないとわかったところで
使う上ではちゃんと仕様を把握すればいいじゃんって話じゃん。
PHPerがくそだくそだって言われる最たるところは、ちゃんと仕様や内容を
把握した上でスクリプトくまねーところだろ。
>>581 明示的に一度==のときにstringで放り込んでから比較するとどーなる?
>>598 による初心者講座
・file_get_contents推進します。効率なんて気にしてはいけません。UAもクッキーも送信できるのでおすすめ。
・比較に==をジャンジャン使いましょう。型の比較、特に""とnullの比較なんて気にしてはいけません
・エイリアスの使用を広めてあげましょう。自分が好きな関数名で書くのがいいですよ!
・非推奨関数なんて気にせず使いましょう。皆が使えば怖くない!
・XAMPPを積極的に導入しましょう!開発環境に時間を費やしてはいけません。本番と同じものを用意するのはドMがやる作業です。
必死
さりげなくfile_get_contents追加すんな
なんでfile_get_contentsいかんの?
curlのほうがパフォーマンス良&高機能
file_get_contntsは機能が弱いのにcurlより遅い
strpos($s, $c) == false こう書いちゃう人いそうだな!
d、そうか。パスワードとかクッキー使って相手にログインして、って 時にはcurl使ってるけど、ただ単に公開のhtmlとか取ってくる時は file_get_contents使ってるわ。
ローカルのファイル丸ごと飲む以外にfile_get_contents使う人なんているんですか。
phpでパフォーマンスうんぬんはナンセンス。 パフォーマンスなら別言語をどうぞ。
610 :
nobodyさん :2012/03/13(火) 14:12:03.48 ID:lpLFUoKU
windows7を使って以下のようにcmdからphpを起動しています cmd.exe /k C:\php\php.exe "C:\phpファイル.php" この状態で、コマンドプロンプトからテキスト入力を受け取るにはどうしたらよいのでしょうか。 "C:\phpファイル.php"のコードを実行させつつ、キーボードから入力された値をscanf的な関数で取得させたいので php -aで使える対話シェルはちょっと違います。
>>610 標準入力 PHPでググよろしね。
Linuxがどうとか出てくるかもせんけど、Winでも同じあるね。
fgets(STDIN);
613 :
498=523=525 :2012/03/13(火) 15:24:54.81 ID:mq2kKsmo
>>550 >剰余の計算で===とかw
どのへんが面白いんですか。
>>551 >いくつかの突っ込みどころの中でそれを選んだ
>>550 はすごいな
ほかにどんな突っ込みどころがあります?
>>554 >===ではなくて ==と書きたいこともあるだろう?
ないですねぇ。
「==」って書いたら、後で見直した時に
何か理由があるのか単なる書き間違いなのか、考えなくてはいけないので面倒です。
同じ理由で、変数等の展開が不要な文字列のクォーテーションは必ずシングルで、
必要な場合だけダブルを使っています。
読みにくいので、文字列の中に変数を入れること自体あまりせずに sprintf を
使うことが多いですけどね。
614 :
498=523=525 :2012/03/13(火) 15:28:36.89 ID:mq2kKsmo
>>608 >phpでパフォーマンスうんぬんはナンセンス。
ですよね。
十分速いし、遅い原因は大抵、DBや外部要因やPHPとは関係のないプログラミング技術の問題ですから。
まぁ、大きなフレームワークはキャッシュを使わないと結構遅いですが。。
616 :
498=523=525 :2012/03/13(火) 15:35:11.51 ID:mq2kKsmo
>>590 >>591 == 「===」の存在(またはデメリット)を知らない人向け、または「=」1文字を入力する時間を惜しむ超絶緊急事態
=== 上記以外の人向け
サンデープログラマとか自営とかなら
>>613 みたいな考えでいいんじゃね?
618 :
nobodyさん :2012/03/13(火) 15:36:43.78 ID:AVn4z6l2
データベースから画象を生成しているのですが、 生成できなかったときの事を考慮して if(画象が存在していたら){ echo 画象; } という処理が妥当ですか? 他に何か良い方法はないでしょうか。
デフォルトで遅いからパフォーマンスは気にしなくていいよ。
うちのデータベースでは画像生成できないからなぁ
生成できなかったらダミーの別の画像出すだろ
try{ // 画像生成 }catch (e Exception){ exec('shutdown -h now'); exit; }
遅いので、ちょっとの工夫で数倍早くなることもあります。
>>618 無いとき、どうしたいのですか?
あと、象さんは違うと思います。
>>620 えっ?
可読性を高める為に
コーディングルールとかあるだろ?
>>616 つまり498===523===525ということか
なんかCスレのQZみたいな人がいるなぁ
他の板の住人の事を堂々と言える人って…
>>626 可読性のために、提供されている演算子を捨てろと
631 :
(498===523===525)===(498=523=525) :2012/03/13(火) 16:01:34.11 ID:mq2kKsmo
632 :
nobodyさん :2012/03/13(火) 16:04:19.92 ID:AVn4z6l2
>>625 無いときは非表示で。
象さんは、今初めて気が付きました。
今、開発中のソース見直してみたら
"画象をアップロードしてください"とか
"画象が挿入されていません!"とか
いたるところがパオーン
633 :
(498===523===525)===(498=523=525) :2012/03/13(火) 16:07:55.10 ID:mq2kKsmo
>>617 >>626 んー、コーディングルールがあるなら、「==」なんて使えないでしょうし、
クォーテーションの使い方まで定めてコーディングルールにすることあるかな。
>>632 非表示って、呼びだしてる側は<IMG SRC="〜 使ってんじゃないの?
画像だけ表示してるならまあ間に合うか。
637 :
(498===523===525)===(498=523=525) :2012/03/13(火) 16:12:59.15 ID:mq2kKsmo
>>634 同意。
===は==よりも、パッと見で=と区別しやすいところ。意外と重要。
>>630 は?だれが演算子を捨てろと書いた?
>>613 の 「==」って書いたら、後で見直した時に 以降
自分が面倒とか自分が読みにくいとかのくっだらない理由を言える
サンデープログラマなら良いんじゃねーの?
639 :
(498===523===525)===(498=523=525) :2012/03/13(火) 16:35:49.76 ID:mq2kKsmo
>>638 「自分が面倒」ってことは、開発チームにとってコストだということですよ。
それ以前に、今どきPHPの「緩やかな比較」を使うエンジニアなんていませんが。
そんなんやってるやついたら、ビンタです。
こんな話題で盛り上がれるって素敵やん
>>638 えっと、サンデープログラマ()なら==でいいと思います
複数人で作業するなら===でやらないと型のチェックの緩さによるバグを生みます
型のチェックを気にするくらいならphp使うな。 緩やかなのはそもそも言語仕様だろ。
まあそこで意地になって==で使っててくれよ 本業じゃないなら別にそれでいいから 会社に入ってそんな緩いコード書いてたら肩身の狭い思いをすることになるし
ところで 誰が==に拘っているの?
お前はROMるか過去レス読んでろ
>>645 なんでPHP?
はじめから型が厳しい言語の方が良いのでは?
PHPだから緩い比較しか使っちゃいけないみたいだな
== 二統一しとけ
ニニ
652 :
(498===523===525)===(498=523=525) :2012/03/13(火) 17:49:43.69 ID:mq2kKsmo
Subversionのpost-commit hookでこんなのを設定しとけばいいかも。 exit (preg_match('/[^=]==[^=]/', $source)===0) ? 0 : 1;
===使うのはstrposとか返り値に0やfalseが返ってくる関数使う時 あとは仕様を理解してれば緩やかな比較で問題になるケースはない if ($a === null || $a === 0') なんて書きたくないしこの条件の時はStringやbooleanは考慮しなくていいので 単に!$aでよい
>>646 >>649 いや、どーも==でもいいじゃん。ちゃんと仕様理解してれば ってのと
===じゃなきゃダメだろ って別れ方っぽい。
別に==にこだわってるのっていないだろ。
>>653 一人でやるなら自由
複数人で作業するなら統一しないとダメ
誰が読んでも分かるコードにしなければならない
動的型付け言語で型を気にしなきゃいけないってのは本末転倒なのでは
気にするってほどの労力じゃないやろwwwwwwwwww
さっきから複数人、複数人って言ってる奴。 比較の仕様をコーダに覚えさせる気がないなら作業させんな。 バグの元だから。
設計書にかいときゃいいんだよ
このスレのコーディング規約つくろうぜ
グローバル空間に関数や変数置くの禁止な
>>638 可読性によって===と==を使い分けるルールができるんだよね。
必要な場面であっても、いずれかしか使えないって事態が起こるんじゃないの。可読性のために。
663 :
(498===523===525)===(498=523=525) :2012/03/13(火) 21:10:27.58 ID:mq2kKsmo
>>653 >if ($a === null || $a === 0')
>なんて書きたくないし
そういう比較が必要な設計が問題かもしれませんね。
>>658 >比較の仕様をコーダに覚えさせる気がないなら
緩い設計や実装のために「比較の仕様をコーダに覚えさせる」みたいなことが
必要になるんだと思います。
変数やメソッドが戻す値はソース(PHP自体や一般のライブラリなら仕様書)を
見ればすぐに分かるのだから、比較の仕様は覚える必要はないはずです。
逆に、ソースを見てもすぐにどんな値を戻すか分からない設計は問題があります。
とかマジレスをしてみる。
このすれを見ていて思ったこと === null がスルーされていることw is_nullを使うべきじゃないかなーってw
665 :
(498===523===525)===(498=523=525) :2012/03/13(火) 21:46:02.31 ID:mq2kKsmo
>>664 どうも==と===の話しか目に入らないみたい。
>>551 は俺だけど、コード書いた本人と、俺以外からツッコミはいらないんだもの。
使うべきじゃないしis_nullとかいらないし
>>665 ,667
$a === null と is_null($a) の違いを教えてもらえますか
レスがぱたっと止まってしまったね
型ゆるゆる言語で何語ってるの? だったら固い言語に変えればいいのに。 そもそも名前空間貧弱、オブジェクト指向性も中途半端な言語で 複数人開発はやめといた方がいい。向いていない。
そうだねw is_nullが===より緩いとかいったら恥ずかしくて出てこれないと思うよw
==、=== どっち使おうが遅い。
is_nullとかマジでいらんことは確か
関数を通す必要がない
>>676 多言語知っている人間にとって意味不明のPHP特有の乱立機能。
>>676 あなたが他の言語使うときはis_null相当機能を探すわけだね。
うーんw
いらない理由を聞いていたけど
実行速度やis_nullに弱い部分とかあるとかそんな理由があるのかと思えば
>>677-679 …w
自分の無知さを晒してないでベンチぐらいとれよ 関数より式のほうが早いに決まってんだろ
is_nullごときだと、内部の処理が等価ってこともありえるがな。
どっちにしてもphpは実行速度は遅いからどうでもいいよ。 実行速度にこだわるなら別の言語へどうぞ。
違う言語での話だが 言語で持っている関数と同等の処理をインラインアセンブラで最速になる様に書いて コンパイルした際バイナリエディタで比較したら一致したって事はあるらしいな 今はテストする環境は無いが仕事場に行ったら試してみるか
PHPが遅いのは間違いないからどうであろうと大差ない。
686 :
(498===523===525)===(498=523=525) :2012/03/14(水) 00:43:24.46 ID:SRtAsTeP
間違っていました。
お詫びして訂正いたします。
PHPでは以下の3つの状態がNULLで、
$a=NULL; // $a
$a; // $b
// $c(未定義)
上記の状態でTRUEを戻し、それ以外でFALSEを戻すという点で、
「$var===NULL」と「is_null($var)」は同じです。
そして挙動が反対という点を除き、「isset($var)」も同じでした。
>>668 >>669 >>670 大変失礼いたしました。
ほとんどisset()も使いませんが、連想配列を動的に使う時だけ、
「notice Undefined variable」が出ないようにisset()を使います。
===を使うのでis_null()を長らく使っていなかったのですが、緩かったからだと
思い込んでおりましたが、単に必要が無かったからでした。てへっ!
でも===nullだとis_null()より2バイトお得なので、===nullの方がいいと思います!
688 :
(498===523===525)===(498=523=525) :2012/03/14(水) 00:48:56.98 ID:SRtAsTeP
>>686 ちょっと書き間違えてた(二行目 $a → $b)。
>PHPでは以下の3つの状態がNULL
$a=NULL; // $a
$b; // $b
// $c(未定義)
空白明けるから同じじゃね
パフォーマンスにこだわるなら別言語
691 :
(498===523===525)===(498=523=525) :2012/03/14(水) 00:51:15.44 ID:SRtAsTeP
可読性のためにis_null使ってる
693 :
(498===523===525)===(498=523=525) :2012/03/14(水) 01:01:44.20 ID:SRtAsTeP
>>692 is_null($var) より $var===NULL の方が可読性は高いと思うなぁ。
>>686 変数ににnullをセットissetしたら何が戻ってくるのかな〜?とw
真偽が反対だけど同じと言ってもいいのかな?w
あっ使わなければ問題ないのか?w
このスレ恥ずかしい。
>>680 C言語やJava言語の経験者にis_nullの効能を説明してくれない?
697 :
(498===523===525)===(498=523=525) :2012/03/14(水) 01:18:51.01 ID:SRtAsTeP
>>694 >変数ににnullをセットissetしたら何が戻ってくるのかな〜?とw
$x = null;
var_dump(isset($x)); // bool(false)
> 真偽が反対だけど同じと言ってもいいのかな?w
真偽が反対以外、同じですね。
698 :
(498===523===525)===(498=523=525) :2012/03/14(水) 01:27:40.70 ID:SRtAsTeP
WEBアプリにおけるPHPの遅さは、 DBやネットワークなどの外部要因、 アーキテクチャーやアルゴリズムなどの最適化余地と比べたら、 無視できるレベル。 よって無罪。
>>698 単なるインクルードで遅さを感じるけど・・・。
>>698 symfony使ったことある?
デフォルト状態でスゴイ遅さですが・・・。
>>698 CakePHP使ったことある?
デフォルト状態でスゴイ遅さですが・・・。
>>698 localhostでも遅いのですが・・・。
痛々しいな
そりゃコンパイラとおす言語に比べたら遅いのは認めるが 必要十分な速度だと思うけどな。 近くのコンビニまでフェラーリで行くより自転車のが便利みたいなもんで。 と、釣られてみた。
むしろphpだから速度気にして === 使ってるよ 少しでも速いほうがいいからね
707 :
(498===523===525)===(498=523=525) :2012/03/14(水) 01:59:30.28 ID:SRtAsTeP
>>699 PHP以外の言語だと速いのですか?
>>700 symfonyは、3サイトくらい作りました。
symfonyは遅いですよ。
symfony規模のフレームワークをPHPなどのインタープリタで作ったら、他の言語でも遅いでしょう。
キャッシュを前提としたフレームワークですから、面倒ですがキャッシュの設定をしてください。
アクセラレータも必須です。
>>701 CakePHPは使ったことがないです。
アクセラレータを使い、メモリーに余裕があっても遅いのでしょうか。。
>>703 PHP以外の言語だと速いのですか?
>>707 phpは遅いです。
facebookの失敗例が良い例です。
>>701 CakePHPに限らず、
DBから取得したデータを簡単にキャッシュできないので遅いです。
710 :
nobodyさん :2012/03/14(水) 02:17:55.05 ID:rNta1GYa
PHPExcelをLinux環境に入れてテストしたのですが、 開く時ファイルが破損している旨が表示されます。 原因は何が考えられますか?
>>698 >>545 みたいなコード書くクセがついてりゃPHPも本来の速度出せないよ。
無駄に遅く動くコードを書いて、PHPは遅い!って喧伝してもなぁ。
せめてちゃんと書いて、それでもやっぱりこれだけ遅いんだ!と主張してほしい。
結果として遅いというのは明白だけれど、あまりにも稚拙。
>>710 Excelファイルを開くときに出るのだろうか。
Excelファイルの形式っていっぱいあるよ
714 :
(498===523===525)===(498=523=525) :2012/03/14(水) 02:51:00.77 ID:SRtAsTeP
>>708 facebookの規模を考えれば激速だと思いますが、どの辺が失敗例なのでしょう?
>>709 DBを使う限り遅いから、PHPが遅いわけではないという意味でしょうか?
>>714 facebook hiphopでぐぐりなさいな。
716 :
(498===523===525)===(498=523=525) :2012/03/14(水) 03:01:55.83 ID:SRtAsTeP
>>711 マテ。
初心者向けに
>>542 のコードを元にした分かりやすい動くコードを示したものに、その言い方はないだろ。
そして「遅い」なんて言ってなくて、「特に遅くない」と言っているだけ。
それに
>>544 のコードは、WEBアプリとして見た場合、さして遅くなる要因はない。
なんなんだよこのスレw
718 :
(498===523===525)===(498=523=525) :2012/03/14(水) 03:05:29.31 ID:SRtAsTeP
719 :
(498===523===525)===(498=523=525) :2012/03/14(水) 03:08:13.74 ID:SRtAsTeP
>>715 知ってるよ。
HipHop以前のfacebook使ったことある?
アクセス数は今ほどでは無かったにせよ、十分に大規模、かつ、十分に速かったよ。
測定すると、is_nullは===nullに比べて4倍遅かった。ただし、検証環境がPHP5.1.6なので今はどうか不明
ヌルヌル動きます nullだけに
PHP5.3.3にして試したら3倍くらいに解消されてた。 なにげに関数呼び出しのオーバーヘッドが減ってたのかな。
723 :
(498===523===525)===(498=523=525) :2012/03/14(水) 03:28:39.65 ID:SRtAsTeP
>>723 ごくわずか。
何で調べたかっていうと、内部的に同じ動作になるのかどうかがちょっと気になったので。
725 :
nobodyさん :2012/03/14(水) 07:53:14.19 ID:rNta1GYa
>>713 レスありがとうございます。
Excel開くとき出ました。
ファイル形式はExcel5?指定。Excel2003で開きたいのです。
PHPExcel使うのにZipの設定がいるみたいで
PHPの設定見るとZipオプションが付いてなかったので
オプション付けて再インストールしたらファイル破損の
メッセージが出なくなりました。
726 :
nobodyさん :2012/03/14(水) 08:16:57.12 ID:CYW9Bweb
phpで文字列が存在するかどうかの条件分岐で '””のような空文字だったらfalse、'0'だったらtrueとやりたいのですが if($hoge || $hog ==='0') とやるしかないのでしょうか?
>>726 nullだった場合や空の配列だった場合やtrueやfalseが入っている場合は?
728 :
nobodyさん :2012/03/14(水) 08:24:00.21 ID:CYW9Bweb
>>727 null→false
他の空の場合もtrueもfalseはどっちでも大丈夫です
issetだと空文字も0もtrueになってしまうので空文字と0の差をどうしたものかと
> phpで文字列が存在するかどうかの条件分岐で > '0'だったらtrueとやりたいのですが 考え方を変えるなら ”文字列に長さがあるならば” ってことかの?
731 :
(498===523===525)===(498=523=525) :2012/03/14(水) 08:34:46.36 ID:SRtAsTeP
>>726 if($hoge === ''){
return false
}
else if($hoge === '0'){
return true
}
else{
// お好きなように
}
へーstrlenってtrueは1でfalseは0を返すんだ 初めて知った
734 :
nobodyさん :2012/03/14(水) 09:10:22.39 ID:vFLnVtDq
いろいろとありがとうございます!
>>730 のやり方だとうまくいったんでコレで試してみます
>>722 自分も計測してみた
VM ESXIの仮想環境
PHPバージョン:5.3.3
===が倍速い
100万回ループをそれぞれ5回計測して
=== COMP:0.12185192
is_null COMP:0.24702406
=== COMP:0.11307788
is_null COMP:0.24555087
=== COMP:0.11323190
is_null COMP:0.24664307
=== COMP:0.11317492
is_null COMP:0.24571705
=== COMP:0.11359096
is_null COMP:0.24549198
100万回で0.1秒差だからごく普通にスクリプト書いたら誤差で収まるんだろうね
ESXI全体として見た場合の負荷が3%弱ってのも驚いた
==と===兼用派と===一筋派
あと === と == も比べてみたけど誤差で収まる
GPLだのOSLだのライセンスの特徴がよく分からないので 何が許されて、何が禁止されるのか分かりやすい表か なんかないですか? できれば GPL OSL MIT hoge ◯ × ◯ hoge × × ◯ みたいになってるのがいいです。
>>719 HadoopはPHPですか?
facebookの基幹は昔からPHPじゃないはずですよ。
スレタイ読めないバカはスルー
>facebookの基幹は昔からPHPじゃないはずですよ。 それはどうかな? 中の人に聞かないとわからないよ youtubeも初期のころはPHPでやってた気がするが
743 :
739 :2012/03/14(水) 11:34:58.58 ID:???
良い表が見つかりました!
ちょっと読めば、表なんぞ作れないことがわかると思うがな。 共通した項目なんぞほとんどなくて、○×で済むようなもんじゃないし。
>>742 facebookはHiveをHadoopプロジェクトに寄贈したの知っている?
寄贈したのは2008年だからずいぶん前から基幹はPHPじゃないみたいよ。
746 :
739 :2012/03/14(水) 12:25:31.23 ID:???
>>743 見つかってません、なりすましはやめてください!
引き続き、良い表があれば教えてください。
メシ食ってきます。
荒らしか
748 :
739 :2012/03/14(水) 12:27:23.18 ID:???
やっぱり見つかりましたのでもういいです。
>>747 >>1 読んでない奴への対処法が実践されてるだけじゃね?
なりすましされてまだ変わらんとは相当に低脳な質問者っぽいが。
質問でも回答でもない荒らしが、IDが出てないとはいえスレ通り質問してるやつに文句とな。
753 :
(498===523===525)===(498=523=525) :2012/03/14(水) 13:28:41.72 ID:suCVTKUm
>>740 >>742 >>745 facebookがPHPかどうかという流れで、HadoopとかHiveとか
データストアの話がでてくるのはなぜですか?
>>750 ID出てなきゃ、スレ通りじゃないだろ
勝手にルール変えんなハゲ
スルーしないやつも荒らし
757 :
nobodyさん :2012/03/14(水) 15:02:52.82 ID:MUSukvI8
一致の確認で === を使うのは、 == よりも正常値を限定するのに有用だと理解できます。 逆に不一致の確認では、 != を使う方が !== よりも正常値を限定できるように 思えるのですが、この考えは間違っていますか?
758 :
(498===523===525)===(498=523=525) :2012/03/14(水) 15:06:56.44 ID:suCVTKUm
>>754 そういう話だと、PHPで完結するものの方が少ないから、PHPが遅いという話は
意味がなくなりますね。
それこそ、MySQLの複数台構成とか、シャーディングとか、キャッシュサーバーとか、
そういうアプリとしてのアーキテクチャーの話になってくる。
まぁ実際、中規模以上のサイトで速い遅いというのは、その部分の話なわけで、
フロントエンド(PHPなど)の言語が速い遅いなんていうのはほとんど関係がない。
自分も中規模以上のサイトをある程度経験しているので、速い遅いという話だと
そういう観点しか無かったりします。
中規模以上のサイトを経験していてあのコードとかあの知識かよ…終わってるだろ…
>>757 それで合ってるけど、それを認めたくない一部の人間がここで騒いでるだけ
761 :
(498===523===525)===(498=523=525) :2012/03/14(水) 15:22:42.80 ID:suCVTKUm
>>757 そもそも、「緩い比較」が必要な「緩い値」となるコードが微妙です。
>>759 具体的にご指摘を!
<?php ?>って最後の?>はつけなくてもいいの?
764 :
(498===523===525)===(498=523=525) :2012/03/14(水) 15:33:16.45 ID:suCVTKUm
>>762 付けなくても動く。
付けて、その後に無駄なスペースがあると、ヘッダー出力やセッション開始で
問題になったりするから付けるな、という人達もいる。
僕はつけてる。
5人です
767 :
(498===523===525)===(498=523=525) :2012/03/14(水) 15:51:41.32 ID:suCVTKUm
言語は、C少し、COBOL、Java、ASP少し、Perl少し、PHP 少し その他は、 Oracle、SQL Server、MySQL ネットワーク FreeBSD 少し、Linux IIS少し、Apache とか。
768 :
nobodyさん :2012/03/14(水) 15:58:19.18 ID:r+zK7voT
>>766 その中にINSERTが可能な属性を持ったユーザはいましたか?
769 :
nobodyさん :2012/03/14(水) 15:59:51.75 ID:88Viu4RY
今、WEBの求人みたら WEBプログラマー募集!! 時給950円 とかあったんですが、技術職で時給950円て そこまでWEBプログラマーは飽和してしまったんですか?
770 :
(498===523===525)===(498=523=525) :2012/03/14(水) 16:03:31.15 ID:suCVTKUm
>>769 逆転の発想で、初心者が時給950円貰って教えてもらいにいくといいのではないだろうか。。
771 :
nobodyさん :2012/03/14(水) 16:31:09.06 ID:88Viu4RY
>>770 1年以上の経験がどうたらこうたらがほとんど
772 :
(498===523===525)===(498=523=525) :2012/03/14(水) 16:34:46.68 ID:suCVTKUm
「独学で1年やりました!こんなサイト作りました!がんばります!」みたいな感じで突破できないかな。
773 :
757 :2012/03/14(水) 16:41:02.67 ID:MUSukvI8
レスありがとうございます。
>>760 入門書も757のような記述が多かったもので。少し安心しました。
>>761 >「緩い値」となるコードが微妙
そうですね。型と値を出来るだけ明確に意識したいと思います。
>>767 たとえば、
Javaとphpの違いを語ってください。
>>773 別にスクリプトなんてパズルみたいなもんだよ。
完成形をよく意識して、適切にピースを当てはめて。
ただ、よくPHPerがシメジ扱いされる所以として
そのピースをちゃんと理解しようとしない
ドキュメントを読まないというのが多いので
入門書も必要だけど、同時に公式ドキュメントで
きっちり自分の使うものがどういった性質を持つのか確認したほうがいいよ。
>>764 ?>[EOF]
?>[LF][EOF]
のどっちにしてる?これまでの雰囲気から前者だと思うんだけど
あれも少しこれも少しって、典型的な投げ出し人間だな。 長々とぐだぐだ言ってないでサイト作れよ。コード書けよ。
778 :
(498===523===525)===(498=523=525) :2012/03/14(水) 17:16:18.79 ID:suCVTKUm
779 :
(498===523===525)===(498=523=525) :2012/03/14(水) 17:26:28.21 ID:suCVTKUm
>>776 ?>[LF][EOF] にしてる。
最後に改行を書かないのはなんか気持ち悪い。そんだけの理由。
>>777 そうですね。
でも仕事ってのは、そんなに自由に選べるもんでもない。
チームを纏めなくてはいけなかったり、他のメンバーができない部分を
やらざるを得なかったり(コードは書けるが、DBやインフラが弱いやつらが多かった)。
ここしばらくは結構自由にやってるけど。
>>779 エディタで見たときに、最後に空行が1つある状態じゃないと気持ち悪いって事かな。
781 :
(498===523===525)===(498=523=525) :2012/03/14(水) 17:37:21.97 ID:suCVTKUm
>>780 Windowsのエディタなんかで扱うときに、最後に改行が無いと、
行範囲選択がしにくいってことからかも。
出力開始タグだしな 不要な開始タグって気持ち悪くね
PHPに終了タグは書くな!!!!!!!!!!!!!!!!!
何の終了タグだよ
?>だろ 常識
786 :
nobodyさん :2012/03/15(木) 05:27:55.01 ID:potSg07V
データファイルってどうやって置いたらダウンロードされない? ドキュメントルートより上に置く 以外で。
アクセスさせなくする
PHP関係なくね
____ / \ / _ノ ヽ、_ \ / o゚⌒ ⌒゚o \ また今日も、自称優秀なPHPプログラマによる | (__人__) | 職場からの2chへの書き込みが始まるお \ ` ⌒´ /
790 :
nobodyさん :2012/03/15(木) 06:49:29.42 ID:E3IxfR1a
群馬県高崎市に住む41歳AB型、製造業界で派遣プログラマーの仕事をしているhekenekoこと、黒飛健と申します。
新日本テクトスという会社を追われ、その後どうしてよいかわからなくなりました。
だけど私の大好きな尾崎豊の歌に励まされ、夢であるプロのクリエイターを目指すことにしました。
何度も挫けそうになりましたが、尾崎豊の歌を聞きながら自分を励ましています。
今も尾崎豊の歌のおかげで、夢を諦めずにCGアニメの製作を続けられています。
とりあえず、以下の動画を見てください。一生懸命作ったもので、自分では既にプロレベルの傑作だと思ってます。
できればみなさんのご意見、ご感想を聞きたいです。
新しいラダニアムの翼(new wing of radaniam part T) .mp4
http://www.youtube.com/watch?v=PRPJ69rVgbE 題名”ラダニアムの翼その1(A wing of radaniam_partT).mp4”
http://www.youtube.com/watch?v=WTde4RdA5LU 私の世界観の全てを凝縮した力作です。hekenekoワールドをご堪能あれ。
htaccessの設定次第で意味ないぞw
データファイル名を推測できない名前にする
スレ違いだし、サーバーの種類もわかんないし、誘導もできない。
ANHTTPd
だからWEB-INF使えって。 言語仕様で決められているから使えるよ。
PHPスレでそれはないわ
>>798 あえて聞くけど、何の言語の仕様で決まってるの?
英語かな
英語の仕様でWEB-INFを使うとファイルをダウンロードされないように出来るらしい
誰か
>>802 の頭の中を翻訳してください
804 :
(498===523===525)===(498=523=525) :2012/03/15(木) 14:03:47.02 ID:r40AKqz2
>>801 Java Servletの仕様 JSR。PHPとは関係ないですね。
ネタにマジレスするとJava版のPHPならWEB-INFが利用できる。
805は何か勘違いしてるようだ
>>804 言語仕様で決められてる言語があるらしいからあえて聞いたんだよ
808 :
805 :2012/03/15(木) 14:56:04.21 ID:???
phponjavaか
ほとんど同じソースの複数のPHPファイルを 後から1部分だけ修正したいのですが 手作業でやるとすごく時間がかかりそうです。 ループとかで修正する方法を 教えてください。
sed使うとか
>>808 それはあくまで移植した物であってPHPではない
移植とも違うとおもうが、マジレスというより、ネタレスだな
移植じゃないならなんだよwバカじゃないのw
815 :
nobodyさん :2012/03/15(木) 15:48:56.56 ID:jMy7vPK6
ffmpegで動画のサムネイルを切り出したいんだが、 PHPで実行すると何にも出力されない。 関数変えたりスクリプトを読み込ませたりしてみたんだがうまくいかん。 PHPからエラーも出力されない。 シェル上では問題ないんだけどなあ。 似たような現象に心当たりがある人、ヒントください。
817 :
nobodyさん :2012/03/15(木) 16:27:22.41 ID:VUkqieq6
CSVファイルからfget_csvで1行ずつ配列に代入するとして、 その配列の文字コードを後から変更したいと思います。 一度に大量の文字列を配列に入れると メモリエラーになるのですが、memory_limitの数値を増やす以外に 解決策はないのでしょうか?
fget_csvは使うな!!!!!!!!!!
>>812 どういう意味?
C言語による実装とJava言語による実装の違いでは?
文字コード変更しなけりゃいいんじゃね
822 :
nobodyさん :2012/03/15(木) 17:35:01.22 ID:VUkqieq6
>>820 memory_limitの上限値までです。
現在はパフォーマンス測定みたいなことをやってまして、
1行1000文字でどのくらいまで配列に代入出来るか?をテストしています。
出来るだけどのサーバでも使えるようなソースの書き方をしたいと思い、
memory_limitの設定に依存しないようなプログラミングを勉強しています。
とりあえず、条件としては
>>817 ですが、メモリ不足に陥らない方法が
あったら教えて欲しいと思い、質問しました。
823 :
nobodyさん :2012/03/15(木) 17:35:46.00 ID:VUkqieq6
文字コードは変更するという前提でお願いします。 逆に文字コード変更するなら一旦、配列に代入しなければ行けない と言う事なら、それで納得します。
何で後出しなんですか?
>>819 おまえと話してもかみ合わないからどうでもいい
>>822 メモリの容量に依存せず大容量ななんらかのものをつかませておきたいなら
自分でPager組んでそっちに逃がすとか、強引だけど、一旦なんらかのDBに逃がしちゃうとか。
当然パフォーマンスはガタ落ちだけど、言ってしまえばメモリを無視するというわけだから
副記憶装置に押し付けるしかないっぺ。
827 :
nobodyさん :2012/03/15(木) 17:56:40.71 ID:RuJGZOGk
session_start()やsession_regenerate_id()でPHPが自動生成してくれるセッションIDはどのような規則で作られていますか?
session.c のphp_session_create_id spprintf(&buf, 0, "%.15s%ld%ld%0.8F", remote_addr ? remote_addr : "", tv.tv_sec, (long int)tv.tv_usec, php_combined_lcg(TSRMLS_C) * 10); ハッシュ前のベースは、IPと時間と乱数で文字列つくってるだけだね。 あとは、session.entropy_fileの設定があったら、それもいれてたり
829 :
nobodyさん :2012/03/15(木) 18:19:29.81 ID:RuJGZOGk
830 :
nobodyさん :2012/03/15(木) 18:19:56.79 ID:RuJGZOGk
831 :
nobodyさん :2012/03/15(木) 18:42:10.70 ID:VUkqieq6
>>826 つまりテンポラリファイル的なものを作って
メモリ解放するやり方しかないって事ですね。
それなら納得しました。
832 :
(498===523===525)===(498=523=525) :2012/03/15(木) 18:54:35.96 ID:r40AKqz2
>>817 ファイルを全部配列に入れるのではなく、一定行数ごとに処理をすればいいだけではないですか。
833 :
nobodyさん :2012/03/15(木) 20:19:25.13 ID:HppzpmUE
OSはWindowsです。 PHPでプロセスに駐留するようなプログラムって作成できますか? 出来るならどのへんの関数を使うかや言葉などヒントお願いします。 やりたいことは現状タスクスケジューラで30秒置きに実行しているスクリプトを、 タスクスケジューラを使用しないで行いたいです。 Windowsで自分のPCなのでプログラム実行権限(ルート)はあります。
普通はsocket_系だと思うけど、 無限ループでsleepと処理を30秒おきに繰り返したほうが簡単
>>833 while(true){
〜
sleep(1);
}
とかすればいいんでね?
836 :
833 :2012/03/15(木) 20:34:33.55 ID:HppzpmUE
>>834-835 なるほど。
タイムアウトなしの設定にもできますしループという手もありますね。
socketを見て無理そうならループにしたいと思います。
どうもありがとうございました。
>>835 こういうのやってても問題ないの?
cronみたいにいかないと思ってるけど。
>>838 ソースは出せないんだが、プロセス起動したままだと問題あるとか無いとか・・・
windowsならphp-cliを使ってmysql のテーブル自動更新スクリプトは作ったことがある Win2K+apache それにcli常駐させて2年程無停止でトラブルは出なかった
842 :
(498===523===525)===(498=523=525) :2012/03/15(木) 21:58:19.58 ID:r40AKqz2
843 :
(498===523===525)===(498=523=525) :2012/03/15(木) 22:02:04.36 ID:r40AKqz2
>>840 いろいろ気をつかってプログラムを書かないと、使用メモリーがどんどん増えていく。
中の処理によるでしょ 変数使わなきゃメモリリークしないし
>>822 >>817 だと、配列に入れる時点でメモリエラーになっていると読めるんだけど、それであってる?
846 :
(498===523===525)===(498=523=525) :2012/03/15(木) 23:49:05.12 ID:r40AKqz2
849 :
nobodyさん :2012/03/16(金) 10:22:22.04 ID:TYAnn7Fn
PHPの正規表現で社名から 株式会社、 有限会社、 合資会社、 (株)、 (有) などの文字を除いた社名を表示したい場合、どのようなパターンにすればいいんですか? 除く文字は社名の先頭にある場合と最後にある場合があるんだけど・・・
正規表現についてはスレ違い ただ、そんなんだったら 株式会社を ""に置換してしまえ。
>>849 文中から会社名を拾ってとかいうのじゃなくて、
会社名カラムから拾うようなものななら、
それを全部列挙して、消した残りを表示すればいい。
Preg_replaceよりstr_replaceのほうが速い
853 :
nobodyさん :2012/03/16(金) 10:54:30.45 ID:+dWmT1P1
質問ではなく相談なんですが、 PHPを知らなかった時代は、HTMLで同じコードをいくつも書くというような ちょっとした手間のかかるような制作は特に気にならなかったですが PHPを知ってから、 ちょっとしたコピペも苦痛に感じるようになり、 もっと楽できないものか、もっと楽できないものかと 泥沼にはまってます。 で、楽できてたらそれはそれでいいんですが、 結局コピペや、手動で変換したほうが早いという・・・。 一つのファイルや、設定変数を共有させ過ぎで 例外が入ると、いちいち例外を記述しないといけないという・・・。
?
Zendかcakeを使え
じゃ静的htmlでいいんじゃね?
あとオブジェクト指向勉強しろ
>>853 手動コピペで手間足りる上にPHP組むより早いなら静的htmlでOK
859 :
nobodyさん :2012/03/16(金) 11:33:27.19 ID:+dWmT1P1
回答ありがとうございます。 効率を高めようとしているのか横着しようとしてるのかを 見極めていきます。 ちなみに「回答ありがとうございます。」もよく使うので 「かいあり」で辞書登録してます。
860 :
(498===523===525)===(498=523=525) :2012/03/16(金) 12:26:26.19 ID:Ny7vUNEa
861 :
(498===523===525)===(498=523=525) :2012/03/16(金) 12:31:20.84 ID:Ny7vUNEa
>>848 はい。配列に入れる以外の処理を書いてないですし。
要素数の問題ですよね。
>>859 プログラムなんてタダのツールだし、学校の課題じゃないんだから、楽なほうでいいんだよ。
二度と触らんようなプログラムに、あとからあれこれ付け足すのを考慮するとかしないだろ?
効率上げるために横着するのが正しい。 効率の上がらない横着は横着じゃない。
できるだけ楽をしてすまそうとすることの方の意味でね。すべきことをしない横着はプログラムでは出来ないんだし。
863 :
(498===523===525)===(498=523=525) :2012/03/16(金) 13:09:18.10 ID:Ny7vUNEa
>>863 848じゃねーけど前者
たまに正規表現の一致などにより使う場合に後者
どちらで書いてるって、状況によるだろ 常にどちらか一方で大丈夫だと思ってるなら甘い
866 :
(498===523===525)===(498=523=525) :2012/03/16(金) 13:40:37.20 ID:Ny7vUNEa
>>864 なるほどー。
>>865 緩い比較は使わないので、僕は後者しか使ってないです。
後者の書き方を知らなかった時は、switchを使うのがすごくイヤで、ifで書いていたりしました。
caseに書かれた比較条件をswitchに書かれている値になるか緩い比較をしているだけだからなぁ どちらかを使うって事は無いな
868 :
867 :2012/03/16(金) 15:14:48.41 ID:???
誤)どちらか 正)どちらかのみ
>>861 文字コード変換時にバイト数が増えることがあるのは今考慮しなくていいんだよねっていう確認なんだよ
870 :
(498===523===525)===(498=523=525) :2012/03/16(金) 16:49:38.82 ID:Ny7vUNEa
871 :
nobodyさん :2012/03/16(金) 16:56:26.98 ID:e6UkDkcE
株式会社アトカブ マエカブ株式会社 ってネタを思い出した
873 :
nobodyさん :2012/03/16(金) 22:25:23.76 ID:90NjddGX
あるライブラリで定義されているグローバル変数の読み込みのことで質問させてください。 // somelib.php $global_variable = 'golobal variable'; class Somelib {...} // myclass.php class Parent {...} class Child1 extends Parent {...} class Child2 extends Parent { public function some_method() { require_once 'somelib.php'; $somelib_obj = new Somelib(); } } このようにひとつのファイルに複数のクラスを割り当てています。 Child1ではsomelib.phpは不要なので、Child2が使用された場合にのみ読み込もうと、上記のように書きました。 しかし、インスタンス生成は(当然)できるものの、グローバル変数$global_variableは読み込まれません。 somelib.php内に$GLOBALS['global_variable']として呼び出すコードがあるため、そこでエラーとなります。 この場合のルールってどうなってるんでしょうか。 ※myclass.phpのグローバル領域にてrequireした場合には問題ありません。
>>873 そりゃsome_methodのスコープになるんだから当たり前だべ
875 :
nobodyさん :2012/03/16(金) 22:55:23.96 ID:90NjddGX
>>874 ありがとうです。そうか、ライブラリと同じ(グローバルの)スコープではないんですね。
動作の確認できました。ひとまずrequireの直後に以下のように追加して凌ごうと思います〜。
なんかえらい雑な感じもするけど・・・
$GLOBALS['global_variable'] = $global_variable;
876 :
nobodyさん :2012/03/17(土) 04:06:15.48 ID:ErwHrG3p
ループカウントを1からにすればいいだろ
878 :
nobodyさん :2012/03/17(土) 04:38:51.34 ID:ErwHrG3p
>>877 ありがとう。でもわからんw
function getNaviLink() {
$naviLink = null;
for ($i = 0; $i < $this->maxPageNum; $i++) {
ここを1にしたら最初のページのリンクがなくなたです
880 :
nobodyさん :2012/03/17(土) 05:20:39.95 ID:ErwHrG3p
>>879 たぶんできた!!!ありがとう\(^o^)/
日本語で
>>881 > 毎回ページング対象の全レコードを投げる必要があったりと、とても微妙な事をしているので、
> データ量が多い場合には微妙な気がするけれど、数千件程度のデータなら別にこれでも良いんじゃないかな〜と。
こんなこと書いてるところを信用するなでいいと思う。
それどこの記述だ?
コンストラクの引数で$pageNum = '' とか書いてるのに $this->pageNum = intval($pageNum); とか書いてるのがPHPの嫌なところだな こういうのってしっかりやるときはやっぱり InvalidArgumentException投げるんだろうか
質問じゃないから気にしないでいいよ
わかった
891 :
(498===523===525)===(498=523=525) :2012/03/17(土) 07:48:34.40 ID:WDIEzOVg
$data = " <?php print \"No\"; ?> "; $bbb = str_replace( "No", "Yes",$data ); ///////////////////// $dataの文字列が<?php ?>でくくって あるとstr_replace できないようですが 置換する方法を教えて下さい。
893 :
(498===523===525)===(498=523=525) :2012/03/17(土) 08:06:22.87 ID:WDIEzOVg
>>887 それは言語とは関係のないコードの話ですよね。
「$this->pageNum = intval($pageNum); 」では、フォームから受け取った文字列型のページ値を
文字列から数値に「意図的に」変換しつつ、入力値の制限にもなるし、全く問題ない記述だと思う。
自分なら、フォームで受け取る処理でページは数値化しておくけど。
894 :
(498===523===525)===(498=523=525) :2012/03/17(土) 08:09:10.72 ID:WDIEzOVg
>>892 $data="" じゃなく $data='' に。
いやいや 2dが2になるのが嫌なんです
897 :
(498===523===525)===(498=523=525) :2012/03/17(土) 08:18:37.82 ID:WDIEzOVg
>>895 ページャーの外で ctype_digit でもしとけばいい話。
って、やっぱりPHPと関係ない。
最初から静的型付けならそんな問題もおこらないでしょうという話ですよ
intvalとかよりキャストのほうが早いんじゃね
しかしintvalで済ませるのは横着だと思う /detail/1420596/ /detail/1420596jp/ が同じ結果ってのはな 後者はNotFoundにしないとだめだろ
901 :
nobodyさん :2012/03/17(土) 09:27:30.59 ID:j6AXQeWw
QdSmtp error: No Responce SYSTEM TIME OUT line -> 603 QdSmtp error: getMessage error line -> 543 QdSmtp error: Error From setting line -> 488 QdSmtp error: Send Data Error or Auth Error line -> 415 Qdmail error: Qdmail Version 1.2.6b ,PHP Version 5.2.11 Qdmail error: OS WINNT ; PHP Version 5.2.11 ; Qdmail version 1.2.6b php.ini status: mb_language = Japanese ; mb_internal_encoding = UTF-8 ; mb_detect_order = ASCII,JIS,UTF-8,EUC-JP,SJIS Qdmail Status debug: 0, log: 3, errorlog: 0 Qdmail error: No send . Because SMTP mail method replied error line -> 2190 Qdmail error: Send Error line -> 2115 Qdmail error: Error happen, see upper line -> 2194 Qdmail error: Send Error line -> 2115 Qdmailでメールを送信すると上記のようなエラーが出て送信できない場合があるのですが、 これはどういったエラーなんでしょうか? (このあとすぐにもう1度同じ処理を更新ボタンを押してすると成功する場合が多いです)
902 :
901 :2012/03/17(土) 09:28:09.71 ID:j6AXQeWw
ちなみにQdmailはCakePHPのコンポーネントとして利用しており、 メールサーバはさくらインターネットを利用しています。
エラー行出てるならそこ見ればいい
なんで標準ライブラリでもないものの質問をするかな PEARでもスレ違いって言われるぐらいなのに
サーバーサイドプログラムは世界中から攻撃される可能性があるのに 理解してないコードをよく使えるな
906 :
892 :2012/03/17(土) 15:25:57.69 ID:???
出来ました。 ありがとうございました。
907 :
(498===523===525)===(498=523=525)@家 :2012/03/17(土) 17:13:21.10 ID:m3CObGes
phpファイルのエンコードはurf-8 windows7、php 5.4.0です。 ディレクトリをオープンする時、フォルダパスにダメ文字が入っていると開けないのですが、どうすれば解決できるでしょうか。 $path="C:\コッソリ噂"; opendir($path); 文字コードをsjis、sjis-winにするのかなと思ったのですが、変わりませんでした。 opendir(mb_convert_encoding($path,'SJIS','UTF-8')); opendir(mb_convert_encoding($path,'SJIS-win','UTF-8'));
910 :
nobodyさん :2012/03/17(土) 20:39:47.36 ID:yzv5Q1Zj
失礼しました。再度質問し直させて頂きます。 【OS名】windows7 【PHPのバージョン】5.4 【連携ソフトウェア】無し 【質問内容】 phpファイルのエンコードはurf-8です。 ディレクトリをオープンする時、フォルダパスにダメ文字が入っていると開けないのですが、どうすれば解決できるでしょうか。 $path="C:\コッソリ噂"; opendir($path); 文字コードをsjis、sjis-winにするのかなと思ったのですが、変わりませんでした。 opendir(mb_convert_encoding($path,'SJIS','UTF-8')); opendir(mb_convert_encoding($path,'SJIS-win','UTF-8'));
windows7ってそのままサーバ機能があるのか?スゲー明日買って来る
913 :
(498===523===525)===(498=523=525)@家 :2012/03/17(土) 21:58:14.67 ID:m3CObGes
>>910 ・・・数スレ毎にこの話題出るね。
簡単に言えば現在のPHPは対応できてないんでダメですね。
詳しく知りたければ過去スレに書いたのでも見てください。
>>909 スレの無駄なんで、今後は回答しながら指摘してくれるかなぁ。
スレの無駄?
phpは言語レベルのバクが多い
918 :
nobodyさん :2012/03/18(日) 01:43:24.75 ID:QddY4QUA
【OS名】centos 【PHPのバージョン】5.3 file_get_contentsやcurlで、あるサイトの内容を取得しているのですが、どちらでも最新の内容が取れません bashからだとcurlを使うと最新の内容が、wgetだと上記と同じく古い内容が取得されます 趣味で作ってる物なのでラグがあっても問題はないのですが、これらにどのような違いがあるのか気になります 詳しい方いましたら教えていただきたいです
httpヘッダとかキャッシュ関連だと思うけど どこのサイトか晒せばいろいろ試せるんだがな
921 :
918 :2012/03/18(日) 02:02:29.75 ID:???
923 :
918 :2012/03/18(日) 02:45:07.11 ID:QddY4QUA
>>921 は私です
curlだと最新が〜と
>>918 で書きましたが間違いでこっちも古かったです
URLがen-USだとどの方法でも最新のが得られるようです
ブラウザのリクエストヘッダ使ってみたりしましたが相変わらずでした
やっぱり向こう側の問題な気がします
データが伝播するまでのラグなんじゃないかなぁ、とおもうけれど
925 :
918 :2012/03/18(日) 09:35:25.48 ID:QddY4QUA
HTTP/Request、HTTP/Client、lynxなど試しましたがどれもダメでした 別のCentOS(こっちは6)で試したらどれでも最新版が取得できるので IPで弾かれてる予感が・・・常用時はキャッシュ使ってるので負荷はかけてない筈でしたが ブラウザからでも即時更新されることもあれば寝て起きるまで更新されないこともあるので 向こう側の問題ってことで決着します
PHPに関係ないことをまだ言うか
927 :
nobodyさん :2012/03/18(日) 20:11:59.01 ID:rlrUKc8I
while (税収が少ない){ 消費税率上げる 消費が減る 税収減る } 税収が増えません どうすればいいんでしょうか?
while (税収が少ない){ 消費税率上げる 消費が減る 税収減る if(927が高額納税){ while(true){ 税率が下がる 消費が増える 景気が良くなる 税収が増える } } }
http://smallworld.west-tokyo.com/blog/2011/02/php-study-1.html こちらを参考にログインフォームを作っているのですが、
Strict Standards: Non-static method DB::isConnection() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Auth\Container\DB.php on line 150
や
Strict Standards: Non-static method DB::parseDSN() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\DB.php on line 520
というようなエラーが沢山(末尾の数字が変わる)出てしまいます。
PEAR::DBがインストールされていないときに出るエラーのようなのですが、今はMDB2を使うようになっていると聞きます。
上記のURLのソースをMDB2で使うにはどの様に変えていけば良いのでしょうか
932 :
nobodyさん :2012/03/19(月) 01:41:14.49 ID:cSahNEV1
933 :
nobodyさん :2012/03/19(月) 01:41:44.97 ID:cSahNEV1
あちらで答えて頂いてもこちらに答えて頂いても結構です。
スカイプってなんか聞いたことあるね
オブリビオンの続編だろ
違うよ。うす〜いおならだよ。
スカイダイビング中のおならじゃなかったのか…
オナラプー
940 :
nobodyさん :2012/03/19(月) 18:01:12.36 ID:/hyp6Xkg
【OS名】win7 【PHPのバージョン】5.4 【連携ソフトウェア】無し 【質問内容】 $a["b"]をfの中で$xに参照渡しをし、$a["b"](=$x)の値を書き換えたいのですが $a["b"]="a"; f($a); print $a["b"]; function f(&$a){ if($a["b"]=="a"){ $x=&$a["b"]; }else{ $x=""; } $x="x"; } こう書くと狙い通りにxと表示されるのですが、ifを(true?true:false)の一行の書き方で書こうとすると $a["b"]="a"; f($a); print $a["b"]; function f(&$a){ $x=($a["b"]=="a"?&$a["b"]:""); $x="x"; } 文法エラーが発生してしまいます。 $x=&($a["b"]=="a"?$a["b"]:""); $x=($a["b"]=="a"?(&$a["b"]):""); この様に書いても同じでした。 一行の書き方で参照渡しするにはどうしたらよいのでしょうか
すまん、=&の間違い
>>940 出来てもよさそうなのにな。出来ないんだよ。
$a["b"]=="a"?$x=&$a["b"]:"";
まあ、ifで書きなよ
strtrって、なんで配列だと違う長さでいいんだ?
946 :
910 :2012/03/20(火) 02:41:57.55 ID:???
new ZipArchiveで安全な場所にzipファイルを作って、その中に自由な名前のファイルをaddFromStringする。 またはexec("mklink /H \"{$tempPath}\" \"{$path}\"");してファイルを持ってくる方法にしました。 やれば出来る。なんでも出来る。
947 :
944 :2012/03/20(火) 02:44:26.84 ID:???
なるほど。何気に理由があるもんなんですね。
>>944 文字列の方は、一文字づつのfrom toの指定を文字列で行うもの(だから文字数同じ)
配列の方は from toが文字列
949 :
nobodyさん :2012/03/20(火) 17:35:10.61 ID:5sAZwRmN
Smartyで {html_options name=form[$i.num][enable][] options=$select selected=$i.sel} このようにnameに配列を指定するとエラーになってしまうのですが、 これを回避する方法はないものでしょうか。 すみませんがご教示ください。
dat落ちしてるな smartyスレ立てればよろし
952 :
nobodyさん :2012/03/20(火) 20:19:21.63 ID:kQLmWU30
PHP+MySQLの型についての質問です。 MySQLのint型のカラム(例、id番号格納用)からPHPでidを取得する場合には、 int型、string型のどちらになるのが普通でしょうか? 同一コードなのに、動作がおかしいので、var_dump()で確認すると、 レンタルサーバー(PHP5.2.5)では、string型になっています。 逆に、ローカルのXAMPP(PHP5.3.5)では、int型になっています。 環境が違うと型も異なるのでしょうか?
953 :
nobodyさん :2012/03/20(火) 22:34:30.30 ID:RhIqQwV3
954 :
nobodyさん :2012/03/20(火) 22:59:01.27 ID:XuJ1KzYb
>>953 registCheck.php
でうけとったのをregistForm.phpに渡している。
>>952 レンサバの環境がわからんとなんともいえん
955 :
953 :2012/03/20(火) 23:05:30.24 ID:RhIqQwV3
>>954 それはregistForm.phpの2行目から3行目あたりで行われているということですよね?
$_SESSION['username']=$_POST['username']みたいなのが見当たらないのですが、なぜ渡せるのですか?
>>952 5.3からmysql関連のドライバの扱いが変わってるんでその辺かなぁ。
いろいろ変わってるんだけどそーいうのが簡単に調べられねーんだよな。
>>955 get_magic_quotes_gpcだの、いつの時代のだよと思ったら去年の記事・・・
いろいろ変だし、そこ見るのはやめるのを俺はお勧めする。
957 :
953 :2012/03/20(火) 23:37:12.10 ID:RhIqQwV3
>>956 わかりました。他の所を参考してみます。
ありがとうございました・
958 :
952 :2012/03/21(水) 00:43:26.28 ID:pFyJJ5uV
>>954 >>956 レスありがとうございます。
やはりバージョンの違いが原因と考えた方がよさそうですね。
直感的には、MySQLのカラムがintなら、PHPで取得したデータも
intというのが、わかりやすいです。
また、これからは、5.3以上のサーバーが増えそうなので、
5.3でも動くように変更してみます。
うちのWindows+PHP5.3でもなぜかintで返る レンサバの5.3だと仕様通りstringが返るから、OSの問題なんかね
960 :
nobodyさん :2012/03/21(水) 07:58:14.83 ID:NtYwhUXp
ブラウザで Resource id #1 と表示されるんですが、これはどういう意味ですか?
963 :
952 :2012/03/21(水) 10:43:08.42 ID:Jp6FiHgK
>>959 coreseverでPHP5.2から5.3へのバージョンアップが可能だったので、
試したところ、5.3にしても、string型が返ってきました。
おっしゃるとおり、PHPのバージョンの問題でなく、OS、MySQL側などの問題のようです。
string型で返るのが仕様なら、string型で統一したいと思います。
WIN+XAMPPの組み合わせだと、int型が返るのかもしれませんね。
964 :
(498===523===525)===(498=523=525) :2012/03/21(水) 11:16:59.46 ID:4pswCVuc
>>952 DBに何を使ってアクセスしているか書きましょうよ。
値取るまでのコードを全部書いたらいい。
基本的にDBとのやり取りは文字列のみになる それ以外で取得できるのはクライアント側の 中間のライブラリとかで処理してる。
966 :
952 :2012/03/21(水) 11:52:52.10 ID:Jp6FiHgK
>>964 PDOを使ってアクセスしています。コードは、こんな感じです。
/**** DB接続PDO ****/
$dsn = 'mysql:host='. SERV .';dbname='. DBNM ;
try {
$dbh = new PDO($dsn, USER, PASS) ;
$dbh->query('SET NAMES utf8') ;
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE) ;
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ) ;
} catch (PDOException $e) {
die('db error.');
}
$sql = 'SELECT * FROM users WHERE mail=:mail AND pass=:pass AND state=1' ;
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':mail', $mail, PDO::PARAM_STR);
$stmt->bindParam(':pass', $pass, PDO::PARAM_STR);
$stmt->execute();
if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$_SESSION['id'] = $row['id'] ;
$_SESSION['user'] = $row['user'] ;
967 :
(498===523===525)===(498=523=525) :2012/03/21(水) 12:41:11.44 ID:4pswCVuc
いつまでコテつけて恥をさらすのか
970 :
952 :2012/03/21(水) 14:10:30.65 ID:g60QnSuj
>>967 便利そうなメソッドありがとうございます。
データ取得時にも型を指定できるのですね。勉強になります。
ただ、これだと、(int)とか(string)して型キャストしてやる方が
書き換えが楽そうです。
$_SESSION['id'] = (int)$row['id'] ;
$_SESSION['id'] = (string)$row['id'] ;
971 :
(498===523===525)===(498=523=525) :2012/03/21(水) 14:10:42.72 ID:4pswCVuc
972 :
nobodyさん :2012/03/21(水) 15:16:43.78 ID:UYYnFQWA
たすけてください! if文を実行するとerrorが出ます 訳が解らないです [CODE] if((498===523===525)===(498=523=525)){ echo "うがああああ"; } [ERROR] Parse error: syntax error, unexpected T_IS_IDENTICAL in C:\xampp\htdocs\test\498.php on line 498
Parse error: syntax error, unexpected T_IS_IDENTICAL in C:\498===523===525)===(498=523=525\xampp\htdocs\test\498===523===525)===(498=523=525.php on line 498
974 :
nobodyさん :2012/03/21(水) 16:56:21.09 ID:I9Kl/ls/
ある配列一覧から、キー名ではなく、データ名でデータを取り除く関数を作りたいと思ってます。 //リスト $list = array( 1 => 大阪 2 => 京都 3 => 栃木 ) //リストから削除したい項目 $delete = array( 栃木 ) array_delete($list , $delete) //出力結果 array( 1 => 大阪 2 => 京都 ) キー名を元に削除するのなら unset($list[3]) なんかでいけるとおもうのですが、 VALUE名を元に、データを取り除くにはどういう方法が考えられるでしょうか?
array_diffでできそうだけどな
>>974 foreach ($list as $key => $value)
if (in_array($value,$delete))
unset($list[$key]);
print_r ($list);
>>977 慣れるとそれこそxampp使う気が失せるんだが。
array_diffで終わりの話なのに、なんでせっせとコード書いてるの?って書けばいいのかな…
何でだと思ったのさw こいつバカだーとかそんなとこか?w
array_diffだけ教えればいいんだから、ムダだもんね。 使うな君らしい、本人の為にはならないやさしさが素敵だよ。
985 :
(498===523===525)===(498=523=525) :2012/03/21(水) 20:08:32.15 ID:4pswCVuc
>>976 惜しい。
foreach ($list as $key => $value)
if (in_array($value,$delete,true))
unset($list[$key]);
print_r ($list);
>>975 >>978 >>982 >>984 array_diff じゃ不十分。
あーうざってー
乙
23. オブジェクト指向 → 実装が中途半端なので使用しないこと。 本格的なオブジェクト指向言語に比較してパフォーマンスが劣ります。 24.パフォーマンスが悪いと感じられるとき → キャッシュを使用してください。 それでもだめならサーバーCPUのオーバークロックをお試しください。 なんでこれ入れたし
そういう人に次スレ立てさせちゃった俺の責任だ。申し訳ない。
立てた人の弁明次第
簡易FAQ自体の質問例も回答例もクソだからリセットでいいぐらいだ
>>990 はサーバーのオーバークロック以外は
特に記述に誤りはないけどな。
オブジェクト*指向* を使用するなって日本語がそもそもヘンテコすぎ
マルチパラダイムを採用してる言語でOOPするなって主観すぎだろ そんなのFAQに入れんな馬鹿野郎
誤りではないからいいのでは?
恥ずかしいからやめて
遅いからは誤りではないが、 遅いから使うなは、俺は誤りだと思うがどうか。 さて、弁明も駄目だったね。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。