トップページ⇒php
1001コメント330KB

【PHP】質問スレッドpart33【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/02/16(木) 03:19:52ID:xwXojaq/
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0075nobodyさん2006/02/18(土) 17:54:29ID:???
>>73
つか、普通にシングルクォートで括れば?

$abc = '<a href="a">' . $def . '</a>' ; (いまさら大文字は無いだろ…)
0076nobodyさん2006/02/18(土) 18:20:45ID:???
その辺ってPHPはPerlに比べると不便だよねー。
\"にしろ . での連結にしろ煩わしいし見づらいし間違っても気づきにくいし。
俺はヒアドキュメント使っちゃう派。
0077nobodyさん2006/02/18(土) 21:32:24ID:???
>>68-70 ありがとうございます。
0078nobodyさん2006/02/19(日) 00:56:32ID:???
>>76
それはお前がPerlに慣れてるからじゃないか?俺はqqとか気持ち悪いから使わないが
0079nobodyさん2006/02/19(日) 01:44:34ID:???
はじめは慣れてないと気持ち悪いものですよ。
いやあperlほど不便なものはない。。
0080nobodyさん2006/02/19(日) 02:17:35ID:???
perlの$_とか好きなんだけどなぁ。
0081nobodyさん2006/02/19(日) 03:04:43ID:???
>>78
大量のエスケープ記号を挟むよりずっと美しい記法だと俺は思うがなぁ。
0082nobodyさん2006/02/19(日) 03:06:31ID:???
そろそろスレ違いだと俺は思うがなぁ。
0083nobodyさん2006/02/19(日) 04:24:56ID:SHjAEm2n

print"<img src="sky.jpg" width="" height="" alt="">";

↑この文章のところでエラーになってしまうんですが
なにかいい方法ないですか?
0084nobodyさん2006/02/19(日) 04:37:32ID:???
>>83
わざと荒らしてるのか?つい直前でその話をしてるとこだろが。
0085nobodyさん2006/02/19(日) 04:46:34ID:???
>>83
こうしろ

?>
<img src="sky.jpg" width="" height="" alt="">
<?php
0086nobodyさん2006/02/19(日) 08:48:59ID:???
この書き方ができるのはPHPのいいとこだよな
0087nobodyさん2006/02/19(日) 14:18:30ID:???
それはロジックと区別がつきにくいからということで、コーディング規約で禁止になってる…
0088nobodyさん2006/02/19(日) 15:06:13ID:???
いいじゃない
釣りにマジレス
しなくても
0089nobodyさん2006/02/19(日) 15:56:15ID:???
つphp-mode.el
0090nobodyさん2006/02/19(日) 17:05:40ID:???
2006/02/19(Sun) 00:00:00

現在この様な形式でJSTでログに記録しています。

これをGMTで
Sun, 19 Feb 2006 00:00:00 GMT

と変換したいのですが簡単な方法ありませんでしょうか。
こんな事なら最初からunixtimeでログとっておけば簡単だったのに・・・ 
0091nobodyさん2006/02/19(日) 18:14:30ID:???
MT質問スレからの移動です。

MovableTypeに以下のスクリプトでtrackbackを送ると
「1 送信元の URL (url) が必要です。」
と帰ってくるのですが、仕様書の記載ではこれでよいはずなのです。
どなたか原因を教えていただけませんでしょうか。

<?php
$url='www.hogehoge.com';
$fp = fsockopen($url,80,$errno, $errstr, 30);
if(!$fp){echo "$errstr($errno)";}
$ping="POST http://www.hogehoge.com/tb.cgi\r\n";
$ping .= "User-Agent:BlogTool\r\n";
$ping .= "Host: http://www.hogehoge.com/tb.cgi/1\r\n";
$ping.="Content-Type: application/x-www-form-urlencoded\r\n";
$ping.="title=Foo+Bar&url=http://www.hogehoge2.com/1.html&excerpt=My+Excerpt&blog_name=Foo";

fwrite($fp,$ping);
$response = "";
while (!feof($fp)) {
$response .= fgets($fp, 4096);
}
fclose($fp);

