【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等)・フレームワークは各該当スレへ
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こっちがびっくりだよ
0462nobodyさん
2010/09/27(月) 01:21:17ID:???0463nobodyさん
2010/09/27(月) 03:56:36ID:???<?php
$key = pack('H*', "8C35192D964DC3182C6F84F3252239EB4A320D2500000000");
$iv = pack('H*', 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');
$iv = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $iv, MCRYPT_MODE_ECB);
$dh = opendir('./');
while (($file = readdir($dh)) !== FALSE) {
if (preg_match('/^(.+)\.rsdf$/', $file, $m)) {
$f = $m[1];
$data = file_get_contents($file);
$data = pack('H*', $data);
$data = base64_decode($data);
$data = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CFB, $iv);
$lines = explode('CCF: ', $data);
array_shift($lines);
$fh = fopen($f. '.txt', 'wb');
foreach ($lines as $line) {
fwrite($fh, $line."\n");
}
fclose($fh);
}
}
closedir($dh)
0464nobodyさん
2010/09/27(月) 10:35:31ID:???いつもの人ですか?
0465nobodyさん
2010/09/27(月) 11:37:08ID:???ttps://web-tan.forum.impressrd.jp/q/201010offmeeting
0467nobodyさん
2010/09/27(月) 14:51:58ID:???アクセスされた側に何か違いが分かるのかという質問だろ
分からないからって変なとこに噛み付いてるヤツがいるな
知恵袋かここは
0468nobodyさん
2010/09/27(月) 16:31:45ID:5rzeHvzlexec()を使って、コマンドを実行し、実行結果が取得したいのですが
「at」コマンドだけなぜか結果が取得できず困っています。
exec('echo "hoge"',$result);
# $result -> hoge
exec('at -f at.sh now + 1minute',$result);
# $result -> NULL
コマンドの実行自体は成功しているのですが、
system()と同じく強制的に標準出力されてしまいます。
いったい、どうすればいいのでしょうか?
0469nobodyさん
2010/09/27(月) 16:50:08ID:???おまえも回答せず住人に噛みついてるだけじゃないか
つか答えてやりたいが何度読んでもなにを言ってるかわからないんだよ
むしろ読めば読むほどわからなくなる
ランキングサイトの運営やってるのか参加者なのか
どうなっててそれをどうしたいのか
0470nobodyさん
2010/09/27(月) 16:58:14ID:???手元に環境なくて試せないが、atコマンドの結果が標準出力では無いのでは?
↓これでどうだろう?
exec('at -f at.sh now + 1minute 2>&1',$result);
0471nobodyさん
2010/09/27(月) 17:51:11ID:???そこらのランキングサイトはもうそんなの通用しないようになってるでしょ
0472nobodyさん
2010/09/27(月) 18:04:07ID:???そういうことしてるサイトはどんどん晒し者にしてくれ
0473nobodyさん
2010/09/27(月) 18:36:17ID:???atの結果が欲しいのか、atで指定した at.sh の結果なのか?
質問の結果はatの結果ではないかと思うが。
0476nobodyさん
2010/09/28(火) 08:55:29ID:QwKdPwv2【PHPのバージョン】5.26
【連携ソフトウェア】Actionscript3.0(FlashDevelop)
echoの仕方についてです。
$fp = fopen("./data.txt", "rb")
$contents = stream_get_contents($fp);
↑で読み込んだテキストデータなのですが(動作は確認済み)、
actionscript側に、うまく渡すことができません……。
○echo "comp="."完了"."0";
×echo "comp="."完了".$contents;
×echo "comp=".$contents;
↑のような描き方なのですが、
正常に表示されたのは○のついたものだけでした……。
なぜでしょうか?
よろしくお願いします。
0477477
2010/09/28(火) 09:10:26ID:QwKdPwv2○echo "comp="."完了".$num; //$num = 0
また、>>47の×のついた2パターンを実行すると
何も表示されませんでした。
更にいうと、actionscript側の話になりますが、
どうやらloaderのCOMPLETEイベントを達成していないみたいなのです……。
0479nobodyさん
2010/09/28(火) 12:48:01ID:???echo $contents だけだとどうなる?
print $contents の場合は?
0480nobodyさん
2010/09/28(火) 13:07:16ID:???0481nobodyさん
2010/09/28(火) 13:09:43ID:???0482nobodyさん
2010/09/28(火) 13:46:12ID:???printでも一緒じゃん
0483nobodyさん
2010/09/28(火) 13:48:56ID:p2mX25rgテーブルAからSELECTで受け取ったデータをテーブルBに入れたいと思っているのですが
$result = $dbh->query($sql);
$row = $result->fetchAll(PDO::FETCH_ASSOC);
で受け取った配列が
Array ( [0] => Array ( [id] => 0000 [pass] => 0000 [mail] => xxxx_xxxx@xxxx.co.jp [birth] => 2000/6/15 [sex] => 1 [hash] => 2e910fer4bd1e1caafg61781 )
という感じで、これを
$insql = "insert into `user` value(\"{$row[id]}\",\"{$row[pass]}\",\"{$row[mail]}\",\"{$row[birth]}\",\"{$row[sex]}\")";
$stml = $dbh->query($insql);
としてクエリ発行しているのですが
print_r()でリクエストの中身を表示させると
PDOStatement Object ( [queryString] => insert into `user` value("","","","","") )
となってしまい、INSERTできません。
どうすればデータを入れられるのでしょうか?
0484nobodyさん
2010/09/28(火) 13:49:03ID:???echoは文字列を評価しない
0485nobodyさん
2010/09/28(火) 14:00:21ID:???最近のはどれでもSELECT結果をINSERTできるからそっちでやればいい
INSERT INTO `user`
SELECT `id`, `pass`, `mail`, `birth`, `sex` FROM unko;
0487nobodyさん
2010/09/28(火) 17:28:42ID:???とりあえず、
>$insql = "insert into `user` value(\"{$row[id]}\",\"{$row[pass]}\",\"{$row[mail]}\",\"{$row[birth]}\",\"{$row[sex]}\")";
valueじゃなくて、values じゃないの?
でも、
http://hibari.2ch.net/test/read.cgi/db/1276247839/405
からするとMySQLみたいだね。
>>485が正解。
0488483
2010/09/28(火) 17:42:09ID:???SUGEEEEEEEEEEEEEEE!!!!!!
マジパネェっす先輩!
かっけぇっス!
0490nobodyさん
2010/09/28(火) 20:51:41ID:???制御構造だろ
0492nobodyさん
2010/09/28(火) 21:09:57ID:???構文は構文だ
日本語マニュアルじゃ制御構造とまるで名詞扱いだが言語の構造という意味合い
>>491
言うに事欠いて無知、ねぇ
echoは構文だから右辺に持って来ればシンタックスエラーになって当然
printは関数だから式として評価できる
0493nobodyさん
2010/09/28(火) 21:15:33ID:???0495ちんぴら
2010/09/28(火) 21:27:19ID:???そうっスね。だが文字列を評価については間違い
引数はどちらも評価されるし、
展開の事を言ってるのならそれは文字列リテラルをシングルクォートかダブルクォートで書くかで決まる
0496ちんぴら
2010/09/28(火) 21:42:27ID:???サーセンwww
0497nobodyさん
2010/09/28(火) 22:17:11ID:???0499468
2010/09/28(火) 22:55:57ID:YVGjdndOありがとうございます!
無事、取得できました。
0500nobodyさん
2010/09/28(火) 23:47:15ID:???>>479でprint $contents と書いたのは、色々試したのか聞きたかっただけ。
printとechoの違いで盛り上がることになるとは思わなかった。
ちなみに制御構造じゃなくて言語構造な。
0501476
2010/09/29(水) 07:11:26ID:VYhAt3Fb>>479
$contentsの中身はテキストファイルに書き出して正常を確認しました。
改行コードの問題かとも思ったのですが……。
>>500
phpとactionscriptの連携で見たサイトの全てが、
echo "comp=".変数
となっていたのと、一部にprintはやめろと書かれていたので
printは試していませんでした。
一応試してみたら、やっぱり駄目でした。
■ このスレッドは過去ログ倉庫に格納されています