【PHP】下らねぇ質問はID出して書き込みやがれ 98
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/09/18(土) 19:20:37ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 97
http://hibari.2ch.net/test/read.cgi/php/1279833891/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0362nobodyさん
2010/09/24(金) 19:04:06ID:???Perlも使ってる俺の肩身が狭くなるっ!
0363nobodyさん
2010/09/24(金) 19:05:50ID:5mEmp/FR不快な思いにさせてしまいごめんなさい。
これ以上書きませんので許してください。
失礼しました。
0364nobodyさん
2010/09/24(金) 19:08:09ID:BFSvi/T0詳しく見てないけど
こんなのやってくれてる人いるよ
もう一度言う 詳しくは見てない
0365nobodyさん
2010/09/24(金) 20:00:09ID:???マニュアルにあるし
0366nobodyさん
2010/09/24(金) 22:45:19ID:39V4jcsO0367nobodyさん
2010/09/24(金) 22:50:29ID:???ていうかスレ違い
0370nobodyさん
2010/09/25(土) 02:34:21ID:???ブラウザの描画がブロックされるのは
XMLHttpRequest#open() を同期で呼んでしまってるとか組み方に問題がある
分からなかったらJavaScript板で聞いてくれ
>>366
echo でもいいし、HTMLと同じように <?php ?> の外へ書いてもいい
あと Content-Type ヘッダにphp.iniの default_mimetype(デフォルトだと"text/html") が使われるんで
必要なら header('Content-Type: application/xml'); などセットしてやる
0372nobodyさん
2010/09/25(土) 03:19:57ID:???取得っていうからてっきり藏側の話かと思ったわ
クライアントに送出するxmlやらjsonやらってことね
0373nobodyさん
2010/09/25(土) 07:55:42ID:5eiUdC6Bのような複数スペースが空いてるのを
「aaa bbb」というように1つにするにはどうすればいいのでしょうか?
str_replaceで置換すると思ったのですが、
同じ文字を複数→1つに出来ないと思い、質問しました。
0374nobodyさん
2010/09/25(土) 08:26:08ID:/+0QJSqIwhile ($row = $res -> fetchRow(MDB2_FETCHMODE_ASSOC)){
とやると、DBが並んでるデータ順にでてくるんですが、
$res = $mdb2 -> query('SELECT * FROM `foo` order by key');
while ($row = $res -> fetchRow(MDB2_FETCHMODE_ASSOC)){
とやると(keyは主でINT型です)
Fatal error: Call to undefined method MDB2_Error::fetchRow() in (whileのある行)
というエラーがでます
どういうことで、どうしたら直りますでしょうか
0375374
2010/09/25(土) 08:30:29ID:/+0QJSqIorderのところをvarchar型(アルファベットがはいってます)で照合順序utf8_unicode_ciにしているものに変えるとちゃんと五十音順に表示されました
INT型だとなにか特殊な指定などがいるんでしょうか?
0376nobodyさん
2010/09/25(土) 09:01:44ID:???if (MDB2::isError($res)) {
var_dump($res->getMessage());
}
とでもして中身みれば?
0377nobodyさん
2010/09/25(土) 09:13:34ID:???回答ありがとうございます
string(24) "MDB2 Error: syntax error"
というエラーが出てます
並べ替えするのに照合できないなにかがあるんでしょうか
keyには数字しかはいってません(auto_incrementで自動で連番になってるだけです)
種別はINTです
0378374
2010/09/25(土) 09:23:29ID:???keyっていうフィールド名は使わないほうがよいんでしょうか
0379nobodyさん
2010/09/25(土) 09:25:50ID:???DB側としては``で括ってないからSQLの構文エラー返してるんだよ
0382nobodyさん
2010/09/25(土) 09:32:54ID:???まあなんだ、テーブル名のfooをちゃんとバッククオートで囲んでるのに、
keyの方は剥きだしってのを直したら、keyって名前のままでもいけるかもね。
でも、
>keyっていうフィールド名は使わないほうがよいんでしょうか
その方が習慣としては良いと思う。
0383nobodyさん
2010/09/25(土) 09:38:34ID:???予約語でもバッククオートで括れば予約語ではないフィールド名として扱えるってことですね
危なそうな単語は使わないように習慣づけます
ありがとうございました
0385nobodyさん
2010/09/25(土) 12:10:01ID:Ra4M62ePあれはどうやって作ってるんですか?
0386nobodyさん
2010/09/25(土) 12:10:45ID:Ra4M62eP×tukaeruyo
○tasukeruyo
0388nobodyさん
2010/09/25(土) 13:13:30ID:???ソース見てないからテキトーだけど
if(ereg("fusianasan",$name)){
$name=$ip;
}
みたいな処理をすればよいんじゃね?
要は名前がこうだったらこうするよってだけだし
0389nobodyさん
2010/09/25(土) 13:22:17ID:Ra4M62eP0390nobodyさん
2010/09/25(土) 13:46:46ID:???0391nobodyさん
2010/09/25(土) 13:56:53ID:???0392nobodyさん
2010/09/25(土) 14:47:49ID:???2chの仕様通りじゃないけどこんな感じでやればいい
0394tasukeruyo
2010/09/25(土) 15:10:08ID:???0395nobodyさん
2010/09/25(土) 16:09:02ID:???"php" == 0 の件、
文字列と数値の比較の場合は文字列が数値にキャストされるので
"php"は0と評価され、trueとなります。
なので>>356の例($a = 0 で $a == "")は、>>357-359の解釈は若干誤りで、
""(空文字列)が数値にキャストされて0と評価されるのでtrueとなります。
>>361のように $a === "" とした場合は、値は同値ですが型が異なるのでfalseとなります。
0397nobodyさん
2010/09/25(土) 17:13:39ID:???PHP5.3だとエラーになる
0398nobodyさん
2010/09/25(土) 17:15:20ID:???ttp://events.php.gr.jp/events/show/101
ttp://phpcon.php.gr.jp/2010/
行けない人は→ttp://www.ustream.tv/channel/phpcon2010-a
0400nobodyさん
2010/09/25(土) 17:16:52ID:W1bFgA20〜が含まれる場合、というのはどう書くのが推奨なんでしょうか?
perlだと
if($foo =~ /bar/){
みたいに書きますけど、phpだとエラーになりました
現在は、>>388と同じようにeregを使ってるんですが、使わない方がいいのでしたらよい書き方をしたいです
よろしくお願いします
0401nobodyさん
2010/09/25(土) 17:20:05ID:???マニュアルに代替の関数書いてあるから嫁
ttp://php.net/manual/ja/function.ereg.php
0402nobodyさん
2010/09/25(土) 17:31:28ID:W1bFgA20ありがとうございます。
if(preg_match("/bar/",$foo)){
に変更することにします
0403nobodyさん
2010/09/25(土) 17:35:30ID:???strposとかでいいよ・・・
0404nobodyさん
2010/09/25(土) 17:42:25ID:???if(strpos($foo,"bar")){
存在すれば位置を返すからtrueになるって解釈でいいんでしょうか?
ありがとうございます。
0405nobodyさん
2010/09/25(土) 18:15:47ID:???0406nobodyさん
2010/09/25(土) 18:17:42ID:???if("" != strpos($foo,"bar")){
こうでしょうか?
preg_matchよりstrposの方が処理が速いんですかね
0407nobodyさん
2010/09/25(土) 18:32:04ID:lqN4c8Xi例えば最初"http://hibari.2ch.net/php/" "php" と登録したら
serach.txt
--------------------------------
http://hibari.2ch.net/php/,php,【PHP】下らねぇ質問はID出して書き込みやがれ 98,【PHP】フレームワーク CakePHP 9ホール目【1.3】,...
--------------------------------
つぎに"http://hibari.2ch.net/php/" "google" と登録したら
serach.txt
--------------------------------
http://hibari.2ch.net/php/,php,【PHP】下らねぇ質問はID出して書き込みやがれ 98,【PHP】フレームワーク CakePHP 9ホール目【1.3】,...
http://hibari.2ch.net/php/,google,Google AppEngine 3アプ目,Google App Engine 3アプ目,...
--------------------------------
となるような感じでカンマ区切りで記録していきたいです.
テキストの保存の方法でもっといい方法はありますか?
0410nobodyさん
2010/09/25(土) 18:57:55ID:???これがインストールされていれば .htaccess 内で特定の国からのアクセスは禁止したり
違うページに誘導できたりするようになるのですが、いま使っているレンタルサーバーに
このGeoIPがインストールされて使える状態になっているかどうか調べるにはどうしたらいいでしょうか?
0412nobodyさん
2010/09/25(土) 19:03:21ID:???http://pecl.php.net/package/geoip
これの事を言っているのなら、peclコマンドで入ってるかどうか調べてみては?
ただ別途ライブラリも必要みたいだけど。
0413nobodyさん
2010/09/25(土) 19:16:11ID:???subject.txt使って文字列抜き取れば
http://hibari.2ch.net/php/subject.txt
0414nobodyさん
2010/09/25(土) 19:17:31ID:???インストールされてなくて入れられなければVPSに乗り換えるのも検討する
今は低価格で良いサーバが借りられるし
0415nobodyさん
2010/09/25(土) 19:28:46ID:???相手が嫌がらせでちょっとタグ変えただけでオワル
APIがないとこからは取る気おきない
0416410
2010/09/25(土) 19:54:12ID:???レンタルサーバーなので特定のコマンドを打って動作を確認することができないのが痛いところです・・・
>>414
最近じゃ月300円くらいから使えるレンタルサーバーとかありますよね
0417nobodyさん
2010/09/26(日) 00:27:13ID:???とするべきところを間違えて
<?php $_SERVER['SCRIPT_NAME'] ?>
と書いてしまったところ,動きました.
これはやってはいけないやり方でしょうか?
0418417
2010/09/26(日) 00:30:42ID:???自己解決というか勘違い.
はずかすい
0419nobodyさん
2010/09/26(日) 02:08:52ID:XvkZ4p7S上記の文字列の<a></a>で囲まれた部分に関数(今回はurlencode)
を適用したいのですが、何かよい方法はありませんか?
preg_replaceを使用し、\\2などの元文字に関数を
適用したいと思ったのですがうまくいきませんでした。
どなたかご教授お願いします。
0420nobodyさん
2010/09/26(日) 02:16:38ID:???0422nobodyさん
2010/09/26(日) 04:37:39ID:XvkZ4p7S掲示板のユーザーから受け取った文字列を書き換えたいので、ダメなのです。
すみません。
>>421
$val = "あの<a>2ちゃんねる</a>がモバイルに";
preg_replace(/(<a>)(.+)(<\/a>)/","<a href ='./index.php&word=\\2'>ひろゆき</a>",$val);
($valは変動する文字列と考えてください。)
\\2の部分にurlencodeやセキュリティー対策の関数を適用したいのです。
preg_replaceでなくともいい方法があればお願いします。
0423nobodyさん
2010/09/26(日) 05:23:46ID:???それをencodeしたものをpreg_replaceで置き換える
<?php
$val = "あの<a>2ちゃんねる</a>がモバイルに";
$regex = "/<a>(.*)?<\/a>/";
if (preg_match($regex, $val, $matchs)) {
$enc = urlencode($matchs[1]);
$val = preg_replace($regex, "<a href=\"./index.php&word={$enc}\">ひろゆき</a>", $val);
}
echo $val;
0424nobodyさん
2010/09/26(日) 05:53:28ID:XvkZ4p7Sありがとうございます。
wikipediaっぽく、受け取った文章中のすべての<a>○○</a>を
置き換えたいのです。
提示していただいた方法だと、複数の対象ができた場合、
preg_matchで取得したものを、置き換える場所に個々に一致させる必要があります。
できれば一度の処理で変換できる方法はないでしょうか?
0425nobodyさん
2010/09/26(日) 05:55:57ID:???0426nobodyさん
2010/09/26(日) 05:56:17ID:???function lnk($matches) {
$url = './index.php?' . http_build_query(array('word' => $matches[1]), '', '&');
return sprintf('<a href="%s">ひろゆき</a>', htmlspecialchars($url, ENT_QUOTES));
}
$val = "あの<a>2ちゃんねる</a>がモバイルに";
echo preg_replace_callback('#<a>(.+?)</a>#s', 'lnk', $val);
0427nobodyさん
2010/09/26(日) 06:45:51ID:XvkZ4p7Sうわぁ一見では理解できない・・・。
ありがとうございます。
これでいいのかどうかが、私のレベルではわからないので
>>426をじっくり解析しながら勉強して出直してきます。
みなさん本当にありがとうございました。
0428nobodyさん
2010/09/26(日) 13:13:49ID:???/home/○○○/Smarty/common.php on line 145
ってエラーが表示されるのですがどうすればいいでしょうか?
0431nobodyさん
2010/09/26(日) 13:22:15ID:???0433nobodyさん
2010/09/26(日) 13:25:07ID:???http://php.net/manual/ja/function.ini-set.php
ini_set("memory_limit", 128M);
の一行をファイルに追加しとけばいい
0434nobodyさん
2010/09/26(日) 13:34:02ID:???配列のキー指定時なんかにダブルクォーテーションかシングルクオーテーションかで悩む
コードの出所によってバラバラだったりして結局ソース内に混在して
気持ち悪いがわざわざ統一する理由もない
お前らどうしてますか?気にしない?
0435428
2010/09/26(日) 13:44:23ID:???追加したのですがFatal error: Allowed memory size of 41943040 bytes exhausted (tried to allocate 512 bytes) in
/home/○○○/Smarty/common.php on line 145
と表示されます。tried to allocate 35 bytesが512と変わっただけみたいです。
記入ミスとかでしょうか?
0436nobodyさん
2010/09/26(日) 14:20:01ID:???自分はZend Framework PHP 標準コーディング規約を基準にしてる
http://framework.zend.com/manual/ja/coding-standard.coding-style.html
0437nobodyさん
2010/09/26(日) 14:23:07ID:???オレオレ仕様に半分なってるわ
0438nobodyさん
2010/09/26(日) 15:16:49ID:???という妄信的な理由でそっち使ってる。短いコードだからそんな微妙な早さとか関係ないんだけどね
0439nobodyさん
2010/09/26(日) 15:18:54ID:???0441nobodyさん
2010/09/26(日) 15:22:53ID:???String型はダブルchar型はシングルにしてるな
0442nobodyさん
2010/09/26(日) 15:23:15ID:q4FftNdHわかりやすく解説していただけないでしょうか?
お願いします
0443nobodyさん
2010/09/26(日) 15:24:39ID:???それはSQLっていう言語なのでデータベース板に行ってください
http://hibari.2ch.net/db/
0444nobodyさん
2010/09/26(日) 15:25:14ID:???変数いれたいけど"のたびにescapeまんどくせって思っちゃう
0445nobodyさん
2010/09/26(日) 15:26:13ID:q4FftNdHPHP側に記述するソースの話でも板違いなんでしょうか?
0446nobodyさん
2010/09/26(日) 15:28:03ID:q4FftNdH>>443
回答ありがとうございました。お礼忘れてた・・・
0447nobodyさん
2010/09/26(日) 15:32:15ID:???PHPを使ってデータベースサーバに問い合わせを行ってるわけで
その文自体はPHPとは直接関係ない
>>1にも書いてあるでしょ
> 【その他諸注意】
> ・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0449nobodyさん
2010/09/26(日) 19:13:56ID:???一応、誘導しておく
http://hibari.2ch.net/db/
でも過疎ってるからね…
0450nobodyさん
2010/09/26(日) 19:55:12ID:Jo67o0kRaタグからのアクセスとimgタグからのアクセスを判別することは可能でしょうか?
aタグでのアクセスではページを
imgタグからのアクセスでは画像を出力したいのです。
宜しくお願いします。
0452nobodyさん
2010/09/26(日) 20:52:56ID:Qwm7T4hv携帯からなのでID変わります
ランキングサイトに多数登録しているのですが
ほとんどのランキングサイトでINよりOUTを多く見せる為に
OUTのURLを1×1ピクセルのimgタグを使ってカウントを増やしています。そんなランキングを使うなと言われればそうなのですが、どのランキングもやってる状態でして。
で、そのimgタグが読み込まれる度に、こちらのindex.phpが呼び出されるので負荷が高くなります。
そこでimgタグからのアクセスの場合はこちらも1ピクセルの画像なんかを出力したいのですが、
PHPで処理しても負荷は変わりませんかね?
と言うか、可能でしょうか?
0456nobodyさん
2010/09/26(日) 22:47:37ID:Jo67o0kR携帯はまだ1/3はリファラ対応してないですし
imgタグでもリファラは吐くと思いますのでリファラの判別は不可能ですね
やっぱ判別する方法は無いですかね・・・
>>454
いや、もうその不正は普通ですよ。
携帯専用サイトはソースが見られないと思ってやりたい放題ですから
逆にINよりOUT少ない方のが信用できますが少ないです。
>>455
晒しはさすがに可哀想かな・・・汗
pcから普通に見てもimgタグの部分は見られません。
mrank.MEGArankを使ってるランキングはほとんどそうです。
OUT率の悪いサイトのOUTURLを表示させる独自タグがありまして
それを使うといい感じにOUTの数字が増やせるんですよ。
0457nobodyさん
2010/09/26(日) 22:59:19ID:???その発想がわからん
0458nobodyさん
2010/09/26(日) 23:01:46ID:???SEOなんざ汚れてなんぼ
良い子じゃ結果はついてこない
0459nobodyさん
2010/09/26(日) 23:50:53ID:???0460nobodyさん
2010/09/26(日) 23:52:47ID:???0461nobodyさん
2010/09/27(月) 01:00:34ID:UWQKEOZ6こっちがびっくりだよ
■ このスレッドは過去ログ倉庫に格納されています