【PHP】下らねぇ質問はここに書き込みやがれ 46
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/05/12(土) 16:43:57ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0083nobodyさん
2007/05/13(日) 23:41:09ID:Abz7uB+8どうもありがとう
0085nobodyさん
2007/05/14(月) 00:30:06ID:???そこで、停止している10秒間に、10、9、8、7、、、と
カウントダウンを表示させたいのですが、どのように記述すれば
良いでしょうか
0087nobodyさん
2007/05/14(月) 00:46:07ID:???こんなんじゃダメか?
for ($i = 10; $i >= 0; $i--) {
printf("\r%2d", $i);
sleep(1);
}
0088nobodyさん
2007/05/14(月) 00:52:05ID:???0089nobodyさん
2007/05/14(月) 00:56:58ID:5a5f7yKwThx!なるほど。バッチで実行してもいいんじゃね?phpでpopアクセスするやつ作って。
0091nobodyさん
2007/05/14(月) 01:07:06ID:anxZlOK/$imoon=5;
function leap($year){
$count=0;
$count += floor($year/4);
$count -= floor($year/100);
$count += floor($year/400);
return $count;
}
$leap = leap($iyear)-leap(1800+(($imoon>2)?-1:0));
echo "leap=$leap\n";
$moon = array(0,31,28,31,30,31,30,31,31,30,31,30,31);
$day = ($iyear-1800)*365 + $leap;
for($i=1; $i<$imoon; $i++)
$day+=$moon[$i];
echo "day=$day\n";
$dotw=($day+3)%7;
echo "dotw=$dotw\n";
for($i=0; $i<$dotw; $i++)
echo " ";
for($i=1; $i<=$moon[$imoon]; $i++){
printf("%2d ",$i);
if(!(($i+$dotw)%7))
echo "\n";
}
0092nobodyさん
2007/05/14(月) 01:07:34ID:???0093nobodyさん
2007/05/14(月) 01:12:07ID:???0094nobodyさん
2007/05/14(月) 01:14:51ID:w1xXl1JOon/Apache2.2/conf/httpd.conf: Cannot load C:/php/php5apache2.dll into server: \x
8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8
c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B
Note the errors or messages above, and press the <ESC> key to exit. 27...
C:/php/php5apache2.dllはあるのにこう言われます
何故ですか
0095nobodyさん
2007/05/14(月) 01:15:34ID:w1xXl1JO0096nobodyさん
2007/05/14(月) 01:16:34ID:dsmo737wエラーメッセージ答えてもエラー内容わからないと解決しなくね?
0099nobodyさん
2007/05/14(月) 01:22:01ID:???apache2,2用のdllを呼んでからでなおしてこいやボンクラ
0100nobodyさん
2007/05/14(月) 01:23:47ID:???0101nobodyさん
2007/05/14(月) 01:37:31ID:Rgccl4HD$str2 = "/BBB/CCC/DDD";
から共通部分の"/BBB/CCC"だけを抜き取るにはどうしたらいいの?
0102nobodyさん
2007/05/14(月) 01:40:52ID:???0103nobodyさん
2007/05/14(月) 01:53:13ID:w1xXl1JOどうもありがとう
おかげでエラーは出なくなりました
でもまだテスト用のスクリプト動かすとエラーが出ます
たとえば
<? phpinfo() ?>
だけのphpファイルを開くと
Parse error: syntax error, unexpected '@' in C:\Pr 略 est\phpinfo.php on line 2
になります
他のスクリプトの内容でも同じエラーです
質問厨ですいません
0104nobodyさん
2007/05/14(月) 01:56:07ID:???0105nobodyさん
2007/05/14(月) 01:57:06ID:w1xXl1JOその通りでした
ありがとうございました
0106nobodyさん
2007/05/14(月) 02:01:42ID:???0107nobodyさん
2007/05/14(月) 02:02:37ID:???0108nobodyさん
2007/05/14(月) 02:06:24ID:???0109nobodyさん
2007/05/14(月) 02:07:51ID:???0110nobodyさん
2007/05/14(月) 02:17:09ID:???確かにそれはそうだ。
でも出来るけどやらないのと出来ないからやらないでは
全然意味合いが違ってくると思うんだ。
0113101
2007/05/14(月) 03:04:28ID:Rgccl4HD$str2 = "/BBB/CCC/DDD";
$temp = end(explode("/", $str1));
$pattern = "`^(.*{$temp})`";
preg_match($pattern, $str2, $match);
echo $match[1];
自分で書いたのはこんな感じなんだけどなんかたまたま動いてるだけな気がするんです
"/"で分割したから$str1が"/"で終わっちゃうと当然思い通りには動作しないし。
$str1はファイルの絶対パス、すなわち"/"で終わらないって条件下ならこれでいいのかな
やりたいことをうまく説明できてなくてすまん
0114nobodyさん
2007/05/14(月) 03:24:35ID:???難しく考えすぎるな。楽をしろ
0115nobodyさん
2007/05/14(月) 05:38:18ID:Qx50SkdAそこで、停止している10秒間に、10、9、8、7、、、と
カウントダウンを表示させたいのですが、どのように記述すれば
良いでしょうか
0116nobodyさん
2007/05/14(月) 05:54:14ID:???CLIならループで。
Webならクライアント側のJavaScriptで。
必要ならばセッション張って。
それ以前に仕様を見直したほうが無難。
0117nobodyさん
2007/05/14(月) 06:46:28ID:Qx50SkdAWEBでやりたいと思ってます
なるほど。JavaScriptかぁ・・・
例えば、10秒のGifアニメを張るとかもアリでしょうか?
>それ以前に仕様を見直したほうが無難。
どういう点がマズイ仕様でしょうか
0118nobodyさん
2007/05/14(月) 07:11:02ID:???・・・・・・。
0120nobodyさん
2007/05/14(月) 09:06:46ID:???サーバー資源を10秒も食いっぱなしにすんなよ。
JavaScriptで10秒timerかけて、10秒後にサーバーに再アクセス、が妥当じゃないの?
GIFアニメの再生速度はマシンパワーに依存するから「10秒の」ってのは作れないと思う。
これもJavaScriptで1秒間隔で別の画像に次々切り替えるとかにすれば。
0121nobodyさん
2007/05/14(月) 09:36:02ID:???<script type="text/javascript">
onload = function () {
var counter = document.getElementById("counter");
var n = 10;
(function () {
counter.innerHTML = n;
if (n-- > 0) setTimeout(arguments.callee, 1000);
else counter.innerHTML = "ぬるぽ";
})();
}
</script>
<span id="counter"></span>
0122nobodyさん
2007/05/14(月) 11:35:48ID:dsmo737wタイトルが見ることができません。
何かタイトルを見る方法はないのでしょうか?
あと、メールアドレスが偽装で送られてきた場合は、
この関数ではそれを見破る(?)ことはできるのでしょうか?
0124nobodyさん
2007/05/14(月) 11:56:04ID:dsmo737w�@メールのタイトルを取得する方法
�Aメールアドレスが偽装されている部分はどうなるの?
です
0125nobodyさん
2007/05/14(月) 12:06:16ID:???1. ヘッダを取得する関数があるような気はしませんか。
2. ヘッダを取得する関数があるような気はしませんか。
何を以って偽装とするのかわかんないけど
複数プロバと契約しててSMTP1つで片づけてる人も「偽装」?
0126nobodyさん
2007/05/14(月) 12:08:59ID:dsmo737wあー
mb_send_mailなのでヘッダーで自分のメールアドレスを指定してたりすると偽装?
わっかんねwwwwww
headerに
[subject] => =?ISO-2022-JP?B?GyRCJCokUiQ1IXkbKEI=?=
ってりましたが、これですか、どもです
こんな形の文字化け初めてみました
0127nobodyさん
2007/05/14(月) 12:29:35ID:???発信元サーバー情報は取得できるよ。
0128nobodyさん
2007/05/14(月) 12:44:30ID:dsmo737wmessage_idの項目のことですかね?
=?ISO-2022-JP?B?GyRCJCokUiQ1IXkbKEI=?=
↑文字化けしてますけど、どうやって戻すのでしょう?
mb_convert_encoding($str, "utf-8","iso-2022-jp")
mb_convert_encoding($str, "utf-8","auto")
試しましたが元に戻りません・・・
0129nobodyさん
2007/05/14(月) 12:50:43ID:???0130nobodyさん
2007/05/14(月) 12:51:48ID:dsmo737w落ち着け
下のは新しい質問だ
0131nobodyさん
2007/05/14(月) 12:57:58ID:???mb_decode_mimeheader
ていうかそんなのも分からずメール関連やろうなんて無謀だから諦めた方が…
まずはメールのプロトコルとかヘッダーとか理解したほうがいいよ
0133nobodyさん
2007/05/14(月) 13:09:19ID:dsmo737wなるほど!urlencodeみたいなものですね
0134nobodyさん
2007/05/14(月) 13:27:38ID:fBoB1LaJ最初にif文で$_GETで受け取るべき値があれば受け取り変数$nameに入れるとします。受け取る値がない場合はもちろん受け取りません。
そしてTEXTBOX(<input type="text">)に$_GETで得た値をデフォルトで入れます。$_GETで受け取らない場合は
textboxはデフォルトでは空白です。
それを実現するには、
本によると<input type="text" value="<? echo $name; ?>">となっています。
最初のif文では
if(isset($_GET)) {
$name=$_GET;
}
としています。要するに$_GETが空白の場合は$nameは使用しません。
その場合、<input type="text" value="<? echo $name; ?>">での$name使用は
エラーにならないんですか?C言語だといきなり今まで使用していない変数(値も代入されていない)を使うとエラーになるんですが。。
PHPでは、エラーもなく通るんですか?
たしか、なにかの本ではこのような状況のとき、厳密にはエラーになるときもあるとかいてありました。
0136134
2007/05/14(月) 13:35:37ID:fBoB1LaJどうもありがとうございます。中身がない場合は空のデータなんですね。
ということは<input type="text" value="">となるんですね。
ありがとうございました。
0137nobodyさん
2007/05/14(月) 13:37:29ID:???$name = "value=\"".$_GET."\"";
<input type="text"<? echo $name; ?>>
にすればいいかもしれんね
0138nobodyさん
2007/05/14(月) 13:50:25ID:???$array[0]['type']
で見れるけど
simplexmlloadだと、
配列の中身見るとき$xml->type;だよね
0139虚弱PHP
2007/05/14(月) 13:56:21ID:???質問は↓でいいのかな?
> C言語だといきなり今まで使用していない変数(値も代入されていない)を使うとエラーになるんですが。。
> PHPでは、エラーもなく通るんですか?
そういうもんです。
スクリプト系の言語ではわりと普通のことだと思います。
NOTICEも表示するようにしとけば、NOTICEは起きると思いますよ。
0141nobodyさん
2007/05/14(月) 14:33:07ID:???0142nobodyさん
2007/05/14(月) 14:38:16ID:???というif文があるんですが、$valueが'flg'という文字列でも上記のif文がtrueになるのはなぜですか?
$ret[] = $value['table'] . '.' . $key;
という文がそのif文の中にはあるんですが、この部分の返り値が"f.hoge"となってます。
0143142
2007/05/14(月) 14:44:08ID:L2qcEQSyあと、たまに同じ値を比べてもFALSEな時があるんですが、
それもforeachブロック内です。
===で比べないとTRUEになりません。
なんかあるんでしょうか。
0144nobodyさん
2007/05/14(月) 14:51:14ID:???代入する場合は存在していなくても問題ない。
参照する場合は存在していないとNOTICEエラーが発生する。
(Undefined〜系、エラーレベルE_ALLじゃないと出ない。値的にはnullが返る。
それはそうとその通りだと$_GETは常にセットされてるし、配列なんだけど写しミス?
>>142
文字列型も配列型のように角括弧でバイト単位でアクセス出来る為。
ただしオフセットは数字以外は[0]と見なされて1byte目を参照することになる。
そのfはflgの先頭文字。
0145nobodyさん
2007/05/14(月) 15:16:58ID:???0146nobodyさん
2007/05/14(月) 15:21:02ID:???登録しないで視聴した場合、それなりの料金はIPから調査されてちゃんと後日請求されます
0147nobodyさん
2007/05/14(月) 16:09:05ID:k9XxZtyZどういうケースで使うのでしょうか?
カウンターでカウントするときに使用するぐらいはわかるのですが、
ブロック内が終わっても値を保持し続けるといっても、
具体的にどういうケースで使えばいいのかいまいち理解できません。
どういう所で使うのか、具体的なケースをいくつかあげていただけませんでしょうか?
0148nobodyさん
2007/05/14(月) 16:16:40ID:???0149nobodyさん
2007/05/14(月) 16:17:37ID:???0152nobodyさん
2007/05/14(月) 16:35:11ID:k9XxZtyZそうですか。
いくつか例をあげていただければ、共通項が見出せると思ったのですが、
頻繁に使うことはないとのことなので気にしないことにします。
0153nobodyさん
2007/05/14(月) 16:45:23ID:???他は特に使わないと困るって所があまり無い気がする。
0154nobodyさん
2007/05/14(月) 16:47:02ID:???楽して勉強しようとするな
0155nobodyさん
2007/05/14(月) 16:48:14ID:???0156nobodyさん
2007/05/14(月) 16:58:26ID:???そういう俺ルールを作るなボケ。
くだらねぇ質問ならなんでもいいんだよカス。
ていうかこの時間の回答者は煽ることしかできない低レベルな馬鹿ばっかりだな。
俺も含めて。
0157nobodyさん
2007/05/14(月) 17:00:26ID:???0158nobodyさん
2007/05/14(月) 17:08:22ID:???0159nobodyさん
2007/05/14(月) 17:09:21ID:byqD8Lza定数を定義するときは、constを使えばいいのでしょうか?
// メソッドのみにしか使えないとエラー
public static final $CONSTANT = "CONSTANT";
// これでいいのかな?
const CONSTANT = "CONSTANT";
0161nobodyさん
2007/05/14(月) 17:34:13ID:Gq/W6/hfhoge2の中には、inc.phpというファイルがあり、
main.phpから、inc.phpを呼び出しています。
そこで、main.phpから、inc.phpが置かれている、「hoge2」という値を取得したいんですが、どうしたらいいんでしょうか?
よろしくおねがいします。
0162161
2007/05/14(月) 17:36:08ID:Gq/W6/hf上の書き込みの、3行目、
X main.phpから、inc.phpを呼び出しています。
O inc.phpからmain.phpを呼び出しています。
ファイル名が逆のままですが、よろしくです。
0163nobodyさん
2007/05/14(月) 17:42:51ID:???0164nobodyさん
2007/05/14(月) 17:50:21ID:Gq/W6/hfどうもありがとうございます。
/php/hoge2 って感じで出力されるんですが、hoge2だけ(自分のいるディレクトリ名だけ)を取得したい場合の関数ってあります?
それとも、これを正規表現なりでいじって取るしかないんでしょうか。
何度もすいません。よろしくおねがいします。
0166nobodyさん
2007/05/14(月) 18:01:29ID:xEs1nUuBhttp://pc11.2ch.net/test/read.cgi/php/1168450843/86-
でpreg_replaceに関して質問していましたが話題が正規表現からズレてきましたので
こちらで質問させてください。
----------------------------------------------------------
90 :86:2007/05/14(月) 15:45:03 ID:???
後方置換する時に関数かましたくマニュアル眺めてたら「e修飾子」をみつけたのですが
>>87の「S修飾子」と同時に使おうと
$pattern = "/(.*?)<html_start>(.*)<html_end>(.*?)/se";
$replacement = "'\\2''\\1''\\3'";
こんなコードを書いてみた所
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
Failed evaluating code:
といった感じで怒られます
修飾子2個は同時に使えないのでしょうか…?
----------------------------------------------------------
以上ですがまとめますと
「preg_replaceの修飾子を2個指定したい(eとs)時の正しい書式」
を教えてくださいまし。
0167nobodyさん
2007/05/14(月) 18:03:15ID:???0168nobodyさん
2007/05/14(月) 18:03:16ID:byqD8Lzaわからないなら答えなくていいですよ。
やはりPHPはユーザレベルも低いですね。
失望しました。
0169nobodyさん
2007/05/14(月) 18:04:09ID:???くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0170nobodyさん
2007/05/14(月) 18:05:03ID:Gq/W6/hfありがとうございます。解決しました!
ところで、もう1個疑問があるのですが、
a.phpでdefine("OUT", "out.html")と定義して、./hoge/b.phpをrequireで呼び出したとき、
b.phpでOUTに出力すると、b.phpのディレクトリにファイルができるのか、a.phpにファイルができるのか、よくわかりません。
今自分で、試してみると、a.phpのディレクトリに出力されたんですけど、
b.phpのディレクトリ上でout.htmlとして書き込んでいるのに、なぜ、a.phpのディレクトリにできちゃうんでしょうか?
requireの挙動がよく理解できない・・・。
0171nobodyさん
2007/05/14(月) 18:08:37ID:byqD8Lzaまさに私にぴったりですね。
でも過疎ってるので遠慮しときます。
本当に>>160みたいな害虫は死ねばいいのに。
答えられないけど何かいいたいやつの決まり文句は、
「マニュアル見れ」だよね。
0172nobodyさん
2007/05/14(月) 18:15:15ID:???GD2で、tiff画像を読み込みたいのですが、マニュアルにimagecreatefromtiffが見当たりません。
何かほかに方法はありますが?
0175172
2007/05/14(月) 18:17:51ID:N76OGPmpIDが出てませんでした。
ちなみに、海外サイトで次のような例があったのですが、動きませんでした。
$bild="einbildeben.tif";
Header("content-type: image/tiff");
$im = @readfile($bild);
return $im;
0176nobodyさん
2007/05/14(月) 18:20:45ID:N76OGPmpたびたびすみません。入れ違いでした。
環境は、OSX+MAMPで、PHPは5.16です。
0177nobodyさん
2007/05/14(月) 18:26:00ID:???0178nobodyさん
2007/05/14(月) 18:30:57ID:Gq/W6/hf0179nobodyさん
2007/05/14(月) 18:34:06ID:???$replacement が間違っていないか?
$replacement = "'\\2' . '\\1' . '\\3'";
じゃないの
0180166
2007/05/14(月) 18:40:16ID:???仰せの通り、
$replacement = "'\\2'.nl2br('\\1').'\\3'";
で通りました!
nl2brで囲んだ\\1がクオートで囲まれていなかったのが原因、というオチでした。
(・∀・)アリガ�d
0181nobodyさん
2007/05/14(月) 18:50:11ID:???もう少し落ち着け
// b.php
function b_write() {
// ファイル書き込む処理
}
// a.php
require('b.php');
define("OUT", "out.html");
b_write(OUT);
で、a.php のスクリプトをブラウザから動かしたってこと?
out.html は相対パス指定になっているから
スクリプトの実行されているカレントディレクトリを基本にして
パスを生成するのだから、当然
a.php があるディレクトリ + out.html という風に解釈
される
もしこうなら require の問題ではないぞ
■ このスレッドは過去ログ倉庫に格納されています