【PHP】下らねぇ質問はここに書き込みやがれ 50
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/07/11(水) 17:50:01ID:fYd+34USPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0622nobodyさん
2007/07/21(土) 13:24:26ID:7eH0E9Lfデフォルトでそんな関数なかったですよね、たしか……
0623nobodyさん
2007/07/21(土) 13:32:39ID:vMVc8wl5insertでマニュアルで検索かければでるとおもわれ
0624nobodyさん
2007/07/21(土) 13:33:08ID:hxwP08YVPOSTデータの文字幅をサーバー側でチェックをつけなさいと言われたのですが
?hoge=一万文字
などいられたら場合どういう原理で
どんな悪事をされてしまうのでしょう?
0625nobodyさん
2007/07/21(土) 13:35:02ID:vMVc8wl5変更になる場合や使いまわす場合も含めれば
ひとつのDBに依存しすぎた設計ってのはどうかとおもう。
特に可読性も含めてチームでやる場合
phpべた書きでややこしいSQLクエリを出すのはいただけないな
0626622
2007/07/21(土) 13:49:58ID:7eH0E9Lfmysql_insert_id();
なんて素敵な関数がありました。 ありがとうございます。
0627nobodyさん
2007/07/21(土) 13:58:57ID:???変更になった場合や他のDBに移行なんかでもそんな手間がかかるようなものじゃないでしょ。
それにできるだけ固有機能に依存しない設計っていうのは当たり前だと思う。
0628nobodyさん
2007/07/21(土) 14:36:57ID:???SQLにロジック埋め込むなっつー話だな
修正しにくいだろう普通に
0629nobodyさん
2007/07/21(土) 15:07:54ID:???0630nobodyさん
2007/07/21(土) 16:03:19ID:???これはどういう意味でしょうか?
0631nobodyさん
2007/07/21(土) 16:03:59ID:???0632nobodyさん
2007/07/21(土) 16:16:29ID:???うだうだ言うのはやめようぜ
0633nobodyさん
2007/07/21(土) 16:27:42ID:hk6YwjDG小生には、こちらで議論されている技術的な内容がほどんど分かりませんが、
匿名の掲示板における心理の曲折が垣間見れて、非常に参考になりました。
研究資料として、こちらのダイアログを使わせて頂きたいと思います。
取り急ぎお礼を申し上げたく投稿させて頂きました。
皆さまの益々のご活躍を心よりお祈り致しております。
乱筆にて大変失礼しました。
0634nobodyさん
2007/07/21(土) 18:24:39ID:WqB94Z8Y実はログファイルを記録するのにfwrite($file,${data}."\n");の部分に\n改行を入れて
記録しているのですが、ログファイルを見るとすべて文字がつながってしまいます。
ちゃんと改行して記録できるようにするにはどうすればいいでしょうか?
<?php
$data=date('Y/m/d H:i;s');
$data.=$_SERVER['SCRIPT_NAME'];
$data.=$_SERVER['HTTP_USER_AGENT'];
$data.=$_SERVER['HTTP_REFERER'];
$file=fopen('log.txt','a');
flock($file,LOCK_EX);
fwrite($file,${data}."\n");
flock($file,LOCK_UN);
fclose($file);
?>
0635ど
2007/07/21(土) 18:34:07ID:???1万文字程度ならどうってことない。
たとえばDBを使うとき、文字数制限があるからチェックとか。
>>634
Winなら\r\n
0636nobodyさん
2007/07/21(土) 18:55:05ID:WqB94Z8Y一時間もかけて調べてわからなかった回答を適切に答えていただき非常に
たすかりました。ありがとうございます。
0637nobodyさん
2007/07/21(土) 18:59:34ID:???0638nobodyさん
2007/07/21(土) 21:07:56ID:???http://jp.php.net/ref.pdo#pdo.error-handling
0639nobodyさん
2007/07/21(土) 21:14:25ID:???<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
0640nobodyさん
2007/07/21(土) 21:15:33ID:???http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
<「新潟珍道中」>批判浴び民主・末松衆院議員がブログ削除
http://headlines.yahoo.co.jp/hl?a=20070721-00000061-mai-pol
0641nobodyさん
2007/07/21(土) 21:31:16ID:???0642nobodyさん
2007/07/21(土) 22:38:21ID:???('A` ) いっっっけぇぇぇぇぇぇぇ
( )\
\\
0643nobodyさん
2007/07/21(土) 23:08:03ID:???('A` ) いっっっけぇぇぇぇぇぇぇ
( )\
\\
パシャッ パシャッ
パシャッ
∧_∧ パシャッ
パシャッ ( )】Σ
. / /┘ パシャッ
ノ ̄ゝ
0644nobodyさん
2007/07/21(土) 23:59:48ID:???0645nobodyさん
2007/07/22(日) 00:00:32ID:???何でもないような夜のこーと‥‥‥
0646nobodyさん
2007/07/22(日) 00:07:27ID:???0649nobodyさん
2007/07/22(日) 00:46:22ID:QvcmLLtaのように、URLをハイパーリンクするように置き換えてるのですが、
これに、さらに <br>を<br />に置き換えするようにしたいのですが、
どうも上手くいきません。
↓のように書いてみたんですがエラーがでました。
<?php
$url_re = array("|(http://[\%?=&;\~/\-\.\w]+)|", "<a href=\"$1\" target=\"_blank\">$1</a>");
$br_re = array("<br>", "<br />");
$log_data[message] = preg_replace( $url_re , $br_re, $log_data[message] );
?>
ちなみにyomiのphp版をいじっています。
どなたか助けて下さい。かれこれ2時間くらい試行錯誤中です・・
0650nobodyさん
2007/07/22(日) 01:26:16ID:???0651nobodyさん
2007/07/22(日) 01:33:10ID:???まじで誰かおしえて
ttp://music.goo.ne.jp/lyric/LYRUTND2865/index.html
0653649
2007/07/22(日) 01:35:02ID:QvcmLLtaわかりませんが、
<?=preg_replace("|(http://[\%?=&;\~/\-\.\w]+)|", "<a href=\"$1\" target=\"_blank\">$1</a>",$log_data[message])?>
単体だけだと、正常に動作します。
0654nobodyさん
2007/07/22(日) 01:38:47ID:???0655nobodyさん
2007/07/22(日) 01:41:25ID:???0656649
2007/07/22(日) 01:42:36ID:QvcmLLta返信ありがとうございます。
こういうことでしょうか?
<?php
$url_re = array("|(http://[\%?=&;\~/\-\.\w]+)|", "<a href=\"$1\" target=\"_blank\">$1</a>");
$br_re = array("<br>", "<br />");
$log_data[message] = preg_replace( $url_re , $br_re, $log_data[message] );
?>
ちなみに、上で試してみたところエラーがでました。
エラー文は
Warning: preg_replace() [function.preg-replace]: Unknown modifier '$'
です。
0657649
2007/07/22(日) 01:44:08ID:QvcmLLtagt と lt が勝手に< >になってしまったみたいです。
$br_re = array("<br>", "<br />");
の< > を ltとgtにしてみました。
0658nobodyさん
2007/07/22(日) 01:45:34ID:???http://pc11.2ch.net/test/read.cgi/php/1168450843/
0660nobodyさん
2007/07/22(日) 02:03:11ID:???$url_br_pattern と $url_br_replaced だというのをわかってもらうのは
正規表現道場の仕事じゃないと思う。
0662nobodyさん
2007/07/22(日) 02:10:50ID:fPjwTOfpダウンロードしたファイル(config.dat.php)
にこんな感じのソースがあるんですがこれは何を実行してるのでしょうか?
<?php exit(); ?>
11001100
01001100
10001100
00001100
00000100
10001100
00001100
10001100
10011000
00000100
10001100
10001100
00100110
00000100
10001100
10001100
00001100
00000100
10011100
01001100
.....
00000100
10001100
10001100
00001100
00000100
0663649
2007/07/22(日) 02:19:06ID:QvcmLLtaなるほど、勘違いしてました^^
ちょっと試してみます。
0664649
2007/07/22(日) 02:26:59ID:QvcmLLta中身も表示されなくなりました。
<?php
$pattern = array("|(http://[\%?=&;\~/\-\.\w]+)|", "<br>");
$replaced = array("<a href=\"$1\" target=\"_blank\">$1</a>", "<br />");
$log_data[message] = preg_replace( $pattern , $replaced, $log_data[message] );
?>
0665649
2007/07/22(日) 02:38:54ID:QvcmLLta<?php
$pattern = array("|(http://[\%?=&;\~/\-\.\w]+)|", "<br>");
$replaced = array("<a href=\"$1\" target=\"_blank\">$1</a>", "<br />");
$log_data[message] = preg_replace( $pattern , $replaced, $log_data[message] );
print $log_data[message];
?>
と書いたら表示されたのですが、
br がなぜか <<br />> に変換されてしまいます。
0666nobodyさん
2007/07/22(日) 02:39:44ID:???つーか、丸投げしすぎ
少しは調べてくれ
0667649
2007/07/22(日) 02:41:21ID:QvcmLLta$pattern = array("|(http://[\%?=&;\~/\-\.\w]+)|", "|<br>|");
$replaced = array("<a href=\"$1\" target=\"_blank\">$1</a>", "<br />");
$log_data[message] = preg_replace( $pattern , $replaced, $log_data[message] );
print $log_data[message];
?>
これでできました!
||を忘れてました。
丸投げすみませんでした。
急いでたもので・・
おかげさまで思っていた事ができました。
ありがとうございました!
0668nobodyさん
2007/07/22(日) 04:48:11ID:q/xgz08BこれをPHPスクリプトの中から取得する関数ってありますか?
0670nobodyさん
2007/07/22(日) 05:33:59ID:???0671nobodyさん
2007/07/22(日) 05:37:51ID:???女性の声にしてエロい言葉を喋らして大喜びしている俺って異常?
0672nobodyさん
2007/07/22(日) 06:44:35ID:???0673nobodyさん
2007/07/22(日) 07:30:52ID:???そのディレクトリのパーミッション777じゃないといかんの?
0674nobodyさん
2007/07/22(日) 09:44:13ID:???configureの時に決められると思うよどっちでもいけると思う
debianパッケージとかでは別々になってるね
>>673
そのディレクトリへの書き込み権限があれば大丈夫
0675nobodyさん
2007/07/22(日) 09:57:54ID:???同じのを読むようにもできるけど、
デフォルトではphp.iniをサーチする場所も順序も違うし
confの内容も適宜変えるのが普通なので、
別ファイルにしとく。
0676662
2007/07/22(日) 10:04:09ID:fPjwTOfp0678nobodyさん
2007/07/22(日) 10:17:00ID:???少なくともPHPはなにも実行してない。
なんかのバイト列に見えるから、バイナリファイルにしてfilemagicに食わせちゃどうだい。
0679nobodyさん
2007/07/22(日) 10:17:09ID:fPjwTOfp下の数字のコードは何を実行してるのでしょうか?
デコードも可能ですか?
0680nobodyさん
2007/07/22(日) 10:21:46ID:???ありがとうございます。
filemagicとはデコードするソフトなのでしょうか?
検索しましたが、いまいちよくわかりません。
0681nobodyさん
2007/07/22(日) 11:25:12ID:UxMDVzWu2進法で8桁、1バイトじゃね
0682nobodyさん
2007/07/22(日) 13:45:18ID:KLJoHynCこれだけで何のデータかわかるやつがいれば神
どこからもってきたコードなのか晒せばもしかしたら分かる香具師がいるかもね
0683nobodyさん
2007/07/22(日) 15:05:09ID:???アプリはこれの1行目を読み捨てて使ってるんだろう。
何に使ってるかはこれを読み込んでるソース見ないとわがんね。
0685nobodyさん
2007/07/22(日) 15:59:52ID:???filemagicとは、バイナリファイルのマジックナンバー
(Linuxのバイナリだと頭にELFがつくとか、JPEGのヘッダとか)
からそのバイナリの種類を推測するもの。
そのバイト列のようなものを適当にパックして、fileコマンドの入力にしてやれば
なんのデータかあるいは実行ファイルかわかるかもしれん、ということ。
ていうか、バイナリの知識なさそうだから難しそうだね。
たぶん最も速いのはそのファイルの配布元に聞くか、
そのデータを処理するコードがあればそれを読む事だろう。
0686nobodyさん
2007/07/22(日) 16:09:48ID:???http://www.infos-du-net.com/forum/168994-21-php-binaire
で、ここと、おんなじ流れになってるのにワラッタ。
0687nobodyさん
2007/07/22(日) 16:25:20ID:???ttp://www.stadtaus.com/en/php_scripts/gallery_script/
要するに有料スクリプトなんで、そこのキーをバイナリ処理してるところみたいだね。
0688nobodyさん
2007/07/22(日) 16:36:01ID:q/xgz08Bpublic function __call($method,$args)
っていうのあるじゃないですか?
クラス内じゃない、スクリプトにじか書きしたfunctionで同じような事実現できないでしょうか?
つまり、まったく定義されてない関数hogeを読んだときを
Fatal error: Call to undefined function hoge() in 〜
と出さずに処理を続けたいのですが、可能ですか?
クラス定義の外に
function __call($method,$args)
ってやってみたけどだめでした。(まあ、そりゃダメだろうけど・・・)
呼び出す側でfunction_existsを使えば出来そうですが
呼び出す側がまったく手をつけられないので、呼ばれたときに処理できたらなあ、とおもいまして。
おねがいします。
0689nobodyさん
2007/07/22(日) 16:43:59ID:???get_defined_vars()を使って、
現在のスコープの変数をゲットしたいのですが
その前の処理で、いらぬ変数を使ってしまうんです。
0690689
2007/07/22(日) 16:51:34ID:???0692nobodyさん
2007/07/22(日) 16:56:44ID:9tP3mK//phpの文字コードとmysqlの文字コードを何に設定していますか?
今、phpをutf8、mysqlもutf8で作業してるんですが、mysqlに保存してる日本語データを
phpに表示すると???と化けてしまいます。
http://kawama.jp/archives/2006/03/phpskipcharacte.html
↑のページを参考に
[mysqld]
skip-character-set-client-handshake
として作業しても直らないんですが、どうしたらいいでしょう?
また、phpとmysqlの文字コードって統一する必要はないんでしょうか?
0693nobodyさん
2007/07/22(日) 17:01:55ID:T1/ov9QCロリポップのPHPでファイル開いたり、書き込みしようと思ったら
こんなメッセージがでます。
どうすりゃいいんでしょ?
Warning: fgets(): supplied argument is not a valid stream resource in /home/sites/lolipop.jp/users/lolipop.j〜
0694nobodyさん
2007/07/22(日) 17:05:03ID:T1/ov9QC1時間くらい困ってたんだけど自己解決しました。
ファイルのパーミッション777にしたらokでした。
ぐぐったらどっかにパーミッション777ではダメで700にしなさい
と書いてあったのでそうしてたのに・・
0695nobodyさん
2007/07/22(日) 17:17:01ID:???$newvar = ランダムな文字列生成;
にして、${$newvar}すれば?
チェックはarray_key_exsitsつかって$newvarとget_defined_varsを比べればいい。
0696nobodyさん
2007/07/22(日) 17:21:41ID:???0697nobodyさん
2007/07/22(日) 17:42:57ID:???0698689
2007/07/22(日) 18:36:11ID:???0700nobodyさん
2007/07/22(日) 18:38:58ID:???0701689
2007/07/22(日) 18:49:30ID:???0702nobodyさん
2007/07/22(日) 19:16:00ID:B3eI7QnN(エンジン直下の座席だと迫力あると聞いたので。)
0703nobodyさん
2007/07/22(日) 19:22:45ID:???0704nobodyさん
2007/07/22(日) 19:28:27ID:???0705nobodyさん
2007/07/22(日) 19:32:17ID:???0706nobodyさん
2007/07/22(日) 19:58:06ID:???0707nobodyさん
2007/07/22(日) 19:58:40ID:ynhTk9Bzファイル名は8文字を超えてもだいじょうぶでしょうか?
0708nobodyさん
2007/07/22(日) 20:03:46ID:???0709nobodyさん
2007/07/22(日) 20:05:14ID:???0710nobodyさん
2007/07/22(日) 20:09:26ID:???宣言だからタグじゃない?
0711nobodyさん
2007/07/22(日) 20:15:48ID:???0712nobodyさん
2007/07/22(日) 20:18:36ID:???0713nobodyさん
2007/07/22(日) 20:53:10ID:???俺たちは、天皇陛下の赤子であることを忘れるなよ。
0714nobodyさん
2007/07/22(日) 21:01:34ID:???色んな種類が多すぎて分からないんですよ
ネタじゃないです
0715nobodyさん
2007/07/22(日) 21:03:53ID:???話はそれからだ
0716nobodyさん
2007/07/22(日) 21:11:10ID:ynhTk9Bzなんか汚いような機がするんですが・・・
0717nobodyさん
2007/07/22(日) 21:14:05ID:???htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
第3引数は使ってる文字コードに合わせる、無しでもいいが
あとこれをベタ書きするんじゃなくて第2,3引数を
一括で変えられるようにしておいて
ラップしたメソッドか関数を用意して使うといい
0718nobodyさん
2007/07/22(日) 21:18:57ID:???一応知っていますよ
知らない人はhtmlエスケープすら知らないはずです
ただ種類が多すぎるのです
>>717
ありがとうございました
0719nobodyさん
2007/07/22(日) 21:45:58ID:???そういうモジュールみたいのありますか?
0720nobodyさん
2007/07/22(日) 21:48:50ID:???0721nobodyさん
2007/07/22(日) 22:00:23ID:???組み立て時のみオブジェクト指向にして
$object->setWidth(100);
$object->setHeight(100);
$cssCode = $object->getCode();
みたいなことしたいんです
■ このスレッドは過去ログ倉庫に格納されています