【PHP】下らねぇ質問はここに書き込みやがれ 31
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/10/25(水) 08:45:46ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
【前スレ】
【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しない)
・ サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0079nobodyさん
2006/10/26(木) 00:26:02ID:5k/S84KJ現在、返信が出来る掲示板を作成しているのですが、
返信記事の投稿番号に1をプラスして表示できないのです。
つまり、
親記事:1
子記事1:1
子記事2:1
子記事3:1
といった感じです。
一応ソースです。
数を増やす部分:http://source.is.land.to/s/q.phps
全体(無駄多):http://source.is.land.to/s/all.phps
記事が記録されているファイルを読み込む
最後の要素取り出す
その要素を配列にする
番号の要素に1をプラス
$num に代入
といった感じです。
ちゃんとソース見て無いけど
カウントアップする時、整数としてキャストしてます?
0085nobodyさん
2006/10/26(木) 00:44:26ID:???0086nobodyさん
2006/10/26(木) 01:07:50ID:???foreach ((array)@$rss->items as $item)
だな。
$rss->itemsが確実にissetな状態なら@はつけなくていいけど。
008778
2006/10/26(木) 01:08:27ID:???0089nobodyさん
2006/10/26(木) 01:16:37ID:???ありがとう。
0091nobodyさん
2006/10/26(木) 01:39:40ID:???$num = ($for_num_lines[0] + 1);//それに1をプラスします
じゃなくて
$num = ($for_num_lines + 1);//それに1をプラスします
じゃないの?
0092nobodyさん
2006/10/26(木) 02:12:15ID:5k/S84KJ>>83
キャストですか・・・
うーん。やってないですorz
やってみます。
>>91
$for_num_linesはたたたたたたぶん配列だと思うんですよよよよ。
0093nobodyさん
2006/10/26(木) 02:22:14ID:???$next_lines = explode("\t",$end_1);//それを分割して配列にしまいます
$for_num_lines = array_splice($next_lines,-5,1);//最後から5番目の要素(最後の$num)をとりだします。
これで配列のわけがあるかw
0097nobodyさん
2006/10/26(木) 02:40:10ID:???まー、普通こんな場面でarray_splice()使うやついないけどな。
0098nobodyさん
2006/10/26(木) 02:43:43ID:???とりあえず読んでみたけど、そもそも+1した$numってのは
どこの表示で使われてるの?そこが分からんかった。
0100nobodyさん
2006/10/26(木) 07:26:45ID:???array_spliceの戻り値はarrayだよ
まあでも配列の要素を取り出したいなら素直に添え字指定して
$num = $next_lines[1] + 1;
とかの方がいいと思うが
>>98
$data = $for_num."\t".$num."\t".$name."\t".$bun."\t".$pass."\t".$host."\n";
に使われているようだ。
0101nobodyさん
2006/10/26(木) 07:49:51ID:???キー入力を待ってその値を受け取り、計算して表示
みたいなことはできるのでしょうか?
C言語のscanfみたいなやつです。
0102nobodyさん
2006/10/26(木) 08:14:07ID:???$stdin = fopen('php://stdin', 'r');
?>
0103nobodyさん
2006/10/26(木) 08:31:18ID:ZtENe/Qshogehoge.php?hogehoge=hogehogehoge
みたいなやつはSwitch文で作っているのでしょうか?
0104nobodyさん
2006/10/26(木) 08:35:37ID:???PHPで下の文字コードがあった場合に反応をさせたいのですが
環境はEUCで統一されています。この場合どのように書けばいいんでしょうか?
0x8740〜0x879F
0xED40〜0xEEFC
0xFA40〜0xFC4B
0xF040〜0xF9FC
0105nobodyさん
2006/10/26(木) 08:52:32ID:dpAXN0uK意図的に近日に変更したいんだけど、それって、headerでLast-Modifiedを出せば
いいですかね?
なんでそういうことがしたいかというと、検索エンジン(具体的にはGoogle)に引っかかり
やすくしたいからなんですが
(ファイルの更新が頻繁に行われていると、再取得しによく来るとからしい)
0108nobodyさん
2006/10/26(木) 09:59:58ID:???はい、意味わかんね
>>104
正規表現でやったら?
つーかmb_convert_encodingでよさそうな気もするけど。
>>105
Last-modified以前にPragma: no-cacheとかExpiresをつけてたら常に更新されていると見なされるってことはないの?
検索エンジンがどうしてるのか知らないけど。
0109nobodyさん
2006/10/26(木) 10:14:41ID:???out of dynamic memory in yy_create_buffer() というエラーがでたんですが、
#a.php
<?
include("b.php");
$a = "HELLO";
echo $b;
?>
#b.php
<?php
include("a,php");
$b = "WORLD";
echo $a;
?>
もしかして、相互のファイルにincludeした場合は無限ループするんですか?
0110nobodyさん
2006/10/26(木) 10:24:17ID:???無限ループする。
悪いことは言わないから、include_onceかrequire_onceにしとけ。
(つーかphpってbisonのエラーをそのまま垂れ流すんだな。初めて知った。)
ググっても同じ症状は見つからないのでFOMAだけなんでしょうか?
0113nobodyさん
2006/10/26(木) 12:01:45ID:dpAXN0uK日本語不自由な奴は書き込むな
>>108
>Last-modified以前にPragma: no-cacheとかExpiresをつけてたら常に更新されていると見なされるってことはないの?
no-chacheは検索エンジン無視してるみたいです。Expiresをつけても、ファイル更新日とは関係ないですよね?
(ブラウザ(クローラー)はそれに従うとは限らないらしいですし。)
少なくとも、GoogleはLast-modifiedを見てるらしいんですよね。
まぁ、もう答えは出てるのかもしれませんが、同じことをしてる人がいないかと思って質問してみました。
0114nobodyさん
2006/10/26(木) 12:54:44ID:???0115nobodyさん
2006/10/26(木) 13:02:03ID:???意図的に近日に変更したいんだけど、」
俺はむしろこっちの日本語のほうがよくわからないな。
「テンプレートを使うかどうか」と「ファイルの更新日」とのあいだの関係もよくわからないし
「近日に」っていうのもよくわからない。
好意的に解釈すると、「数日前」とかいう意味合いかなあという感じだけど。
(でも「ファイルの更新が頻繁に行われていると」とつながらないし)
一番気になるのは「動的ページを生成」ってのの意味。
>>107は「静的HTMLを書き出す」、って意味に取ったのかな?
普通に読んだら「静的なHTMLを書き出すのではなく、動的にページを生成」って意味だろうとおもうけど、
ふつうPHPで書いたら、たいていそうなるよね。
要は「なにもしなくてもよい」っていう答えが期待されているのかな?
(まあ、それだと「検索エンジンが拾ってくれないので」っていう話をしているのかもしれないけど)
しのごのいってるまに、実際にやってみればいいのに、という点では >>107 に同意。
0116nobodyさん
2006/10/26(木) 13:06:26ID:???ヘッダーの折り返しロジックが74文字固定なので、
"Subject:"を含む最初の行が78文字を超えてRFC違反になる。
メーラによっては文字化けする。
文字化けするポイントにあらかじめ"\r\n"を入れておくとかで回避出来たはず。
ちょっと古い記憶なので最近はどうか微妙。
0117nobodyさん
2006/10/26(木) 13:10:01ID:???ありがとう。
0119nobodyさん
2006/10/26(木) 14:17:23ID:dpAXN0uK>俺はむしろこっちの日本語のほうがよくわからないな。
君は、そういう仕事をしたことがないんだよ。口を挟むなよ、邪魔だから。
ちなみに>>107は根本的に間違い。指摘するのも無駄。
0120nobodyさん
2006/10/26(木) 14:22:36ID:???こいつのほうが邪魔だな。
みんなで嫌がらせして追い出してやろう
0121nobodyさん
2006/10/26(木) 14:24:50ID:???みたいですもなにも、意味を考えれば無視するのはむしろ当然ですね。
いい加減な仕事してるんだろうなあ
0123nobodyさん
2006/10/26(木) 14:28:25ID:???つーかもう出てこなくていいから。
どうせLast-modified吐いたとこでかわんねーよ。
PageRank自体は更新頻度には一切依存しないから。
クロールされる頻度増やしても、自分とこの帯域を無駄に浪費させるだけ。
0126nobodyさん
2006/10/26(木) 14:52:33ID:???0127nobodyさん
2006/10/26(木) 15:14:16ID:???おれの人生 プライスレス
お金じゃ買えないもの プライスレス
0128nobodyさん
2006/10/26(木) 15:18:27ID:50QBwnTPXP使ってまして、システムパスはC:\phpに通してあり、php.iniはその中においてあります。
apacheがphpのモジュールを認識してるのでPHPは動くのですが、
mbstringが使えなくて困っています。
php.iniの設定で
extension_dir = "C:/php/extensions/"
もやりました
extension=php_mbstring.dllも行頭の;をはずしております。
どなたかアドバイスご指摘お願いいたします。
0129nobodyさん
2006/10/26(木) 15:31:18ID:???・php.iniをC:\WINDOWSに入れる。
・extension_dirって「extensions」だっけ?「ext」だった気がするけど。
この辺チェックしてみては?
0130nobodyさん
2006/10/26(木) 15:41:37ID:50QBwnTPシステムパスはc:\xxx\xxx\xxx;・・・省略;C:\phpと設定してあります。
php4.4.4を使っています。どのバージョンからかわかりませんが
extensionsに変更されてたみたいです。
なぜmbstring.dllを読んでくれないのか原因がわからなく、お手上げです。
0131nobodyさん
2006/10/26(木) 15:48:59ID:???モジュール版の場合、php.iniの場所としては環境変数のPATHは参照されない。
Apache2ならhttpd.confにPHPIniDirを加える。
あとはここ嫁。
http://www.php.net/manual/ja/configuration.php
0132nobodyさん
2006/10/26(木) 16:23:22ID:???0134nobodyさん
2006/10/26(木) 16:42:58ID:5EB3cc5h急ぎなのでお答えいただければ幸いです。
preg_match("/docomo\.ne\.jp$/",$host)
これでdocomo.ne.jpがひっかからないのですが
どうしてでしょうか?
0135nobodyさん
2006/10/26(木) 16:51:20ID:???0136nobodyさん
2006/10/26(木) 16:52:59ID:???0137nobodyさん
2006/10/26(木) 16:56:18ID:???バックスラッシュが全角になってるからじゃん。
ちなみに「急ぎ」ってのは、回答側がきちんと検証せずに答えても文句ないって意味でおkだよな?
0138nobodyさん
2006/10/26(木) 16:56:52ID:???$host = "hagehoge.docomo.ne.jp";
if (preg_match("/docomo\.ne\.jp$/",$host)) {
$msg = "OK!";
} else {
$msg = "NG!";
}
echo $msg;
結果:OK!
どう見ても問題ありません。本当に(ry
その\が何かのネタでないのなら$hostが何かおかしいんだろ。
あと急ぎならマルチしても許されると思ってる馬鹿は死んでいいよ。
0139nobodyさん
2006/10/26(木) 17:00:45ID:5EB3cc5h本当にぼうやでした。顔真っ赤ではずかしいです。
>>137
本当に申し訳ない。
>>138
はずかしくて言葉もありません。
申し訳御座いませんでした。
0140nobodyさん
2006/10/26(木) 17:04:16ID:???0141nobodyさん
2006/10/26(木) 17:15:25ID:???そっからコピペしたのかもしれん。
0142nobodyさん
2006/10/26(木) 17:18:34ID:???PHPの前に日本語からやり直せよ
0143nobodyさん
2006/10/26(木) 17:24:15ID:???マルチしちゃうほど急いで質問したのに自己解決しちゃった原因を教えてくれw
気になって夜も眠れん!
014479
2006/10/26(木) 17:27:37ID:5k/S84KJ>>100
Σそっちの方が・・・
っていうか私のやりかたがどう考えてもおかしかったみたいです。
$next_lines[1] + 1
のようにしてみようと思います。
回答してくださった方々、ありがとうございました。
0145nobodyさん
2006/10/26(木) 17:32:28ID:???関数ってPHPにありませんよね?
0146nobodyさん
2006/10/26(木) 17:35:05ID:???0147nobodyさん
2006/10/26(木) 17:42:26ID:aGrSe2DEにアクセスしたら
いきなり
http://example.com/?SID=649144
みたいにいきなりURLにセッションIDを追加できるように出来ないでしょうか。
http://example.com/ は http://example.com/index.phpです。
0148nobodyさん
2006/10/26(木) 17:50:46ID:???0149nobodyさん
2006/10/26(木) 17:52:51ID:5uZ/3Bq6下の$arrayを出したいんですが。
$sum = 52; //(2の2乗)+(2の4乗)+(2の5乗)
↓
$array = array(2,4,5);
0150nobodyさん
2006/10/26(木) 18:00:36ID:???何か知らんが関数書いてみた。
function binlist($num) {
$result = array();
$num = abs((int) $num);
for ($r = 0; $num; $num >>= 1, $r ++) if ($num & 1) $result[] = $r;
return $result;
}
print_r(binlist(52));
0151149
2006/10/26(木) 18:14:47ID:5uZ/3Bq6ありがとうございました。助かりました。
仕組みは良く分からないですけど・・
同じnameのcheckboxのvalue="n"を2のn乗の合計値で持ってて、それ合計値からvalueを引き出すのに苦労してました。
0152nobodyさん
2006/10/26(木) 18:20:50ID:???ありがとう。
0153nobodyさん
2006/10/26(木) 18:22:39ID:???ちゃんと検証してないがこんな感じかね。
$sum = 53;
$array = array();
$n = 0;
while ($sum > 1) {
while ($sum % 2 == 0) {
$sum = $sum / 2;
$n++;
}
$array[] = $n;
$sum--;
}
print_r($array);
/*
14: (1,2,3)
52: (2,4,5)
53: (0,2,4,5)
1000: (3,5,6,7,8,9)
1025: (0,10)
*/
ところでこれ何て夏休みの宿題?
0154153
2006/10/26(木) 18:24:09ID:???ちゃんとリロードしてから書き込めばよかーたよ(´・ω・)
0155nobodyさん
2006/10/26(木) 18:28:52ID:???0156149
2006/10/26(木) 18:30:09ID:5uZ/3Bq6ありがとうございます。
皆さんのおかげでなんとか宿題終わりそうです。
0157149
2006/10/26(木) 18:41:58ID:5uZ/3Bq6(3,4,6)->88
(5,6)->96
という値を持ってるので61から求めることは無いので大丈夫です。
0159nobodyさん
2006/10/26(木) 21:22:28ID:50QBwnTPマニュアルで検索しても乗っていないのですが、
どういう意味なのでしょうか?
class Shopping {
var $item = "コンピュータ";
var $price = 99800; // ここまでメンバ変数の設定
function getTotal() {
$tax = $this->price * 0.05;
return $this->price + $tax;
} // ここまでメソッドの定義
}
0160nobodyさん
2006/10/26(木) 21:29:26ID:dpAXN0uK阿呆。流れを読め
>>123
阿呆。どこにPageRank上げるって書いてあるんだよ。
クライアントが気にしてるから満足度を満たしてやってるだけだっつうの。
帯域って(w そんな細い帯域使ってないよ(笑うのも無駄
>>124
自力でやってるっつうの。header出すのは、君にはそんなに高度なのか?
0161nobodyさん
2006/10/26(木) 21:30:49ID:dpAXN0uK言ってることのどこに一理あるんだ?単に読解力がないだけだろ?
0162nobodyさん
2006/10/26(木) 21:32:19ID:dpAXN0uK0163nobodyさん
2006/10/26(木) 21:46:59ID:???0164nobodyさん
2006/10/26(木) 21:49:25ID:???PHP4において変数を宣言するためのキーワード、という説明で分かるかな?
PHP5では使わない方が良い。詳しくはこちら。
http://www.php.net/manual/ja/language.oop5.visibility.php
0165nobodyさん
2006/10/26(木) 21:50:54ID:???じゃあこっちも時代に合った対応をしてやらないとな。
>>162
うん、そうなのでちゅ。
ここはあなたよりれべるのひくいおこちゃまがこたえるすれなのでちゅ。
だからあなたのようなさんじげんさいきょーにつよまってきちがいじみたずのうをおもちの
ちょーぜつてんさいぷろぐらまーなかたのくらいあんとの
まんぞくどをみたす(あげるってこと?)てつだいにはならないのでちゅ。
わかったらとっととかえってくらいあんとに「じぶんにはむりでしたごめんなちゃい」って
なきながらどげざしてあやまってくだちぃ。
0166nobodyさん
2006/10/26(木) 21:51:46ID:???0167nobodyさん
2006/10/26(木) 21:56:52ID:???0168nobodyさん
2006/10/26(木) 22:22:13ID:???なるほど、関数だと思ってしました。
php4ではvarは使えるけど、php5ではE_STRICT警告がでてしまうと。
php4とphp5に共通したコードを書くのはE_STRICT警告でてしまうのですね。
う〜ん、どうにか怒られないで共存できる方法があればいいんですけどね。
0169nobodyさん
2006/10/26(木) 22:42:55ID:???だけど、ここのスレはいい人ばかりで大好きです。
ありがとう。
0172nobodyさん
2006/10/26(木) 23:28:19ID:???ありがとうございます。
両方で動作する仕組みを作りたいのですが、
とりあえず勉強ということでどっちかのバージョンで作成を試みます。
0173nobodyさん
2006/10/26(木) 23:33:18ID:???可能な限り最新の内容を検索結果に反映させたい、ってことじゃないの?
で、とりあえず>>105への回答だけど、それでいいと思うよ。
googleがそれで頻繁に更新してくれるのかまでは知らんけど。
0175nobodyさん
2006/10/27(金) 00:03:01ID:???少なくともGoogleはLast-modifiedなんて読んでいないようだ。
If-modified-sinceに対して300台を返せば、クロール時の帯域を節約できるとは書いてあるが(160によるとそこは気にしていないようだし)、Googleのロボットがクロールする頻度を操作できるという記述はない。
FAQによれば、飽くまで「定期的」に巡回しているし、その度に更新はすぐに検出される、という記述しかない。
つーか内容の真偽以上に ID:dpAXN0uK の暴れ具合の酷さは目に余る。
0176nobodyさん
2006/10/27(金) 00:12:28ID:???0177nobodyさん
2006/10/27(金) 00:15:13ID:???正確にはLast-modifiedをクロール頻度の操作に使わないということ。
0178nobodyさん
2006/10/27(金) 00:22:56ID:???0179nobodyさん
2006/10/27(金) 00:25:17ID:???■ このスレッドは過去ログ倉庫に格納されています