echo $response;
?>
0092nobodyさん2006/02/19(日) 18:22:59ID:???
仕様書って言われてもどれのことか分からんので適当に「MovableType 仕様書」でググってみた。
そうやって見つけた仕様書では、
パラメータとして title, excerpt, url, blog_nameを使う事ができ、 url だけが必須、とあった。
0093nobodyさん2006/02/19(日) 18:33:27ID:???
>$ping.="Content-Type: application/x-www-form-urlencoded\r\n";
なのにurlencodeされていないのは気にしなくてもいい?
0094912006/02/19(日) 18:34:03ID:???
>>92
お手数おかけします。
(トラックバック技術仕様書 http://lowlife.jp/yasusii/stories/8.html

$pingの最終行にurlを指定しているのですが
これが仮に送信されていないのであれば
phpの書き方に問題があるのではないかと思ったのです。
0095nobodyさん2006/02/19(日) 18:44:22ID:???
>>87
じゃあ、これならOK?
 if(条件) {
  ?><img src="sky.jpg" width="" height="" alt=""><?php
 }
0096nobodyさん2006/02/19(日) 18:50:05ID:???
>>91
仕様書も読まないで想像で回答しちゃうけど、
POST 〜
User-Agent: 〜
Content-type: 〜
ときて
name=value&name=value&name=value...
とくるなら、それって前者がPOSTメソッドのヘッダ送信で、後者がクエリーデータだろ。
ならヘッダとデータの間に1行の空行が必要なはず。
$ping.="Content-Type: application/x-www-form-urlencoded\r\n";
$ping.="\r\n";
$ping.="title=Foo+Bar&url=http://www.hogehoge2.com/1.html&excerpt=My+Excerpt&blog_name=Foo";
でいけねー?
0097nobodyさん2006/02/19(日) 18:52:45ID:???
>>90
strtotime
0098902006/02/19(日) 22:37:05ID:???
>>97
ありがとうございました。解決できました。

2006/02/19(Sun) 00:00:00 で (Sun) とかが入っていても見事に変換できるのですね
0099912006/02/20(月) 00:36:09ID:???
urlencode()
空行を入れる
のいずれも駄目でした…。
思いついてUTF-8に変換してみたりもしたのですが
やはり同じ症状です。
はてさて…
0100nobodyさん2006/02/20(月) 04:23:54ID:???
>>91
多分今回の問題とは直接は関係ないと思うが
> $ping="POST http://www.hogehoge.com/tb.cgi\r\n";
> $ping .= "Host: http://www.hogehoge.com/tb.cgi/1\r\n";
は
$ping="POST http://www.hogehoge.com/tb.cgi/1\r\n";
$ping .= "Host: http://www.hogehoge2.com/\r\n";
だと思う。
0101nobodyさん2006/02/20(月) 07:53:04ID:???
PHPに関係ないね。
0102nobodyさん2006/02/20(月) 10:07:52ID:???
まだどっちとも言えないと思うが
0103nobodyさん2006/02/20(月) 12:02:40ID:???
関係のなさで言えば、
perlを実行するためのパーミッションを教えてくださいぐらい関係の無い質問だな。
遠からず近からず。
要するにこっちで質問されるとウザい。
0104nobodyさん2006/02/20(月) 17:29:29ID:???
こういう時のためにWebProg質問スレがある訳だが。
0105nobodyさん2006/02/20(月) 18:06:35ID:???
むしろくだ質があるよな
0106nobodyさん2006/02/20(月) 18:10:08ID:???
PHPと関係ない質問はくだ質でもお断り
0107nobodyさん2006/02/20(月) 19:35:43ID:???
>>103
私の手には負えません
ごめんなさいって素直に書けよw
0108nobodyさん2006/02/20(月) 20:47:28ID:???
>>107
すまん。
俺にはお前は扱いきれなかったようだ。
構いきれずに悪かったな( ´,_ゝ`)
0109nobodyさん2006/02/21(火) 01:23:25ID:csEvNJQp
指定された時刻・時間に現在表示されているHTMLから別なHTMLに変更させる作業を行いたいのですが
調べてみると出てきません。教えて神様
0110nobodyさん2006/02/21(火) 01:24:15ID:???
ユーザIDが入った配列を使って、それぞれのユーザネームを返すSQLを書きたいのですが
以下のように書くしかないですか?
SQLを何回も叩くので遅くなりそうなのが心配です。

foreach ( $user_ids as $user_id ) {
$sql = "SELECT user_name FROM users WHERE user_id = ".$user_id;
$result = $DB->GetRow($sql);
}
0111nobodyさん2006/02/21(火) 01:35:12ID:???
>>109
タイマーかけるということ?
時間判定で表示させるページ内容を変更するか、
cronを使うか。
どちらかになると思う。
0112nobodyさん2006/02/21(火) 02:29:27ID:???
>>110
IN使っちゃどうかね
$sql = "SELECT user_id,user_name FROM users WHERE user_id IN ('".implode("','",$user_ids)."')";
0113912006/02/21(火) 08:49:54ID:???
発想をまるっきり変えて解決しました。
ありがとうございました。
(解決策はスレ違いといわれそうなので、このままで)
0114nobodyさん2006/02/21(火) 09:28:08ID:???
>>112
IN使ってもいINですか?

なんつったりしてなゲハハハ
0115nobodyさん2006/02/21(火) 09:49:21ID:???
ioncubeのエンコーダーを導入しようと思うんだけどいかがでしょうか?
暗号化と高速化ってのは魅力なんですが、
これによってバグとかが発生しちゃうのが怖いんです。
ttp://www.asial.co.jp/products/ioncube/encoder/products.php
0116nobodyさん2006/02/21(火) 10:28:55ID:???
>>109
現在表示されてるHTMLを定期的にリフレッシュさせればいいんじゃない?

>>115
試してみて結果を教えてくれ。
0117nobodyさん2006/02/21(火) 11:15:21ID:???
>>109
くだ質行きっぽい内容だ。
0118nobodyさん2006/02/21(火) 11:45:50ID:???
昔から思ってるけど、あんまくだ質とこのスレの違いって無いよな。
どっちも同じぐらいのレベルの話するし。
0119nobodyさん2006/02/21(火) 13:14:03ID:???
>>109
PHPに限定しない(というより関係ない)質問だし
0120nobodyさん2006/02/21(火) 13:35:59ID:???
>>118
くだ質があればこのスレ要らないよな
0121nobodyさん2006/02/21(火) 13:39:56ID:???
うん、たいていの質問はくだらん
0122nobodyさん2006/02/21(火) 14:30:37ID:???
>>113
それは
「俺はやり方わかったけどお前らには教えてやんねーぜ、バーカ」
と近い発言になってるという事に気付いてください。

解決しても、解決策を出すのが質問スレでのマナーでしょう。
知りたい人は沢山いるわけだから。
0123nobodyさん2006/02/21(火) 17:35:39ID:???
>>122
本当に解決したか、それ以前に本人の書き込みかすら怪しいんだから相手にしても意味がない
0124nobodyさん2006/02/21(火) 18:02:42ID:ihX6B4Hf
htmlファイルに

<?php
print"test";
?>

ってやったら出力されます?
0125nobodyさん2006/02/21(火) 18:05:26ID:???
>>124
サーバの設定による。
0126nobodyさん2006/02/21(火) 19:19:01ID:???
>>124
printと"の間にはスペース入れたほうが良いと思う。
0127nobodyさん2006/02/21(火) 20:25:51ID:???
そういや引数の最初のキーに%5Bが入ると%5Eか何かに変わるバグは
PHPのフォーラムかどこかに投稿されてるのかな?
0128nobodyさん2006/02/21(火) 21:21:49ID:y3MPaFDb
>>124
もちろん出力される。
0129nobodyさん2006/02/21(火) 21:28:19ID:???
もちろんとか来たよ
0130nobodyさん2006/02/21(火) 21:45:25ID:???
何かしらは出力されるだろ
ブラウザ上で見える内容かどうかはともかく
0131nobodyさん2006/02/21(火) 21:44:20ID:???
array_combine とかの逆ってあるの?
0132nobodyさん2006/02/21(火) 21:50:37ID:???
>>131
array_keysとarray_values
0133nobodyさん2006/02/21(火) 23:20:12ID:???
>>132
サンクスコ
0134nobodyさん2006/02/21(火) 23:40:53ID:???
「出力されます?」って質問なんだから>>128も間違ってない
"ブラウザへは"出力されるんだから。
大抵のブラウザは無効なタグとして処理し、ブラウザ上には表示しないと思うが。
「phpとして処理されますか?」なら>>125だけどな。

早い話が質問内容が悪(アバウト)すぎる
0135nobodyさん2006/02/22(水) 00:44:55ID:???
まぁ正論だけど、php質問スレッドだからなぁ・・
0136nobodyさん2006/02/22(水) 02:28:56ID:???
「htmlファイルに」って言ってるし
0137nobodyさん2006/02/22(水) 02:37:21ID:???
ttp://oresama.hopto.org/~sheel/directory/

このサーバをphpを使ってクラックすることは可能ですか?
phpでダメなら他の方法でも構いません。
0138nobodyさん2006/02/22(水) 03:44:19ID:???
>>137
> phpでダメなら他の方法
スレ違い乙
0139nobodyさん2006/02/22(水) 07:39:06ID:???
>>137
可能だから、取り合えずそのサーバのアカウントを教えてくれ。
そのくらいはハック済みなんだろ?
0140nobodyさん2006/02/22(水) 08:40:56ID:???
PHPのWebシステムでモジュールを入れることで機能を追加させるように
したいのですがこの場合どういう風に構築すればよいのでしょうか?
0141nobodyさん2006/02/22(水) 09:16:43ID:???
>>139
アカウントをクラックするのもクラッキングの内だろ。自分でやれ。
0142nobodyさん2006/02/22(水) 11:12:30ID:???
最近、メ欄に無駄な空白入れてくる奴いるね。
ウザッ
0143nobodyさん2006/02/22(水) 11:29:59ID:???
外部のファイル

http://www.sample.com/test.jpg

のファイルサイズを取得する方法を教えてください。
0144nobodyさん2006/02/22(水) 11:45:19ID:???
>>143
ファイルを取得してstat
0145nobodyさん2006/02/22(水) 11:47:32ID:YzTdS2nd
windows server 2003でIIS6.0を使用してます。
PHP4.4.2をインストールし、nucleusでblogを作成したところ、
「エラー発生アプリケーション w3wp.exe、バージョン 6.0.3790.1830、エラー発生モジュール php4isapi.dll、バージョン 0.0.0.0、エラー発生アドレス 0x00002443」
とアプリケーションログに記録され、表示できなくなりました。
どうやら、PHP4.4.2のバクのようで、STABLE版の使用で解決するらしいのですが、STABLE版はIISで使用できるのでしょうか?
また、設定方法等、解説しているサイトをご存知でしたら、ご教授願えませんでしょうか?
よろしくお願いします。
0146nobodyさん2006/02/22(水) 11:52:20ID:???
file_get_contents() & getimagesize()
0147nobodyさん2006/02/22(水) 12:00:00ID:???
>>144 >>146
ありがとうございます。
説明不足でした。

外部のファイル

http://www.sample.com/test.html
http://www.sample.com/test.jpg
http://www.sample.com/test.mpg

の容量(バイト)を取得する方法を教えてください。
0148nobodyさん2006/02/22(水) 12:04:19ID:???
filesize
0149nobodyさん2006/02/22(水) 12:04:49ID:???
>>147
だから>>144&>>146じゃん
0150nobodyさん2006/02/22(水) 12:19:22ID:???
>のファイルサイズを取得する方法を教えてください。
自分で答え言ってるな。

>148が答え。
満足したら帰れ。
0151nobodyさん2006/02/22(水) 12:25:27ID:???
予知能力発動
この後、>>147は
「では、外部のファイルを取得する方法を教えてください」
と書き込もうとするであろう。


ところが、この予言の書を目にして、書込みを躊躇う。
0152nobodyさん2006/02/22(水) 12:30:48ID:???
>>151
しかし斜め上を行く147の次の書き込みは、こうであった。
「では、僕は何をどうしたらよいのでしょうか」

# HTTPヘッダもあてにならんしな<ファイルサイズ
0153nobodyさん2006/02/22(水) 12:44:11ID:???
>>152
そこへ一言「マニュアル嫁」
で、終了
0154nobodyさん2006/02/22(水) 12:46:26ID:???
ま、マニュアルにそのものずばりの情報があるわけだが(使えるかどうかは知らん)
つ[http_filesize]
0155nobodyさん2006/02/22(水) 13:16:54ID:???
>>154
HEADでContent-Length拾ってるだけのようだ
0156nobodyさん2006/02/22(水) 13:54:37ID:???
あるdirectoryに存在するファイルをリンクつきで一覧表示させたいのですが、
とりあえずopendir関数使ってここまではできました。
ttp://oresama.hopto.org/~sheel/phptest/directory.php

ソースは↓です。
<?php
//open directory
$dir=@opendir("phpdirectory") or die("failed to open the directory");
while($file = readdir($dir)) {
if (!is_dir($file)){
echo $file ."<BR>";
}
}
closedir($dir);
?>

あとはこれにリンクをつけたいのですが、
<LI><A HREF="file1">file1</A>
のようにタグをつけるにはどうしたらいいのでしょうか?
0157nobodyさん2006/02/22(水) 14:01:11ID:???
え?釣り?
0158nobodyさん2006/02/22(水) 14:14:37ID:???
釣りだな
01591562006/02/22(水) 14:43:38ID:???
え? 釣りじゃありませんよ・・・orz

当方、phpを始めたのは今日が初めてで、
自宅サーバでやっとこさphpが使えるようになったのが今日なのです。
全くのphp初心者なので、超基本的なことだったらすみませんが、
教えていただくと助かります・・・orz
01601562006/02/22(水) 14:45:22ID:???
ちなみに>>156のソースはここです。
http://masago.kir.jp/php20041028.php
これをほとんどそのまま映しただけで、
こんなのを一から作り上げるスキルなどまだまだありません・・。
0161nobodyさん2006/02/22(水) 14:47:48ID:???
>>156
echo $file ."<BR>";
を
echo '<LI><A HREF="' . $file . '">' . $file . "</A>\n";
0162nobodyさん2006/02/22(水) 14:49:45ID:???
>>159
PHPを始めたのが今日なのか、
プログラミングの世界に触れたのが今日なのか?

どっちでもいいけど、
まずは、>>1にあるマニュアルで、一つずつ命令文を調べてご覧。
せっかく始めたんなら、聞く前にまずは自分で考えてみなよ。
0163nobodyさん2006/02/22(水) 14:49:57ID:???
> phpを始めたのは今日が初めて
初めての日に(しかも数時間で)こんな所に来たらイカンよ。
まずは本を買うかやさしい猿でもわかる参考サイトを探して
自分でやりなさいな。
0164nobodyさん2006/02/22(水) 14:51:05ID:???
>>161
信でイイよ
01651612006/02/22(水) 14:51:35ID:???
まちがえた
echo '<LI><A HREF="./phpdirectory/' . $file . '">' . $file . "</A>\n";
01661562006/02/22(水) 14:59:15ID:???
>>161
あ、ありがとうございます!!
さっそくやってみます。

>>162
初めてやったのがプログラミングというかスクリプティングで
shellscript(bash)です。bashに関してはまぁ初心者は脱したくらいの
レベルになりました。(bash歴一年くらい)
したがってphpもifとかforとか結構似たようなのが出てくるので
そこまで苦痛ではありませんが、ちょっとbashと較べると
わかりづらい感じはしています。
最初はSSIで無理やりディレクトリを表示させることをやってみました。
こんな感じでできるようになったのですが、↓
ttp://oresama.hopto.org/~sheel/directory/
「phpの方が簡単」
というアドバイスをいただきましたのでphpに挑戦しているところです。

>>163
そうですね。いろいろと猿でもわかるサイトを物色している最中です。
金はないので本は買えません・・・orz
01671562006/02/22(水) 15:00:16ID:???
>>165
ありがとうございます。やってみます。
01681562006/02/22(水) 15:14:57ID:???
>>165
ありがとうございますた!できますた!
本来、directory.phpと同じディレクトリに存在する
ファイルかフォルダを一覧表示させたかったのですが、
「自分と同じディレクトリ」を差すメタキャラがphpでは
わからなかったので、しょうがなくそれは後回しにして
わざわざ下位のディレクトリ「phpdirectory」をつくって
試していたのでした。
試しにbashでいうところの「.」を試してみると、なんと
phpでも「.」は「現在のディレクトリ」を差すようですね。
ついでに本当はファイルだけでなく、ディレクトリも表示されるように
if文を削除してみたら案の定正解でした。
ttp://oresama.hopto.org/~sheel/phptest/directory.php

しかし今度は新たな問題が出てきました。
bashを使った方法ではlsコマンドで「.htaccess」ファイルを
非表示にする方法があったのですが、phpではありますか?
01691562006/02/22(水) 15:18:03ID:???
今回学んだ最大の点といえば、
phpは<とか>とかをバックスラッシュで
エスケープする必要がないみたいなので
こういう点がweb programmingに向いてるんでしょうね。
もっと勉強してみなさんに教えられるくらいにはやくなりたいと思います。
0170nobodyさん2006/02/22(水) 15:29:47ID:???
>>168.169
ん〜〜〜〜なにか微妙に的外れな事で妙に感動しているようだが・・・
まぁ、頑張ってくさい。
0171nobodyさん2006/02/22(水) 15:35:59ID:???
覚えは悪くないみたいなのでPHPの基礎をきちんとやったほうが自分のため。
自分で本を探して数千円を投資するかしないかでかなり習得のスピードが違うと思う。

まあサイトでもいいだろうけど
0172nobodyさん2006/02/22(水) 15:37:47ID:???
>>168
http://jp.php.net/manual/ja/

それとphp.iniぐらい置いとけ
/etcにphp.iniが無いとphpinfo()が言っておるぞ
0173nobodyさん2006/02/22(水) 15:40:11ID:???
>>168
>bashを使った方法ではlsコマンドで「.htaccess」ファイルを
>非表示にする方法があったのですが、phpではありますか?
って、"."で始まるファイル名は表示しないって事じゃなくて?

ならファイル名の一文字目に"."のあるファイルは表示しないって処理を加えればいい

どっちにしろ一から勉強しないと自作は出来なさそう
phpの文法が分からないのに人のソース見ても上達するのかな・・
01741562006/02/22(水) 15:50:00ID:???
>>172
ああ、さっき一度php.iniは置いたのですが、
それはsafe_modeをOFFにしたかったからなんですけど、
どうもこのサーバは元もとOFFだったようで
だったら必要ないのかな、と思って削除しちゃいましたよ。
また置いときましょうかね。
デフォルトのままでいいのでしょうかね。
ま、またあとで編集すればいいのですし、とりあえず置くだけ置いときますよ。
それにしてもphpっていちいちディレクトリごとにphp.iniを置く必要があるんでしょうかね。
いやそんな記述がphp.iniにさっきみたとき書いてあったんで。

>>171
実を言うと本は読めないのですよ・・・orz
数学とか英語は偏差値90越えは普通でしたが、
国語だけは偏差値30くらいでした。池沼クラスです・・。

>>173
そうそう、「.」で始まるファイルを非表示にしたいのですが、
これは確かにbashで培ったスキルをもってすれば意外と簡単カモデスネ。
^.とかかな、とにかくphpの正規表現調べてやってみますね。

>>170
ありがとう。がんがります!
■ このスレッドは過去ログ倉庫に格納されています