【PHP】下らねぇ質問はここに書き込みやがれ 69
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/05/27(火) 18:04:33ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0643nobodyさん
2008/06/17(火) 18:41:16ID:jPkgqGii上記でHTMLエンティティに変換したのですが、
HTMLエンティティを元に戻すにはどうしたらよいのでしょうか?
0644nobodyさん
2008/06/17(火) 18:57:48ID:???http://jp.php.net/htmlspecialchars
0647nobodyさん
2008/06/17(火) 20:44:51ID:???念のために確認するが、
$array['x'] = 15;
$array['y'] = 15;
は、最初のループの内側でいいのか?
毎回初期化されるぞ。
どういう用途を想定しているのか分からんけど、再帰使えばいいと思う。
0648nobodyさん
2008/06/17(火) 20:57:00ID:???0649nobodyさん
2008/06/17(火) 21:01:32ID:???http://www.php.net/manual/ja/function.fgetcsv.php
少しはマニュアルよめ
0650nobodyさん
2008/06/17(火) 22:30:39ID:???$arr[0]['name']=イヌ
$arr[0]['color']=白
$arr[0]['sex']=オス
$arr[1]['name']=ネコ
$arr[1]['color']=黒
$arr[2]['name']=リス
$arr[2]['color']=茶
$arr[2]['sex']=オス
上記のようなデータが格納された配列「$arr」があるとして、
0にあるものを配列「$hoge0」←(name=>イヌ,color=>白,sex=>オス)
1にあるものを配列「$hoge1」←(name=>ネコ,color=>黒)
2にあるものを配列「$hoge2」←(name=>リス,color=>茶,sex=>オス)
といった感じに、各配列に分解したいのですが、その方法を教えてください。
0652nobodyさん
2008/06/17(火) 22:34:08ID:???array_walk_recursive
試しもせず、具体的なロジックまで求めだしたら、教えて君。
0653nobodyさん
2008/06/17(火) 22:59:51ID:cLskKZdP座標(15,15)から8歩でいける場所を全て抽出しようと思ってます
再帰とはどのようなものなのですか?
0654nobodyさん
2008/06/17(火) 23:09:37ID:???>>650
for( $i=0; $i < count($arr); $i++) {
foreach($arr[$i] as $key => $value) {
${hoge.$i}[$key] = $value;
}
}
>>653
関数の中でその関数を呼び出す
0655nobodyさん
2008/06/17(火) 23:54:31ID:7t0PU3Q3昔CGI-PLANTさんで配布していた
設定したファイルが更新していた場合に別ファイルで更新マークを付けられる、GETSTAMPを愛用いていました。
この度久しぶりにサイトを作る事にして、
古いデータからそのパッケージを発掘しまして、再利用する事にしました。
ところが、説明書などがなく、配布元さんでは公開停止。
ググって出てきた情報とうろ覚えの記憶で
JavaScript版の設定と記述をしたのですが、
CGI自体は動作しているのですが、HTMLでの表示が出来ません。
エラーなどではなくただスルーされてる感じなのですが、
いかんせんきちんとした説明書がないため何が足りないのかわかりません。
CGIを起動して、IDなどは一通り設定しました。
表示させたいファイルで、CGIを指定する記述と、
マークを出したい部分へはDocument〜の記述もしました。
申し訳ないのですが、どなたかこのCGIの説明書などをお持ちの方、
JavaScript版の設定方法を教えて頂けませんでしょうか。
0656nobodyさん
2008/06/17(火) 23:55:17ID:???ソレを出したいってことなら、一回発想変えてみたら?
方眼紙とか用意して点打ってみると、もっと効率のいい方法が見えてくる気がする。
function x_y($x, $y, $walk=8){
$map = array();
for($i=0;$i<=$walk;$i++){
$move_x = $i;
$move_y = $walk-$i;
for($j=0;$j<=$move_y;$j++){
$map[] = "[".($x+$move_x)."/".($y+$j)."]";
$map[] = "[".($x-$move_x)."/".($y+$j)."]";
$map[] = "[".($x+$move_x)."/".($y-$j)."]";
$map[] = "[".($x-$move_x)."/".($y-$j)."]";
}
}
return $map;
}
$map = x_y(15, 15, 8);
echo "<pre>";
print_r(array_unique($map));
echo "</pre>";
たとえばこんな。
0658655
2008/06/18(水) 00:04:28ID:29hzMdPjすみません、PHP専用のスレだと気がつきませんでした。
大変失礼しました。
0659nobodyさん
2008/06/18(水) 00:33:45ID:???0660nobodyさん
2008/06/18(水) 00:38:31ID:???もういやd
0662nobodyさん
2008/06/18(水) 00:45:48ID:???みたいなアドレスでPHP_SELFでやりましたら、
/hoge/hoge.php
のような感じで出てきたのですが、
http://localhost/hoge/hoge.php
という感じに出せないのでしょうか?
0664nobodyさん
2008/06/18(水) 01:27:41ID:???検索やキーワードで簡単に調べられるのに、それすらしないのな?
PHPのマニュアルは、スクリプト言語史上、最も親切な部類に属するのに。
だから、いつまで経ってもバカなんだよ。
まともな知識のある奴とバカの温度差が激しすぎる。
0665PHP℃素人
2008/06/18(水) 01:32:36ID:FEsYSSp5はじめにsudo設定でユーザhogeにノーパスワードおよびシステム終了権限を与える。
<?php echo shell_exec('sudo shutdown -t 5'); ?>
は白ページが出てなにも実行されない
そこでwhoコマンドであなたは?とたずねる
<?php echo shell_exec('who'); ?>
hogeですよと表示される hoge pts/0 Jun 17 20:22 (192.168.1.10)
でもsudoの実行ログを確認すると
Jun 17 22:01:45 linux sudo: (pam_unix) authentication failure; logname= uid=0 euid=0 tty= ruser= rhost= user=www-dataとなっていた
Apacheはwww-dataユーザの権限で動作しているのが原因か?
0666nobodyさん
2008/06/18(水) 01:44:19ID:???$ php -f hoge.php
こいつらってなんか違うの?
0667nobodyさん
2008/06/18(水) 01:50:39ID:???以下のサイトにあるサンプルをサーバにあげて実行したのですが、
エラーになって正常に動きません。
エラーメッセージは xmlDoc has no properties です。
ttp://www.geekpage.jp/web/google-maps-api/gxmlhttp-3.php
このサンプルでは、phpからXML出力したものを読み込んでいますが、
ためしに、読み込み先をxmlファイルにして、サーバにxmlファイルを置くと
問題なく処理されます。
他のサイトで見つけたものを試しても、PHPからのXMLではうまくいかず、
読み込み先をxmlにした場合にうまくいきます。
関係あるかわかりませんが、サーバはXREAを使っています。
よろしくお願いします。
0668nobodyさん
2008/06/18(水) 01:53:31ID:???よくわかりませんがajaxはJavaScriptですよね
よくわかりませんがheaderでこのファイルはxmlですよって教えてあげてください
よくわかりませんがxrea無料なら自動広告が原因の可能性もなきにしもあらず
よくらからないのはめんどうなので適当にレスしたからです
0669nobodyさん
2008/06/18(水) 04:43:20ID:zzNhp0Rl何かよい方法ないでしょうか?
ネカフェ専用のブラウザがあったりして特別なUA持たせてるとか、
届け出るときにIP帯も届け出て公開しなければならなくてどこかに一覧があるとか、
ネカフェは絶対特定のProxy経由で接続しないといけないとかとか・・・
犯罪予告の防止にも国として何か対策を講じてくれるのが一番なのですが、
現状ないので何かネカフェからの接続がわかるような方法がありませんか?
0670nobodyさん
2008/06/18(水) 05:06:32ID:z89NqzwY$text = "a=1@b=2@c=3@=@@";
$hash = parseText($text,"@","=");
echo $hash["a"] // 1
echo $hash["b"] // 2
echo $hash["c"] // 3
こんな感じにしたいのですが。
0671nobodyさん
2008/06/18(水) 05:12:48ID:???0672nobodyさん
2008/06/18(水) 05:27:50ID:z89NqzwY0673nobodyさん
2008/06/18(水) 06:20:16ID:z89NqzwY0675nobodyさん
2008/06/18(水) 07:26:09ID:???ここ数スレ回答し続けてるけど、怠け者の次元が桁外れ過ぎる。
はっきり言って、無能だらけ。
0676nobodyさん
2008/06/18(水) 07:43:37ID:???$temp = explode( $delimiter1, $input );
for( $i = 0; $i < count( $temp ); $i++ ) {
if( preg_match( "/^(.+?){$delimiter2}(.+?)$/", $temp[$i], $matches ) ) {
$hash[$matches[1]] = $matches[2];
}
}
return $hash;
}
ほれ、レディメイドな関数だよ。
parseTextなんて名前じゃ意味分からんから変えたよ。
俺は、PHPはじめてまだ1週間くらいなので、
言語への慣れを身につけたいから、
クソみたいな質問にも極力まじめに回答し続けてるんだけど、
質問者はこの先、未来ないぜ?
ちょっとはマジメに覚える気になれよ。
0677nobodyさん
2008/06/18(水) 07:47:45ID:???array_spliceで配列中のゴミを削除しようと思ったからだけど、
途中方向転換したから。
適当にforeachで書き換えた方が可読性は高まる。
0678nobodyさん
2008/06/18(水) 08:07:58ID:???$data = explode($sep1, $str);
foreach($data as $tmp) {
if (trim($tmp) == "") {
next($data);
} else if (preg_match("/^(.+?){$sep2}(.+?)$/", trim($tmp), $matches)) {
$hash[$matches[1]] = $matches[2];
}
}
return $hash;
}
0679667
2008/06/18(水) 08:45:28ID:???PHPからの出力に問題があるのかと思って、こちらに書かせてもらいました。
それで、ためしに広告が出ないサーバ(お金払ったところ)で試したら、
うまくいきました!!
ありがとうございました。
0680nobodyさん
2008/06/18(水) 10:31:02ID:???逆引き検索に時間が掛かると処理がここで長い時には30秒も止ることがあります。
gethostbyaddr($ip)
マニュアルを見ましたが、タイムアウトを設定できるようなことが書いていなかったのですが、
時間が掛かる場合には強制的にタイムアウトさせる方法などありますか?
逆引きできれば別の方法でもいいのですが。
0681nobodyさん
2008/06/18(水) 10:54:43ID:???set_time_limitをgethostbyaddrの前後に追加する。
前のset_time_limitは指定タイムアウト時間。
後のset_time_limitは元に戻す。
ソケット使って自作した方がいいと思うよ。
あんまり安定した関数じゃない。
0682nobodyさん
2008/06/18(水) 11:02:55ID:???...
public function method( SubClassB ) {}
}
サブクラスのメソッドの引数にクラス名を入れているサンプルをよく見るんだが、
これはどういう処理をしているの?
マニュアルのどこに載ってるかだけでもいいから教えて欲しい。
さんざん探したけど、分からなかった。
0683682
2008/06/18(水) 11:14:25ID:???class SubClassA {
...
public function method( SubClassB $hoge ) {}
}
と、引数部分にクラス名 変数となっている場合がほとんどです。
この二者の関係性がどうしても調べられずに困っています。
0684nobodyさん
2008/06/18(水) 11:28:30ID:???0685nobodyさん
2008/06/18(水) 11:31:43ID:???ありがとうございます!
クラス(オブジェクト)における型指定をしているだけなんですね。
もっと複雑な処理をしているものと思って、理解できるのか戦々恐々としてました。
勉強になりました。
0686nobodyさん
2008/06/18(水) 12:39:32ID:???http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
とりあえず張っとく
0687nobodyさん
2008/06/18(水) 14:24:51ID:AqO1gOD5ex)
2008年06月18日14時18分だったら
200806181400
2008年6月18日14時25分だったら
200806181410
といった感じです。
そこで簡単に組んだのですが最初は毎時0分から20分ぐらいまでは使えませんでした。
(原因は分を10で割って丸めた値から単純に-1して10倍したため-10という値を吐いた)
この点を修正した後にどんどん問題はスケールが大きくなって行くことに気づきました。
結局日にちをまたぐとき(毎日0時0分から20分まで)も同様の問題が起こることになり、
月替わりのときですと、さらに面倒なことになると思うのですが、単純に解決することは出来ないでしょうか。
宜しくお願いします。
0688nobodyさん
2008/06/18(水) 14:34:01ID:???お前が「簡単に組んだ」内容を示してみろ。
あと、例示の内容だが、
ってなんか不思議なんだが。
俺なら
18→10
25→20
ってする。
0689nobodyさん
2008/06/18(水) 14:39:44ID:???0690nobodyさん
2008/06/18(水) 14:49:02ID:???688に賛成だけど
$y 年,$m 月,$d 日,$h 時, $i 分
date("YmdHi", mktime($h, (intval($i / 10) - 1) * 10, 0, $m, $d, $y))
0691nobodyさん
2008/06/18(水) 14:59:20ID:???こんなんとか?
0692nobodyさん
2008/06/18(水) 15:09:13ID:???preg_replace('/^(\d{11})./', '${1}0' ,date('YmdHi'));
0693nobodyさん
2008/06/18(水) 15:11:44ID:AqO1gOD5http://firestorage.jp/download/4aa4312921c6d26b8669b1a7ede8229b677cc851
こんな感じです。
例示についてはどうしてもそこの数字の一つ減らしたかったためです。
分かりづらかったらすみません。
>689,690
いまmktimeについて読んでいます。
ちなみに鯖はxreaです。
0694nobodyさん
2008/06/18(水) 16:25:20ID:???http://jp2.php.net/gethostbyaddr
タイムアウト付きのコードがある
0695nobodyさん
2008/06/18(水) 18:35:37ID:mVAzEHez『この画面で30秒以上経過したためタイムアウトしました。』
というのを見つけるのですが、
セッションを使ったやり方と使わないやり方が知りたいのですが実際に可能でしょうか?
教えてください
0697nobodyさん
2008/06/18(水) 18:42:25ID:mVAzEHezヤフー知恵袋です。
携帯(モバイル)でアクセスするさいの質問時によくタイムアウトしてしまいます。
0698nobodyさん
2008/06/18(水) 18:53:35ID:EJ2w77Ilfor($i=0;$i<$num;$i++){
$hoge.="<tr><td>$i</td></tr>";
}
上記に4行毎
<tr><th>No</th></tr>
を入れたいのですが
どこをどう繰り返せばいいのか教えてください。
お願いします。
0700nobodyさん
2008/06/18(水) 19:38:51ID:mVAzEHez0701nobodyさん
2008/06/18(水) 19:43:56ID:???思ったとおりの動作になるかはわからんが
$num = 10;
for ($i = 0; $i < $num; $i++) {
$hoge .= "<tr><td>{$i}</td></tr>\n";
if ($i % 3 == 0 && $i != 0) {
$hoge .= "<tr><th>No</th></tr>\n";
}
}
0702nobodyさん
2008/06/18(水) 19:44:19ID:KjbYRyD74で割って余りが無い時とかは?
0703nobodyさん
2008/06/18(水) 19:45:07ID:KjbYRyD7$iを4で割って余りを見れば
0704nobodyさん
2008/06/18(水) 19:47:39ID:NgS9+r3y以下コード
<?php
$to = $_POST[to];
$from = $_POST[from];
$body = $_POST[body];
$sub = $_POST[sub];
$frname = $from;
$fradrs = $from;
$toname = $to;
$toadrs = $to;
$subject =$sub;
$comment = $body;
mb_language("ja");
mb_internal_encoding("sjis");
$frname0 = mb_encode_mimeheader($frname);
$toname0 = mb_encode_mimeheader($toname);
$sdmail0 = "$toname0 <$toadrs>";
$mlhed = "From:\"$frname0\" <$fradrs>";
$rslt = mb_send_mail($sdmail0,$subject,$comment,$mlhed);
print "送信完了";
?>
実行すると、以下の文章が出力されます
"; $mlhed = "From:\"$frname0\" <$fradrs>"; $rslt = mb_send_mail($sdmail0,$subject,$comment,$mlhed); print "送信完了"; ?>
どなたかわかる人いましたらレスおねがいします。
0706nobodyさん
2008/06/18(水) 19:48:18ID:???これか?
http://www.tagindex.com/html_tag/page/meta_05.html
0708nobodyさん
2008/06/18(水) 19:52:19ID:???助かりました。まさにそれです。
正常に処理できました。
このソースeclipseに張ると赤い印でソースコードのエラーが出るんですよね。
たぶん、eclipseの解析が悪いだけだと思うのですが、少し気持ち悪いです。
でも、正常に動いているので、問題はないです。
0709nobodyさん
2008/06/18(水) 20:49:34ID:???0710704
2008/06/18(水) 20:58:22ID:NgS9+r3yレスありがとうございます。再度動作できる環境を整えてやりましたところ、
エラーが出てしまいました。
Parse error: syntax error, unexpected $end in /home/www/free/XXX/XXXXX/mail.php on line 42
XXXXXはサーバーのURLです。
そしてコードの42行目は、
?>
です・・・。これは鯖が悪いのでしょうか?
0711nobodyさん
2008/06/18(水) 21:04:45ID:???syntax errorって書いてあるんだから、関数が走る走らないの前に、文法エラーなんでしょうよ。
ソース確認してみたら?
0713nobodyさん
2008/06/18(水) 21:19:21ID:NgS9+r3yhttp://www2.uploda.org/uporg1488564.txt
これが全ソースなんですが、確認しても間違いはないようなんです・・・。
0715nobodyさん
2008/06/18(水) 21:27:25ID:???0716nobodyさん
2008/06/18(水) 21:27:50ID:???0717nobodyさん
2008/06/18(水) 21:34:34ID:NgS9+r3ythx!
すべてのスペース削除して実行したらうまくいった。
昨日はじめたばっかりでよくわからないけど動くと感動するね。
0718nobodyさん
2008/06/18(水) 21:59:51ID:???0719nobodyさん
2008/06/19(木) 01:37:42ID:ThD97MPb例…4つの数字『1』、『2』、『3』、『4』、『5』から
3つ選んたときの組み合わせを行います。
数字を入れ替えると、同じ組み合わせになるものは、数に含まれません。
質問1…組み合わせの数を求めたい。
質問2…組み合わせの内容を知りたい。
答え1→10通り
答え2→『1.2.3』
『1.2.4』
『1.2.5』
『1.3.4』
『1.3.5』
『1.4.5』
『2.3.4』
『2.3.5』
『2.4.5』
『3.4.5』
エクセル関数(combin)を使って、
質問1の答えを知ることができましたが、
質問2については、気合と根性で手作業で答えを導きましたが、
PHPで簡単に出来ないかと思い、書き込みしました。
よろしくお願い致します。
0720nobodyさん
2008/06/19(木) 01:41:48ID:ThD97MPb間違いがございましたので訂正致します。
訂正箇所…2行目
訂正前…4つの数字
訂正後…5つの数字
ご迷惑をお掛け致しますがよろしくお願い致します。
0721nobodyさん
2008/06/19(木) 02:09:06ID:???高校数学より中学レベル。
数字をアルファベット5個に置き換えたら分かりやすいかもね。
0723nobodyさん
2008/06/19(木) 02:19:17ID:???どっちでもいいけど。
0724nobodyさん
2008/06/19(木) 02:33:47ID:???0725nobodyさん
2008/06/19(木) 02:40:05ID:js0BBwoJ0726nobodyさん
2008/06/19(木) 02:55:41ID:???0729721
2008/06/19(木) 06:20:06ID:???最初に5*4*3の60パターン出して、
重複した数字がある要素を削除すれば、
一瞬で答えは出せるんだけど、
ここまできたら、実際の動作と同じロジックで答えを出したい。
0730nobodyさん
2008/06/19(木) 06:24:59ID:???writeCombPats(array(), 0);
function writeCombPats($vals, $level) {
if ($level == 3) {
echo implode(',', $vals)."\n";
return;
}
for($i=($vals != null? max($vals)+1: 1); $i<=5; ++$i) {
if (in_array($i, $vals)) {
continue;
}
array_push($vals, $i);
writeCombPats($vals, $level+1);
array_pop($vals);
}
}
0731nobodyさん
2008/06/19(木) 06:26:53ID:???0732721
2008/06/19(木) 06:51:26ID:???結局、全パターン試すのと変わらんロジックになった。
無駄な時間だった……。
0733721
2008/06/19(木) 06:57:06ID:???こういうのって、どこで勉強するの?
コンピュータサイエンスな教科書に載ってたりする?
それともアルゴリズム系の本に載ってるの?
ちょっと、この辺の基礎知識をたたき直したいんだけど、
お薦め本か何かあったら教えて。
0735nobodyさん
2008/06/19(木) 14:19:08ID:r2xEipfy現状は
$test["$array[0][0]"] = "value"
としても上手く代入できないので
$key = $array[0][0]
$test["$key"] = "value"
とやっています。
0736nobodyさん
2008/06/19(木) 14:21:11ID:???0737nobodyさん
2008/06/19(木) 14:41:44ID:???つまり下記のようにすればいい
$test["${array[0][0]}"] = "value"
0738nobodyさん
2008/06/19(木) 14:50:30ID:r2xEipfy変数を使い場合とはまたちょっと扱い方が違うんですね
ありがとうございました
0739nobodyさん
2008/06/19(木) 17:41:16ID:???0740nobodyさん
2008/06/19(木) 17:45:00ID:???結局、これ以外選択肢がない。
0741顔文字マニア
2008/06/19(木) 19:27:59ID:???どこいけばありますか?
■ このスレッドは過去ログ倉庫に格納されています