【PHP】下らねぇ質問はここに書き込みやがれ 31
レス数が1000を超えています。これ以上書き込みはできません。
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カテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0002nobodyさん
2006/10/25(水) 08:50:01ID:???http://pc8.2ch.net/test/read.cgi/php/1152251693/
【PHP】下らねぇ質問はここに書き込みやがれ 25
http://pc8.2ch.net/test/read.cgi/php/1153652403/
【PHP】下らねぇ質問はここに書き込みやがれ 26
http://pc8.2ch.net/test/read.cgi/php/1154923910/
【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
【PHP】下らねぇ質問はここに書き込みやがれ 28
http://pc8.2ch.net/test/read.cgi/php/1157284868/
【PHP】下らねぇ質問はここに書き込みやがれ 29
http://pc8.2ch.net/test/read.cgi/php/1158434799/
0003nobodyさん
2006/10/25(水) 08:52:09ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
(以下英語)
■Smarty http://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2006/10/25(水) 08:54:09ID:???http://pc8.2ch.net/php/subback.html
PHPで検索汁!
0005nobodyさん
2006/10/25(水) 09:02:22ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0006nobodyさん
2006/10/25(水) 09:12:52ID:???→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
00071
2006/10/25(水) 09:16:07ID:???時間かかりすぎるのもあれなんで、適当に修正した。
不満があるなら次スレで修正してください。
0008nobodyさん
2006/10/25(水) 09:17:13ID:???0009nobodyさん
2006/10/25(水) 09:22:50ID:???_.. - ,ニ-冖 ⌒ 冖-ニ - _
/ ノ´,. .‐.: : : ̄: :、:‐. 、`ヽ \
/ //: :./: : : : : : :l: : : :.\ヽ \
< ヽ/: : : :/: : : : : : /: :.l: : :、: : :ヽ/ >
丶、/: : : ::/: : : : ::::〃:/:.|:: : :.l: : : :.', /
l:l: :-:、l.: :::::::://://:∧:::._;l:-!: l:.|!
,l:l: : : ::|><__/ ' / '_,. へ:.|: l: :|::!l
l:.|:|: : : ::lz=ュ ′ z=ュ.リ:://: l
l: :Nヽ: : :ヽ ' /:://: : :.l
l: : /il ヽ、ヽヽ /二ヽ / '// ̄`ヽ! くっだらねぇ質問は
l: / il li、`` | | /' li:. ヽ ここに書き込みやがれ〜
l:/ il li `丶、ヽ-- ,' ィ .il li::. ヽ
,/ il.※.li ,.ィ`不ヽ、 il.※.li::::::.. ヽ
. // .:il li // //'{l:l ヾ、il li\::::::... l、
/ l/ ..::::il li ヽヽ//l>ィll:l__,ノイ li:::::::丶、:::::::...l \
|: l:::. ..:::::::::il.※.li `イl:l. {.l:「´ il.※.li:\:::::::. `` ┘ \
l:: l::::::_:::-:':´il li {l:l,><{ l:l il li\_l\::::. .::/
/,l:::.  ̄ ::::::il li、,.、,、,、{.l:ト、イ.l:l、,、,il li::::::::l:::::ヽ::. .::::/` 丶、
,. '"´,.-l::::::::::::::::::::::/il.※.li、,、,、,、,、l:l::::::::{_l:l,、,、il.※.li、:::::::l:::::::..........:::::/ニ、ヽ、
0011nobodyさん
2006/10/25(水) 10:34:39ID:rZkuwLJp0012名無しさん@お腹いっぱい。
2006/10/25(水) 11:44:27ID:J6B8Hktuいきません。
for($i=1; i<=30; i++){
if(ereg("。","str.html"){
if($i/3==1){
それで、fwriteで\nを書き込むようなことを試みたんですが・・
よろしければ、鮮やかな処理をお見せいただきたい。
0013nobodyさん
2006/10/25(水) 11:54:23ID:???0014nobodyさん
2006/10/25(水) 12:04:21ID:???よくわからんけどこういうことじゃないの?
$html = str_replace('。。。','。。。<br/>',$html);
0015nobodyさん
2006/10/25(水) 12:12:24ID:???文字列。文字列。文字列。<BR>
文字列。文字列。文字列。<BR>
0016nobodyさん
2006/10/25(水) 12:16:43ID:???echo $html;
0017nobodyさん
2006/10/25(水) 12:24:00ID:???echo $v{0};
この場合の{}ってどういう意味ですか?
001812
2006/10/25(水) 12:34:59ID:J6B8Hktu関係があるところを書くと、こんなです。
$bunsyou=fopen("str.html","r+");
$kaigyou =fread($bunsyou,filesize("str.html"));
for($i=1; i<=30; i++){
if(ereg("。","str.html"){
if($i/3==1){
fwrite("str.html","。\n");
}
}
}
fclose($bunsyou);
>14
すいません。言葉が足りませんでした。
例えば、
○○○○○○○○○○○○○○。○○○○○○○○
○○○○○○○○○○○○。○○○○○○○○○○
○○。○○○○○○○○○○○○○○○○○○○。
といった文章があったとして、一度も改行されずに文章が記述されて
いるのは読みにくいので、"。"が3度出てきたら、そこで改行したい
ということです。
0019nobodyさん
2006/10/25(水) 12:39:49ID:???正規表現をばかにしすぎ
0020名無しさん
2006/10/25(水) 12:57:12ID:gy1NzvJV送信する仕組みを作りました。
相手が通常のメーラーなら問題ないのですが、hotmailなどの
フリーメールを使っている場合、文字化けしていることが
あるようです。
どうすれば相手がフリーメールでも文字化けしないでメール
送信ができるようになるでしょうか?
メール送信には、mb_send_mail関数を使っています。
この第4引数になんらかのヘッダ情報を付与すればいいのかな
とも思っていますが、どうすればいいのかよくわかりません。
よろしくお願いいたします。
Windows2000Server
PHP4.4.0
Webサーバ及びSMTPサーバはIISを利用。
0021nobodyさん
2006/10/25(水) 13:10:05ID:???ちょうどarrayで入力するときみたいに。
0022nobodyさん
2006/10/25(水) 13:19:30ID:???0025nobodyさん
2006/10/25(水) 13:26:19ID:snVEf27mどんな関数がありますか?
0029nobodyさん
2006/10/25(水) 13:38:03ID:???0030nobodyさん
2006/10/25(水) 13:39:33ID:???0031nobodyさん
2006/10/25(水) 13:42:12ID:snVEf27mそうですか・・・
PHPサイトでクリック履歴を表示してくれるサイトがあったのでついできるのかと
0034nobodyさん
2006/10/25(水) 13:50:30ID:snVEf27mアイデアだけでもいただけますか?
0037nobodyさん
2006/10/25(水) 13:55:07ID:???$str = "abcdefg";
echo $str{3};
結果 d
連想配列で{}を使うのはPHPじゃなくPerlだろ。
0038nobodyさん
2006/10/25(水) 14:04:24ID:???GPLの理念として、金銭を得るために使用しなければ作者に断りなくしてもいいのですよね?
0039nobodyさん
2006/10/25(水) 14:04:43ID:snVEf27mでも、ちょっとオイラでは・・・ むずかしそうです
0040nobodyさん
2006/10/25(水) 14:07:43ID:???普通に配列要素を示すのに[]の代わりに{}を使っても動作するっぽい。
何かの互換のため?でも多分、推奨はされないから使わない方がいいよ >17
0042nobodyさん
2006/10/25(水) 15:35:03ID:???(PHP5風に書きます)
class Example {
 :private $example = "hoge";
}
とするのと、
class Example {
private $example;
function __constructor() {
$this->example = "hoge";
}
}
この2つの違いは何でしょうか?
両方とも変数を初期化してるわけではないのですか?
0043nobodyさん
2006/10/25(水) 15:38:52ID:???2つとも変数を初期化してるだけです。
変数宣言で直接初期化する場合は式が書けないなどいくつかの制限が出ます。
逆にコンストラクタで初期化する場合、extendしたクラスでは親クラスのコンストラクタが
呼び出されなくなる場合があるため、設計に注意が必要です。
0044nobodyさん
2006/10/25(水) 15:43:13ID:???違う質問を並べてる同一人物か?
004518
2006/10/25(水) 16:32:53ID:J6B8Hktu何でございましょう?
004818
2006/10/25(水) 16:37:21ID:J6B8Hktuついでなんですけど、さっきのことで1ついいですか?
指定した文字が文章中に何回出てくるかカウントする関数
またはそれ以外の方法ってありますか?
0049nobodyさん
2006/10/25(水) 16:48:21ID:???とりあえずmb_languageが適切に設定されてるか確認しる
>>38
ライセンスくらい読めよ(´・ω・`)
0050nobodyさん
2006/10/25(水) 16:51:06ID:???書いてみた。つかってくれ。
配列を使うからforではなくforeachにしてみた。
つ[ソースコード]
$text = "あああ。いいい。ううう。えええ。おおお。かかか。ききき。くくく。";
$a = explode("。",$text);
$i=0;
foreach($a as $v){
if ($i>1) {
echo $v."。<br>";
$i=0;
} else {
echo $v."。";
$i++;
}
}
0052nobodyさん
2006/10/25(水) 16:54:05ID:???0053軟式PHP
2006/10/25(水) 16:56:36ID:???3つ出てくるごとなら
if($i/3==1){
ではなくて、
if(!($i%3)){
じゃないのかな。
文字をカウントするのはsubstr_count()。
>>20
どこが文字化けしてるん?サブジェクトだとは思うけど。
本文は文字化けしてないよね。
005450
2006/10/25(水) 16:59:09ID:???>>50のソースは一番最後の「。」が表示されるバグがあるので
$a = explode("。",$text);
のあとに正規表現で最後の「。」をとる記述をかけば問題はないでしょう。
一番最後の文字を削ればいいだけなのであとは調べてください。
0056nobodyさん
2006/10/25(水) 17:05:00ID:???結構意味不明なんだけど、PHP5でさらに拡張された部分を
まだ勉強したことないプログラマ、って解釈でいいの?
それだと結構いそう。
もっとも、必要になったら3日でマスターできる内容なので
現場の環境が変わってないならわざわざ勉強する必要も感じないが。
005718
2006/10/25(水) 17:07:01ID:J6B8Hktu早速トライします。
0058nobodyさん
2006/10/25(水) 17:20:42ID:???インスタンスを1つしか作らないなら>>43の言ってる事だけ気をつければok。
たくさん作るなら
$var1 = 1;
$var2 = 1;
と
$var1 = $var2 = 1;
の違いについて調べれば答えは出てくると思う。
005929
2006/10/25(水) 17:20:59ID:9Xs/4YIO当方PHPにて画像を取得、それを添付禁止処理して表示としたいのです。
宜しくお願いします
0061軟式PHP
2006/10/25(水) 17:26:36ID:???ちょっと文章が分かりづらいんだが・・・。
画像が添付されたメールを受信して、PHPでそれを解析して画像を取得。
その取得した画像をサイトに載せる際に、閲覧ユーザーがその画像をダウンロードして
他の人に配れないように添付禁止にしたいってこと?
006229
2006/10/25(水) 17:33:19ID:9Xs/4YIOレスありがとうございます
携帯のメール添付を出来なくするということです。
auだとHTMLで保存できないように出来ますが、DoCoMoは添付禁止にするしかないんです
0063nobodyさん
2006/10/25(水) 17:35:46ID:???着メロのコピー禁止は見たことあるけど、画像でもそんなことできるんだっけ。
PHPでやる方法以前にDocomoの仕組みが分からん。どっかに説明ない?
0064軟式PHP
2006/10/25(水) 17:42:14ID:???俺が前やったやり方だけど、ImageMagickでオプションに「-comment copy="NO"」をつけて再変換したよ。
PNGの場合は、ImageMagickだと出来なかったんで、HDRチャンク、tExtチャンクを取得してバイナリ直接弄ってコメント埋め込んだよ。
Docomoだから関係はないと思うけど。
006529
2006/10/25(水) 17:53:02ID:9Xs/4YIODoCoMoの技術者向けサイトおいておきます
ttp://www.nttdocomo.co.jp/service/imode/make/
軟式PHPさん
ImageMagickはPerlの時少しいじった程度なのでできるかなぁ^^;
GDでは無理でしょうか?
0066軟式PHP
2006/10/25(水) 18:14:14ID:???GDじゃないけど、海外のPHPモジュール使ったやり方のサイトを見つけた。
「kddi_copyright PHP GD」でググって一番初めにひっかかるやつとか参考になると思う。
「The PHP Metadata Toolkit」っていうやつを使うみたい。サンプルらしきものも載ってるんで参考になるんじゃないかな。
題名が全角9文字以降から文字化けするのですが、
対策法はありますか?
0068nobodyさん
2006/10/25(水) 20:46:22ID:bFjR6zW3htmlspecialcharsとstripslashesを両方やるべきなんですか?
0069nobodyさん
2006/10/25(水) 21:24:51ID:???どういう表示のさせ方をするかにもよるがhtmlspecialcharsは大抵必須。
stripslashesはmagic_quotes_gpcがONになってる場合のみ必要。
しかしそもそもmagic_quotes_gpc自体があまりONにすべきではない。
だがそのような低レベルな質問をする人はこれをONにしておいた方がいいだろう。
0070nobodyさん
2006/10/25(水) 21:41:19ID:bFjR6zW30071nobodyさん
2006/10/25(水) 22:05:37ID:???検索条件から、商品一覧を表示する処理を作っているんですが、
WEBアプリケーションの本を読んだところ、一度商品一覧を全部取得してセッションにつめこんで、
ページビューごとに、件数で絞って表示させていたんですが。
普通はセッションいれませんよね?
検索結果のURL直リンで表示できなくなってしまうし。
どうなん?
0072nobodyさん
2006/10/25(水) 22:29:15ID:???なんだ、その腐った本は。
まあ商品数が極端に少ないならそれもアリかもしれないけど、
普通はそんな無駄なことしないわな。
っていうかセッション・ファイルにいちいち記録し直してたらDBの意味ないし。
ショッピングモール等の規模が大きくて商品を絞り込んでいく場合に有効
テンポラリファイルに書き出す処理を自前で実装するのと同じで
セッションに丸投げするか自分でコードを書くかの違い
規模が小さい場合、インデックスを作成して毎回検索しなおす方手もある
適材適所
0074nobodyさん
2006/10/25(水) 22:57:11ID:???余計なとこまで全部エスケープ入れちゃうから。
結局、エスケープ不要な箇所を判断していちいち外す必要が出るんだが、
それができる人なら最初から必要な箇所だけエスケープした方が早くて、
性能的にもそっちの方が速かったりして、何の意味があるんだか分からん機能。
まー、ものすごく単純なプログラムで何も考えずに作るんであれば有効。
0075nobodyさん
2006/10/25(水) 22:58:30ID:???てんぷらファイルはちょっとくらいサイズでかくても困らないが、
それを丸ごとセッション配列に格納してたら性能定価しないか?
0076nobodyさん
2006/10/25(水) 23:16:01ID:???なるほど、ありがとうございます。
ちょっと行き詰ったのでラーメン食べてきます。
ちょっと落ち着いて考えてみた
実際に比べたわけじゃないけど
テンポラリの方がよさげ
0078nobodyさん
2006/10/26(木) 00:20:58ID:fW8Q3JdKどこに@をつければいいんですか?
foreach ($rss->items as $item ) {
@foreachでは無理でした
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:???0180nobodyさん
2006/10/27(金) 00:25:48ID:???こっちのスレいってやってくんない?質問する人と回答する人のじゃまだからでてってくれ。
0181nobodyさん
2006/10/27(金) 00:27:13ID:???あ、俺もか。
0182nobodyさん
2006/10/27(金) 00:37:42ID:???>>105=>>113で本人が「Last-modifiedを見てる」と信じてるんだから
そこはスルーでいいんじゃないのかな。
表向き公開されてない裏仕様なんだ!とか言い出されても確認しようがないし。
ほっときゃいいじゃん。
で、>>105の質問はあくまで「PHPページで最終更新日時を詐称する方法」なんだから
それに対しては「header()でLast-modifiedを返せば良い」でFAだと思うんだけど。
0184nobodyさん
2006/10/27(金) 00:44:19ID:???0185nobodyさん
2006/10/27(金) 00:45:04ID:???0186nobodyさん
2006/10/27(金) 00:49:52ID:???あと、発狂してる人がいるけど、内容をよく吟味すればPHPでサイト構築する上ではわりと頻繁に使われるHTTP関係の話だし、そんなにめちゃくちゃに高度で専門的な話でもないよ。
0187nobodyさん
2006/10/27(金) 00:57:06ID:???そんなん無視すれ。気にしても始まらんでしょ。
あそこまで分かっててheader()でいいの?って聞いてくる辺り、
むしろオツムの弱い人だと俺は解釈してたよ。
>>185
その実装に関する話はここで合ってるよ。
>>186
誰も高度で専門的だとは言ってないと思うけどね〜
0188nobodyさん
2006/10/27(金) 00:59:06ID:BT8IGUCu逆ギレ?日本語をちゃんと使えるようにした方がいいぞ?プログラミング言語も満足に使えてないんだからさ。(煽りのレベルも低すぎ・・・)
0189nobodyさん
2006/10/27(金) 00:59:53ID:BT8IGUCuSEO対策について知らないんだな。黙ってろよ
0190nobodyさん
2006/10/27(金) 01:02:58ID:BT8IGUCuあ、まともなレスが返ってきて助かりました。
論理の通じる人がいるんだと安心できました。
0191nobodyさん
2006/10/27(金) 01:14:18ID:BT8IGUCu少し論理が通じる人が書き込んでて安心しました。
俺が暴れているというより、日本語の通じない人が書き込んでて、俺がレスを返してるだけです。
蛇足ですが、GoogleのクローラーがLast-modifiedを読むのはSEOの世界では常識です。
>>176
はい。
>>177
>正確にはLast-modifiedをクロール頻度の操作に使わないということ。
使います。経験則から更新頻度が高いと頻繁に訪れてるっぽいと判断できます。
もちろんそれは、PageRank、PagePriorityに影響しないでしょう。
>>182
>>>105=>>113で本人が「Last-modifiedを見てる」と信じてるんだから
俺はそれをここで議論する気はないよ。
>>183
すいません。日本語が使えないのにレスを返す人がいるので、少し懲らしめました。
>>187
全然高度な話じゃないので、立ち話のつもりで書き込んだら、難しくて理解できない人がいたらしいことに吃驚しました。
0192nobodyさん
2006/10/27(金) 01:19:10ID:???よく飽きずに中途半端な書き込みするな。
ちみのやっていることは、最初から無駄以外の何物でもないと早く気づきなされ。
Last-modifiedでそんな操作できると思うならソース晒してみ。
そんなオイシイ対策があるのにWeb上で誰も話題にしてないわけないだろ。
客からロボットにクロールされる頻度を上げてくれと言われたなら、その時点で「効果はない」と言えるエンジニアになろうね。
客に合わせて実装した振りするなら、そもそも質問するまでもなく、Last-modifiedでも何でも吐いときゃいいだろ。
要はお前はレベル低いの。
0193nobodyさん
2006/10/27(金) 01:21:24ID:???http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
0194nobodyさん
2006/10/27(金) 01:23:34ID:???http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
0196nobodyさん
2006/10/27(金) 01:27:06ID:???http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
こっちいけ
http://pc8.2ch.net/test/read.cgi/php/1019844261/l50
0197nobodyさん
2006/10/27(金) 01:29:01ID:???そういうのが自治すると逆に迷惑な良い例。
0198nobodyさん
2006/10/27(金) 01:29:55ID:qOfMqiwc019979
2006/10/27(金) 02:23:44ID:Q6o9pTT9出来ませんでしたorz
$next_lines[1] + 1のようにしても、$numの値をチェックすると1になってしまうんです。
おそらくファイルの読み込み時でこけているのかと思いますが、具体的な原因がさっぱりで・・・
どなたかどの辺りでこけているのかこっそりヒッソリ書きこんでいただけないでしょうか?
よろしくお願いします。
書き込み部ソース:http://source.is.land.to/s/q.phps
全体:http://source.is.land.to/s/all.phps
0200nobodyさん
2006/10/27(金) 02:26:24ID:???その議論はスレ違い。他所でやれ。
クロール頻度やPageRankのルールなんてしょっちゅう変わってるんだから
そんなことの是非は実装を議論する板で問うべき問題ではない。
0201nobodyさん
2006/10/27(金) 02:34:36ID:???> 書き込み部ソース:http://source.is.land.to/s/q.phps
これだけ見るとファイルに書き込んでる部分がないので原因は分からない。
なので、allの方だけ見てみるけど、
まず
> $read_1 = file($res_num_dat);//まず、読み込みます。
で読み込んだ直後に、$read_1の内容をvar_dump()して中身を確認。
それが確認できたら、
> $end_1 = end($read_1);//最後の要素を取り出します
の$end_1
> $next_lines = explode("\t",$end_1);//それを分割して配列にしまいます
の$next_lines
> $for_num_lines = array_splice($next_lines,-5,1);//最後から5番目の要素(最後の$num)をとりだします。
の$for_num_lines
> $num = ($for_num_lines[0] + 1);//それに1をプラスします
の$num
をそれぞれvar_dump()して、期待してる動作をしているのか確認する。
それがデバッグの基本。
0202nobodyさん
2006/10/27(金) 02:35:51ID:BT8IGUCuぅゎぁ・・・びっくり・・・知らないの?(マジ吃驚)
それと、SEOについて知らないんだったら、口を挟まない方がいいよ。恥の上塗り。
>>200
俺も全くその通りだと思うね。同意。
0203nobodyさん
2006/10/27(金) 02:36:19ID:???クロール頻度がどれくらいかではなく、クロール頻度をPHPで操作できるかどうかが話題であって、しかも105からの反論がなければ、とりあえずこの場では操作できないでFAになるわけだし。
実装がコロコロ変わる、という結論もありではあるが、ソースのない話なので何とも言えませんな。
別に板違いと称する必要もなかろ。
0205201
2006/10/27(金) 02:38:40ID:???> $read_1 = file($res_num_dat);//まず、読み込みます。
ここでファイルの中身が読み込めてないと思うよ。
だから常に 0 + 1 になっちゃって結果が 1 なんでしょう。
記事ファイルってentryとかいうディレクトリにあるんでしょ?
読み込み時点ではchdirしてないしファイルパスにもディレクトリくっついてないし、
書き込みのときだけchdirしてるんだよね。
ファイル名の指定の仕方が読み込み時と書き込み時、親記事とレス記事とで
どれもバラバラの手法を使ってるもんだから非常にバグを出しやすいと思う。
こういうのはちゃんと統一しましょう。
書き込み時にわざわざchdirするのはナンセンスだよ。ファイル名のパス指定で十分。
020679
2006/10/27(金) 02:40:02ID:Q6o9pTT9早くの回答ありがとうございます。
わかりました!
一応$numだけはダンプして見たのですが不十分ぽいですので他にも全て出力して見ます。
0208nobodyさん
2006/10/27(金) 02:47:17ID:???SEO対策なんてみんな憶測混じりで色々やってんだから
そういうのは
【SEO】検索エンジン総合スレ22【雑談】
http://pc8.2ch.net/test/read.cgi/hp/1161313398/
で議論してください。
0209nobodyさん
2006/10/27(金) 02:50:05ID:???質問者がキモイでFAだ。
0210nobodyさん
2006/10/27(金) 02:54:26ID:???0211nobodyさん
2006/10/27(金) 02:57:12ID:???0212nobodyさん
2006/10/27(金) 03:00:23ID:???0213nobodyさん
2006/10/27(金) 03:01:07ID:???021479
2006/10/27(金) 03:11:02ID:Q6o9pTT9どうやら、親記事のすぐ後の子記事のカウントアップは成功しているようなのです。・・・たぶん。
つまり、このような感じです。
親記事:1
子記事1:2
子記事2:2
子記事3:2
子記事4:2
どうしてかは分かりませんが・・・。
0215nobodyさん
2006/10/27(金) 03:30:59ID:???親記事直後の番号は元の番号+1じゃなくて常に「START_LINE」の値みたいだけど
これは何番になってるのさ。
0216nobodyさん
2006/10/27(金) 03:57:31ID:???//
//□子記事書き込み部
//
if($_POST['res']){//子記事(レス)時
:
:
chdir('entry');//ワークディレクトリの変更
}
このchdirをもっと上にもってけ。
もしくはchdirをやめれ。
読み込んでるファイルと書き込んでるファイルが食い違ってるだろ。
(なんか釣りっぽいと感じるの俺だけ?)
データを記録するディレクトリを定義しておくとトラブルを起こしにくくなる
[config.php]
define("DATA_DIR",'entry/');
[all.php]
$res_num_dat = (DATA_DIR.$res_num.'.dat');
こんな感じにコードを弄って実験したらこんな結果になった。
test.php?res_num=1
[entry/1.dat]
?1fusianasan1本文localhost
12127.0.0.1
13127.0.0.1
14127.0.0.1
親記事は手動でファイルを作成
\tは/に置き換えてます。
[entry/1.dat]
?/1/名前/1/本文/localhost
1/2////127.0.0.1
1/3////127.0.0.1
1/4////127.0.0.1
0219nobodyさん
2006/10/27(金) 05:28:05ID:???defineで定義してたところで、場所によって
パスにディレクトリを含めてみたり、chdirしてみたりと
やり方自体をバラバラにしてたら何の意味も無いと思うよ。
それよりはファイル名の生成を関数化する方が先決。
0220nobodyさん
2006/10/27(金) 14:10:28ID:AQszo3d9php.iniで設定したいのですがsafe modeをonする以外に
参考となるURLございませんでしょうか?
0222nobodyさん
2006/10/27(金) 14:51:25ID:???自身の関数名を取得できる関数はありませんか?
ちょうどget_classのような
0223nobodyさん
2006/10/27(金) 15:04:29ID:???0224nobodyさん
2006/10/27(金) 15:26:28ID:???0226nobodyさん
2006/10/27(金) 16:04:47ID:???bin2hexで変換
pack('H*',$hogel)で元に戻す
Crypt_Blowfishを使ってパスワードを復号化
というようなことをしようとしてるんですが、なぜか復号化
したものをもう一度bin2hexにかけると最後に
000000000000という余計なもの(ヌル文字列?)が
ついてしまうんですが、packの戻し方が悪いんでしょうか?
回避するいい方法があれば教えてください<m(_)m>
0228nobodyさん
2006/10/27(金) 17:38:09ID:???if($hoge==A){echo "tanaka";}else if($hoge==B){echo "satou";}else if{($hoge==3){echo "suzuki";}
みたいな形だと長いので連想配列ですると
$array=array(A=>"tanaka",B=>"satou",C=>"suzuki");
echo $array[$hoge];
みたいになると思うのですが
これを一行にまとめるかもっと簡略な書き方はありませんでしょうか?
0230nobodyさん
2006/10/27(金) 18:34:33ID:???普通に考えたらそれで十分簡素だと思うけどなぁ。
俺だったらむしろ、前半の配列定義をプログラム先頭に置いておいて、
実行部分と分けちゃうけどね。
0231nobodyさん
2006/10/27(金) 18:41:58ID:VglO/Vdq"=" "[=]" "(=)" "\=" とか試したけどだめでした……
0232231
2006/10/27(金) 18:57:37ID:VglO/Vdq0233nobodyさん
2006/10/27(金) 18:57:54ID:???普通に preg_match('/=/, 〜 で検索できるはずだが。
if(preg_match('/=/', 'aaa=bbb')) echo "OK\n";
でも
if(ereg('=', 'aaa=bbb')) echo "OK\n";
でも結果は「OK」
できないコードを見せてみ。
0234233
2006/10/27(金) 18:58:40ID:???023579
2006/10/27(金) 19:16:03ID:Q6o9pTT9>>205
してませんでしたorz
本当に書き込み時しかしてませんでしたorz
早急に直します。。
>>217-218
実験ありがとうございます(ぉ
早速直すべきところは直したいです。
>>219
やはりしておいたほうがいいのでしょうか・・・
いつもコード書いている時間が午前3時とかなんでいつもおかしくなっちゃってあきらめまs(ry
orz
お邪魔になるかもしれませんが、もし直りましたら一応報告したいと思いますです。
0237nobodyさん
2006/10/27(金) 19:50:56ID:???テクに走るオナニーは、趣味までで。
0238nobodyさん
2006/10/27(金) 20:23:35ID:???0239nobodyさん
2006/10/27(金) 20:45:15ID:???0240nobodyさん
2006/10/27(金) 20:50:36ID:KqclDjNYどの言語にも共通のこととは思うのですが、
1万行のファイルから特定の内容を行ごとで検索するという処理と
同一ディレクトリにある1万個のファイルに特定の名前の物が存在するか?
というものはどちらのほうがより高速なのでしょうか?
前者はファイルを開いて1行づつ読み込みを、後者はis_file()のような1行です。
前者はメモリを消費して、後者はHDD容量を消費しそうという印象を持っているのですが、速度面では?
0241nobodyさん
2006/10/27(金) 20:53:59ID:???0243nobodyさん
2006/10/27(金) 21:00:14ID:???ファイルは何種類にわけてますか?
自分はフォーム、チェック、送信と3つにわけてますが、
2つにしぼったほうがいいでしょうか?
それとも1つで完結するべきでしょうか?
0244nobodyさん
2006/10/27(金) 21:06:45ID:KqclDjNY実験の丸投げに見えてしまいましたか。申し訳ありません。
自分は結果的にどうなのかを知らないのですが、知ってる人にとっては
実験をせずとも当然のことなのだろうと思ったので質問させてもらったんです。
0246nobodyさん
2006/10/27(金) 21:23:23ID:???ひとつのディレクトリに入れた場合、パフォーマンスがかなり落ちるって書いてた。
0247nobodyさん
2006/10/27(金) 21:26:00ID:???ファイル1万なら余裕。作るのもsshでls取るのも1秒もかからなかった。
0248nobodyさん
2006/10/27(金) 21:46:49ID:KqclDjNYファイルごとに分けてしまうと処理時間は長くなると考えたほうが良いのですね。
ひとつのファイルにまとめて記述をして、そこから検索という形が
容量、速度ともに良さそうということでしょうか。
ファイルごとに分けるというのが、is_fileなどで一発なので、書くのは楽ですが
オーバーヘッドが大きくなるということですか。
0249nobodyさん
2006/10/27(金) 21:51:09ID:???0250nobodyさん
2006/10/27(金) 21:58:39ID:FC6M/LoAこの記述は何か機能があるんでしょうか?必要なんでしょうか?
0251nobodyさん
2006/10/27(金) 22:01:03ID:???0253nobodyさん
2006/10/27(金) 22:17:06ID:???読み書きの仕方によるんでは。
毎回一万行すべて読む必要があるんなら、いっこのファイルにまとめてもいいだろうし。
3000行目と6000行目と6500行目だけアクセスする、とかいうパターンなら
一行いちファイルのほうがいいかもしれないし。
0254nobodyさん
2006/10/27(金) 22:31:21ID:KqclDjNY自分の書き方が悪かったです。
1万行の場合はその中に特定の1行が存在するかどうかのチェック
1万個の場合はその中に特定のファイルが存在するかどうかのチェック
というものです。
そのあとファイルの書き換えも行うので、その場合は1万個のほうが
オーバーヘッドが少なくて良いのでは無いかと考えているのですが、
1万個もファイルが有る場合のis_file(探したいファイル名)は重くて悪い方法
なのでは無いかということも考えられたので。分けるのが良いのか、まとめるのが良いのか
ということに関して、一般的にどうするのが良いとされているのかが気になりました。
0255nobodyさん
2006/10/27(金) 22:32:09ID:kvLwzQNj「1万行のファイルから特定の内容を行ごとで検索するという処理」
→そのアルゴリズムを線形検索という。
「同一ディレクトリにある1万個のファイルに特定の名前の物が存在するか」
→ファイルシステム(やOS)による。
バイナリツリーとか、ハッシュテーブルとか、線形検索とか、さまざまなアルゴリズムが使われている。
0256nobodyさん
2006/10/27(金) 22:33:17ID:kvLwzQNj大量の画像ファイルを配信するサーバーを作ろうと思っています。
http://q.hatena.ne.jp/1150977803
0257nobodyさん
2006/10/27(金) 22:47:29ID:???一般的っていう話なら、
is_fileの方はOSとファイルシステムに依存し過ぎるのでまずやらない。
やったとしても独自にインデックス化してディレクトリ掘ってやるとか。
そんな面倒な事するぐらいならマトモなDBに放り込んで安心お手軽に済ますのが一般的。
もちろんシングルファイルで済むならそっちで。
0258nobodyさん
2006/10/27(金) 23:00:20ID:KqclDjNY>>256
ありがとうございます。とても参考になりました。
ファイルが1万程度で特定のファイルを探して開くというだけの作業だったら
システム任せにして作業するのが効率良さそうという印象でした。
プログラムもシンプル、メモリ消費も少ない、システムに任せた検索で高速と
考えてファイルを沢山という状態にします。
心配な場合は手前でディレクトリを更に分けておくのが良さそうでした。
0259nobodyさん
2006/10/27(金) 23:09:47ID:KqclDjNYそういえば、というくらいにMySQLなんかの話を忘れていました。
使ったことが無かったので見落としていましたが、調べてみます。ありがとうございます。
0260nobodyさん
2006/10/27(金) 23:30:59ID:KHfcRMGSmysqlみたいにライセンスも必要ないし、
postglreなら万が一組み込んでもライセンス違反にはならないのに。
0261nobodyさん
2006/10/27(金) 23:57:48ID:???実際、数が極端に多すぎなければ検索速度はis_file()の方が平均して速いよ。
一応、ハッシュを使った割とまともな検索アルゴリズムを使ってくれるから。
よほど古くさいOSでなきゃ2〜3万くらいならまだis_file()の方が余裕で速いと思う…
でも非常にシステム依存性が高くて何がトラブルの元になるか分からないんで、
コントロールしやすい仕組みで作るのがやっぱり一般的かな。
0263nobodyさん
2006/10/28(土) 00:42:40ID:Y7NdvAT2グローバル変数を使うこともセキュリティ的にやめたほうが無難でしょうか?
0264nobodyさん
2006/10/28(土) 00:53:50ID:???あなたは、なぜ register_globals=on に問題があるのか学ぶべき
詳しくは検索すると山ほど出るからそっちに任せる
0265nobodyさん
2006/10/28(土) 00:58:05ID:???セキュリティは全然関係なく、設計と保守性の問題であまり推奨されない。
適材適所を踏まえて、グローバル変数が必要なシーンで使うのは全く問題ない。
0266nobodyさん
2006/10/28(土) 01:02:09ID:???0267263
2006/10/28(土) 01:11:22ID:Y7NdvAT2ここのページをみてきたんですが、>>263さんと以下のページどっちがただしいのでしょうか?
ttp://www.sound-uz.jp/php/tips/security.html
0268nobodyさん
2006/10/28(土) 01:11:58ID:qYURnN+A$a = array('a','b','c');
$b = array('0','1','2');
↓
array('a','b','c','0','1','2');
こういった動作をさせたいのですが…
0269265
2006/10/28(土) 01:27:00ID:???言い方が悪かったんなら謝る。
俺が質問の意味を勘違いしたのかもしれないが、
「グローバル変数を使うこと"も"」ってのは
「register_globals設定の話とは別に」って意味じゃないのか?
register_globalsがONなら当然セキュリティは大問題だが、
register_globalsがOFFなら特に問題ないし、
その上でグローバル変数を使うことに問題など無いよ。
そのページの話は「register_globalsをONにしてグローバル変数を使う場合」だろ。
そんなもん、グローバル変数を使ってようと使っていなかろうと、
register_globalsがONになってる時点で全然ダメだ。
さらにグローバル変数を使っていたらより問題が悪化するというだけのことだ。
0270nobodyさん
2006/10/28(土) 01:30:31ID:???すいません、自分の書き方が悪かったと思います。
>>269さんの解釈のとおりです。
わかりやすいです。
参考にさせていただきまして、プログラムを組んでみます。
ありがとうございました。
0271nobodyさん
2006/10/28(土) 01:31:10ID:???$a = array('a','b','c');
$b = array('0','1','2');
array_splice($a, -1, 0, $b);
var_dump($a);
結果:
array(6) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "0"
[3]=>
string(1) "1"
[4]=>
string(1) "2"
[5]=>
string(1) "c"
}
0272nobodyさん
2006/10/28(土) 01:32:53ID:???おれもわからなかったから調べてみたらこんな関数があったよ
$a = array(1,2,3);
$b = array(4,5,6);
$a = array_merge($a, $b);
0273271
2006/10/28(土) 01:33:04ID:???array_splice($a, count($a), 0, $b);
が正解。
0275nobodyさん
2006/10/28(土) 01:51:34ID:???array_mergeだと、順番が混合してしまうんですよね
>>273
置き換えをする関数で連結するとは思いつきませんでした
ありがとうございました
0276nobodyさん
2006/10/28(土) 01:51:38ID:???$a = array(1,2,3);
$b = array(4,5,6);
$c = $a[0].$a[1].$a[2].$b[0].$b[1].$b[2];
echo $c;
0278nobodyさん
2006/10/28(土) 02:08:30ID:???ひとそれぞれなのか・・
0280275
2006/10/28(土) 02:42:38ID:???連想配列で、同じ文字列のキーがあった場合には上書きされてしまうので、
キーが数字の時も混合されてしまうと思いこんでいました。
0281nobodyさん
2006/10/28(土) 02:57:34ID:???>>275はとりあえずこれでも読んどけ
ttp://hiro.asks.jp/5297.html
0282nobodyさん
2006/10/28(土) 03:36:18ID:VA57KDTi0283nobodyさん
2006/10/28(土) 03:43:25ID:???0284nobodyさん
2006/10/28(土) 03:57:36ID:???かつてここの本スレと呼ばれた「PHP質問スレ」が別にあった。
だが、そこにも結局下らない質問しか投下されなかったために
スレは消滅してしまった。
下らなくない質問があるというなら試しにここに投下してみるといいよ。
ニーズがあることが確認できればきっと本スレ復活もあるさ。
0285nobodyさん
2006/10/28(土) 04:12:50ID:7i10sVSQOS:CentOS4.4
Apache2.2.3+php5.1.6(どちらもソースから)
症状:php.iniを置くとphpが実行されない
Configuration file pathに指定したディレクトリにphp.iniを置いてapacheをリスタートし、phpinfoを表示させてみると何も表示されません
(ソースを見ると
<?
phpinfo();
?>
このように表示されてしまいます)
php.iniを置かない状態だと問題なく表示されるのですが、どうしたらよいでしょうか?
php.iniは、php.ini-recommendedを cp -p でコピーしただけなので設定に問題があるとは思えないのですが・・。
よろしくお願いします。
0286nobodyさん
2006/10/28(土) 04:25:32ID:???echo "Hello World";
がくだらなくなくても・・・
おれにはくだらないんだよ。
そんなもんじゃねえのか。ここで質問したっていいじゃん。
質問者がそんな回答者を上から見下ろすような感じじゃ嫌な感じ。
0287nobodyさん
2006/10/28(土) 04:27:57ID:???2.LoadModuleで呼び出すdllパスは正しいのか、そのdllであっているのか。
それを確認してからまたレスしれ
0288285
2006/10/28(土) 04:36:47ID:7i10sVSQレスありがとうございます(私宛ですよね・・?)
LoadModuleは設定してあります。
php.iniを置かなければ正常に動作しますので・・。
httpd.confでの設定↓
LoadModule php5_module modules/libphp5.so
(lipphp5.soも存在します)
引き続きよろしくお願いします。
0289nobodyさん
2006/10/28(土) 04:50:26ID:???見下ろすのはこっち
くだらない質問でもど偉そうに聞いていいスレ
http://pc8.2ch.net/test/read.cgi/php/1158647441/
どっちかっつーと「対等な立場で質問」だと思う >下らなくない
0290nobodyさん
2006/10/28(土) 04:50:34ID:???>php.iniを置かなければ正常に動作しますので・・。
php.iniをいじってない?エラーになってんじゃ?
もし修正しているなら修正していないphp.ini-distかなんかで確認
正常なら修正したとこ見る
0293285
2006/10/28(土) 04:59:54ID:7i10sVSQphp.iniのパーミッションは644(rw-r--r--)になっています。
>>290
php.iniはいじってないのです・・。
>>292
補足ありがとうございます。
0295nobodyさん
2006/10/28(土) 05:03:17ID:???アンスコして再インスコすると解決することがある。
0296nobodyさん
2006/10/28(土) 05:08:28ID:???0298nobodyさん
2006/10/28(土) 05:13:41ID:???ソースを
<?php
phpinfo();
?>
に書き直せ。
recommended設定ならshort_open_tagはOFFになってるはずだから
<? 〜 ?>ではPHPコードとして解釈されない。
0299285
2006/10/28(土) 05:23:51ID:???おおおおおおありがとうございます!
書き直したら実行されました!勉強になりました・・。
>>296
はい、あっていました。
>>297
試していませんが、distのほうはshort_open_tagがONなので動くと思います・・。最初に試せばよかったですね・・。
>レスをくれた皆様へ
夜遅くに(もう朝ですが)ありがとうございました。
おかげで無事解決しました!
0301nobodyさん
2006/10/28(土) 05:24:44ID:???0302nobodyさん
2006/10/28(土) 05:30:08ID:???ちゃんと動かないソースも晒したからこそ比較的早く解決したんだと思う。
0304nobodyさん
2006/10/28(土) 07:21:08ID:???PHP質問スレ・・懐かしいな
1000まで埋まり次スレどうしようか?って時に、
スレ立てを躊躇して結局立てれなかったんだよなぁ・・。
0305nobodyさん
2006/10/28(土) 08:02:17ID:???お互いのスレを煽りあう(?)みたいな雰囲気で。
0306nobodyさん
2006/10/28(土) 09:59:36ID:???いままででてきた質問に全部答えられないと認めてくれませんか?
0307nobodyさん
2006/10/28(土) 10:02:24ID:???0308nobodyさん
2006/10/28(土) 10:10:32ID:???最近は調べて回答するようにしたんです。そしたら勉強になってしまって。
回答オンリーの方はさぞご経験をつまれていると思います。
自分もそんな先輩方近づき、一人の回答者になりたいです。
それが夢でございます。
0309nobodyさん
2006/10/28(土) 10:11:51ID:???0310nobodyさん
2006/10/28(土) 10:13:38ID:???0311nobodyさん
2006/10/28(土) 13:26:50ID:???ありがとう。
0312nobodyさん
2006/10/28(土) 15:12:16ID:???まさかおもしろいとか思っt(ry
0314nobodyさん
2006/10/28(土) 16:00:44ID:???0315nobodyさん
2006/10/28(土) 16:04:57ID:???yahoo だと リクエストパラメータがすべて/で区切られていて
実際はフォルダ階層ではないだろうけど、フォルダ階層のように表示されて分かりやすいし。
Ethna使っているんだけど、そういうのは無理らしいんだよね。
かといって、たとえば 関東、東京都、渋谷区と検索した場合に、リクエストパラメータが
region=01&prefecture=02&city=03 ってのは見た目が悪すぎるし。
どうすればいいの?
0316315
2006/10/28(土) 16:14:39ID:???移動履歴があるでしょ。
http://list4.auctions.yahoo.co.jp/jp/2084008049-category.html
あれって、hiddenタグで保持していないし、
本、雑誌、 雑誌 ファッション という文字と、URLの関連付けは
どこで設定しているのかな。
誰か教えてください。
0317nobodyさん
2006/10/28(土) 16:30:10ID:???0319nobodyさん
2006/10/28(土) 16:36:04ID:???(;^ω^)また暴れ出しそうなタイプのバカですか?
0321315
2006/10/28(土) 16:40:18ID:???てか俺より頭悪そうだから、もういいや(笑
0322nobodyさん
2006/10/28(土) 16:50:04ID:???0323nobodyさん
2006/10/28(土) 16:50:58ID:???0324nobodyさん
2006/10/28(土) 16:55:58ID:???0325nobodyさん
2006/10/28(土) 17:12:58ID:???自分が聞きたい事を素直に聞けないでどうしても妙に遠回しな表現にしてしまう。
多分今頃自己嫌悪で顔真っ赤。ベッドに飛び込んでじたばたしてるに違いない。
というかこんな事も分からない奴がショッピングサイトとか流石にネタだろ(´・ω・`)
0326nobodyさん
2006/10/28(土) 17:29:39ID:???0327nobodyさん
2006/10/28(土) 17:45:06ID:???0328nobodyさん
2006/10/28(土) 18:25:12ID:???http://www.answers.com/のページに飛ばされてしまいます(送信ボタンを押したときなどに。ただし書き込みは正常に行われてる様子)
他のp-bbsなどでもなるので、自分のPCのせいかともおもいましたが、他サイトさんの掲示板スクリプトで試すと何の問題もありませんでした。
これって自分のPCがわるいのでしょうか?
レッツPHPさんのスクリプトを他に使ってる方でこんな症状がでるかたいますか?
WinXPでFirefox使用
なお、IEで同様にローカルで書き込みしようとすると「ページが表示できません」とでます
0329nobodyさん
2006/10/28(土) 19:16:57ID:???0330nobodyさん
2006/10/28(土) 19:20:16ID:???0331250
2006/10/28(土) 19:29:57ID:Owjys+/6ありがとうございます。あってもなくてもいいということですね。
でもこれには一体どんな意味や機能があるんでしょう?
0332nobodyさん
2006/10/28(土) 19:31:35ID:???POSTで渡してセッション入れとけばいい。
俺もWEB始めて1ヶ月くらいの頃はGETとかhiddenで持ち回してた。
最初の頃のソース一応持ってるけど、それ見ると「あぁ、この頃は若かった」って思うよね。
0333中三
2006/10/28(土) 19:37:53ID:???<?php
$deep_impact = $_HORSE['WINNER'];
$fp = fopen('おまえの頭の中身.txt',w);
fputs($fp,$deep_impact);
fclose($fp);
?>
0334nobodyさん
2006/10/28(土) 19:52:11ID:doQnvF3Z1.フレームページ index.php
2.メインページ main.php
3.トップページ top.php
の構成でメインページ(main.php)で表示されている
外部HTMLページをトップページ(top.php)にあるボタンを押す事で
メインページ(main.php)のファイルやURL等をを取り込んだり
する事は出来るでしょうか?
0336nobodyさん
2006/10/28(土) 20:15:48ID:doQnvF3Z善処いたします。
0337nobodyさん
2006/10/28(土) 21:14:26ID:???で、メインページに表示しているHTMLのURLとコンテンツをPHPの変数に取得したい
ということか?
URLが分かれば、file_get_contentsとかcurlでとれるよ
0338nobodyさん
2006/10/28(土) 21:18:39ID:doQnvF3Zそういう事をしたかったのです!!
0339nobodyさん
2006/10/28(土) 21:18:45ID:RGmX0RKoPEARモジュールをインストールしてtgzをLhaplusで解凍
するとxmlになるんですが一般の解凍ソフトは無理なんでしょうか..?
0340nobodyさん
2006/10/28(土) 21:34:50ID:???0341nobodyさん
2006/10/28(土) 21:36:39ID:xtWbOPh4スレ違いならごめんなさい。
Stringbuffer ques1 = new Stringbuffer(100);
Stringbuffer ques2 = new Stringbuffer(100);
ques1.append("hoge");
ques2.append("choko");
for(i=1;i<3;i++)
System.out.println(ques + "i");
とやれば、hogeとhageガ表示されると思いましたが、このままだと
ただの文字列なので、ques1 ques2と表示されるだけです。
なにか、このような方法でques1と2の内容を表示する方法ないですか?
0343334
2006/10/28(土) 21:44:11ID:doQnvF3Z>>337
さんの
>で、メインページに表示しているHTMLのURLとコンテンツをPHPの変数に取得したい
>ということか?
>URLが分かれば、file_get_contentsとかcurlでとれるよ
のところで
URLが分からない場合は何か良い方法はないですか^^;
0344nobodyさん
2006/10/28(土) 21:46:40ID:???0345nobodyさん
2006/10/28(土) 21:48:20ID:RGmX0RKoxmlだけなんですよね。。なんでだろう
他の解凍ソフトでも試してみます。。
0346nobodyさん
2006/10/28(土) 23:17:36ID:WdiFJULn$test_a = array('あか', 'きいろ', 'みどり', 'きいろ', 'あお');
for($loop = 0;$loop < count($name_a);$loop++) {
echo $name_a[$loop].'は'.$test_a[$loop].'<br>';
}
この場合5通り出力されますがこれを
$name_aの中で重複しているものに関しては1つだけを出力し
その場合の対となる$test_aからはランダムに選択したいのですが
どのようにすれば良いでしょうか?
出力結果の例1
りんごはあか
ばななはきいろ
すいかはきいろ
出力結果の例2
りんごはあお
ばななはきいろ
すいかはみどり
アドバイス頂けましたら幸いです。
0347nobodyさん
2006/10/28(土) 23:46:56ID:???array_rand() 配列から一つ以上の要素をランダムに取得する
マニュアルのV. 配列関数(array)嫁
0348334
2006/10/28(土) 23:48:12ID:doQnvF3Zえっと、
1.トップのハイパーリンクからリンクしてメインに表示させて
2.メイン内で外部HTMLから更にハイパーリンク
3.ハイパーリンク行えば表示された2回目の外部HTMLの情報を
とりこみたいのですけど^^;
メインページは
<html>
<title>メインページ</title>
<frameset rows="64,*,64">
<frame name="top" scrolling="no" noresize target="contents" src="とっぷ.php">
<frameset cols="150,*">
<frame name="contents" target="main" src="メイン.php">
</frameset>
<frame name="bottom" scrolling="no" noresize target="contents" src="ind4.php">
<noframes>
<body>
<p>このページにはフレームが使用されていますが、お使いのブラウザではサポートされていません。</p>
</body>
</noframes>
</frameset>
</html>
みたいな感じです。
うーむ、また分かりにくいかもしれないですけど><
よろしこです^^;
0349nobodyさん
2006/10/28(土) 23:51:11ID:???$name_a = array('りんご', 'ばなな', 'すいか', 'すいか', 'りんご');
$test_a = array('あか', 'きいろ', 'みどり', 'きいろ', 'あお');
foreach (array_count_values($name_a) as $name => $count) {
$color = $count == 1 ? $test_a[array_search($name, $name_a)] : $test_a[array_rand($test_a)];
echo $name . 'は' . $color . '<br>';
}
0350nobodyさん
2006/10/28(土) 23:52:45ID:WdiFJULnそれは理解しているのですが
組み合わせる事が出来なく困っています。
どうかヒントだけでもお願いいたします
0351nobodyさん
2006/10/29(日) 00:03:57ID:???全然意味がわからん。そもそも最初の、フレーム、トップ、メインてわけわからん。
せめてフレーム(トップ)、メニュー、コンテンツ(メイン)とかにしてくれ。
0352nobodyさん
2006/10/29(日) 00:04:59ID:EYdNlx59ありがとうございます。
出来ました。
$color = $count == 1 ? $test_a[array_search($name, $name_a)] : test_a[array_rand($test_a)];
途中の ?
と :
の意味がわからないのですが解説お願い出来ませんでしょうか?
検索のしようがなく困っています。申し訳ありません。
0353nobodyさん
2006/10/29(日) 00:17:02ID:???>せめてフレーム(トップ)、メニュー、コンテンツ(メイン)とかにしてくれ。
そこも意味がわからないが、
>2.メイン内で外部HTMLから更にハイパーリンク
"から"→"へ"でなくて?
"コンテンツ(メイン)"では、いろいろ他のサイトのコンテンツを表示させて、
裏でそのコンテンツを取得したいということか?
0355334
2006/10/29(日) 00:28:36ID:nyCjtOK7すんませんm(_'_ )m波平ペコッ修行不足なかぎりです・・・
>>353
そうです!!
裏でコンテンツを取得したいのです!!
何か良い方法ありますでしょうか・・・
0356nobodyさん
2006/10/29(日) 00:36:56ID:EYdNlx59ありがとうございます。
勉強不足でした。
>>349
今テストしているのですが
$nameと$colorが対にならないようです。
例えばりんごはきいろなどが出てきてしまいます。
0357nobodyさん
2006/10/29(日) 00:55:50ID:EYdNlx59$test_a = array('あか', 'きいろ', 'みどり', 'きいろ', 'あお');
説明下手ですいません。
この場合
りんごは重複しているので あか or あお のどちらかをランダムで選択
ばななは一つしかないので きいろ
すいかは重複しているので みどり or きいろ のどちらかをランダムで選択
このようにしたいのですがどなたかアドバイスお願いします。
0358nobodyさん
2006/10/29(日) 01:04:26ID:bVOhrU5Jflock()の保障は不完全となりますか?
0359nobodyさん
2006/10/29(日) 01:19:01ID:???$name_a = array('りんご', 'ばなな', 'すいか', 'すいか', 'りんご');
$test_a = array('あか', 'きいろ', 'みどり', 'きいろ', 'あお');
foreach (array_count_values($name_a) as $name => $count) {
if ($count == 1) {
$color = $test_a[array_search($name, $name_a)];
} else {
$colors = array_keys($name_a, $name);
$color = $test_a[$colors[array_rand($colors)]];
}
echo $name . 'は' . $color . '<br>';
}
で一応いけると思うけど
果物を連想配列に直すべきだな
>>358
http://jp.php.net/manual/ja/function.flock.php
不完全みたいね
0360nobodyさん
2006/10/29(日) 01:22:36ID:???$test_a = array('あか', 'きいろ', 'みどり', 'きいろ', 'あお');
foreach (array_count_values($name_a) as $name => $count) {
$out = array();
foreach (array_keys($name_a, $name) as $name2) {
$out[] = $test_a[$name2];
}
$color = ($count == 1) ? $out[0] : $out[rand(0, $count-1)];
echo $name . 'は' . $color . '<br>';
}
0361nobodyさん
2006/10/29(日) 01:36:21ID:EYdNlx59>>360
ありがとうございます。
>>359さんのが自分にしっくり来たので使わせていただきます。
有難う御座います。
0363nobodyさん
2006/10/29(日) 01:46:54ID:???__autoload()も効かないようなんですけど、どうでしょう?
0364315
2006/10/29(日) 02:10:49ID:???セッションで実装はずいぶん前にやってましたが、
URL直リンができないので不便すぎて廃止しました。
今は一応hiddenでやってますが、以前書いたようにフォルダ階層が分かりにくい。
実際アルバイト情報サイトなどではhiddenで持ちまわっているところが多いけれど
(検索結果をブックマークに保存できるため)
yahooがどういう仕組みになっているのかが聞きたかったんですよね。
ソースに直接書く以外たぶんできないとは思いますが、
DBデータの変更の際に修正が大変なんですよね。
あと >>325 がなんかいってたが、あんたよりできるのは確実だからw
ちなみに俺のメインはC++のWin32ゲームアプリで、WEBアプリケーションに関しては
初心者なみだけど。
気になったことが1つ。
DirectX板はかなりレベルが高いやつが多かったが、WEBアプリは基本的に低いのかな?
0365nobodyさん
2006/10/29(日) 02:15:44ID:???0368nobodyさん
2006/10/29(日) 02:24:52ID:???もしくは
連想配列をランダムに一つではなく全て取り出すには
どうすればよいでしょうか?
0369315
2006/10/29(日) 02:26:50ID:???PHPマニュアルに
shuffle
(PHP 3 >= 3.0.8, PHP 4, PHP 5)
shuffle -- 配列をシャッフルする
説明
bool shuffle ( array &array )
この関数は、(要素の順番をランダムにするために)配列をシャッフルし ます。
注意: この関数は、 array パラメータの要素に対して新しいキーを割り当てます。その際、単純にキーを並べ替える代わりに、すでに割り当てられている既存のキーを削除してしまいます。
ってあったよ。
0370nobodyさん
2006/10/29(日) 02:31:37ID:???キーを削除するって書いてあったorz
マニュアル探したらありそうな気がするんだけどなぁ
PHPってクラス化されていないから探すのがかなり面倒ではあるね。
0371315
2006/10/29(日) 02:56:01ID:???誰も答えてなかったので作ってみたよ。
一応マニュアル調べてみたが、無いみたい。
function array_sorta(&$data) {
$cnt = count($data);
for ( $i = 0; $i < $cnt; $i++ ) {
$key = array_rand($data);
$data2[$key] = $data[$key];
unset($data[$key]);
}
$data = $data2;
}
以下テストプログラム
$data = array( "a" => "A", "b" => "B", "c" => "C");
print_r($data);
echo "<BR>";
array_sorta($data);
print_r($data);
バグあるかも。
0372315
2006/10/29(日) 02:57:43ID:???0373nobodyさん
2006/10/29(日) 02:59:20ID:???なにコイツ?
そこまで偉そうな態度で講釈垂れるくらいなら
こんなスレ来ないで自分で考えりゃいいのに。
必死にC++がどうこうとか言ってるあたりが痛い。
0374315
2006/10/29(日) 03:02:31ID:???正直何も答えられないお前のほうが痛いぞ
低脳はだまってろよw
ここはもう少しレベルが高いと思って質問してみただけだ
質問したあと後悔したよ
0375nobodyさん
2006/10/29(日) 03:25:27ID:???$text = array(1,2,3,4,5);
$i = $text;
$i[] = shuffle($i);
$del = array_pop($i);
unset($del);
foreach ($i as $v)
{
echo $v."<br>";
}
0377375
2006/10/29(日) 03:33:24ID:???$i = array_diff($text,array());
$i[] = shuffle($i);
$del = array_pop($i);
unset($del);
foreach ($i as $v)
{
echo $v."<br>";
}
>>375はphp4用。こちらはphp4と5両方対応。
0379nobodyさん
2006/10/29(日) 03:38:40ID:???すまん、訂正
$i = array_diff($text,array());
$i[][] = shuffle($i);
$del = array_pop($i);
unset($del);
foreach ($i as $v)
{
echo $v."<br>";
}
0380375
2006/10/29(日) 03:39:54ID:???0381375
2006/10/29(日) 03:42:40ID:???il||li_| ̄|○ il||li
0382375
2006/10/29(日) 03:51:15ID:???ttp://side-b.sto.co.jp/weblog/archives/14
0383nobodyさん
2006/10/29(日) 04:09:17ID:???uasortの比較関数でランダムに返してやりゃいいんじゃね?
uasort($arr, 'cmp_rand');
function cmp_rand() {
return rand(0, 2) - 1;
}
0384nobodyさん
2006/10/29(日) 04:09:39ID:???$i = 0;
foreach ($array as $v)
{
if($i == $r) {echo $v."<br>"; break; }
$i++;
}
0386nobodyさん
2006/10/29(日) 04:47:03ID:???0387nobodyさん
2006/10/29(日) 04:59:09ID:hbSphBwD何か時々セッションが切れてしまうんだが・・・
ちなみにバージョンはPHP 5.1.1(Linux)
0388nobodyさん
2006/10/29(日) 05:00:45ID:bPIXuHP3Apache2.2.3 を使ってphpを始めた者です。windowsXPです。
sqliteを使いたいのですが、ファイルのオープンの時にエラーが出てしまいます。
Fatal error: Call to undefined function sqlite_open()
in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\nenpyou\schedule.php on line 2
2行目のコードは、
$db=sqlite_open("schedule.sqlite",0666,$err);
です。
php.iniは、
; Directory in which the loadable extensions (modules) reside.
extension_dir = "c:/php/ext"
;extension=php_sockets.dll
extension=php_pdo.dll
extension=php_sqlite.dll
;extension=php_sybase_ct.dll
のように変えています。
初心者なので右も左も分からない状態ですが、よろしくお願いいたします。
0389nobodyさん
2006/10/29(日) 05:19:21ID:hbSphBwDundefinedが出てるって事は間違いなくphp.iniの設定が間違ってるな
PHPがお前にsqlite_open()って言う関数がが見つからないよ!って教
えてくれてるんだ
まずapacheはちゃんと再起動したか?
0390387
2006/10/29(日) 06:08:50ID:hbSphBwDちょっとまとめて出直してくる
0391nobodyさん
2006/10/29(日) 08:03:36ID:???> URL直リンができないので不便すぎて廃止しました。
>
> 今は一応hiddenでやってますが、以前書いたようにフォルダ階層が分かりにくい。
こいつのおおもとの質問を読む限り、
こいつが探しているものは $_SERVER['PATH_INFO'] なのかな、って気がするが。
ただ持って回るのが検索履歴なら直林しなきゃいけない理由もよくわからんし
セッションに入れとけばって感じだけど。
携帯かなんかなのかな? あ、セッションIDをURLに入れとくように設定しとけば直林できるんでは
0392nobodyさん
2006/10/29(日) 09:43:30ID:???履歴とかではなく、単にカテゴリ分けされた「現在地」にあたるものを、ファイルシステムのパスみたいにスラッシュ区切りで表示したいだけだと思われ。
セッションを使う必要すらない。
URLの見た目も階層的にするなら、mod_rewriteで終了。
0393nobodyさん
2006/10/29(日) 10:07:10ID:???カウントファイル用意するか、
SQLでカウンタ用テーブル作成するか、
の方法取ってるんですが、もっとスマートな方法はないでしょうか?
0394nobodyさん
2006/10/29(日) 10:12:11ID:???一意ってのが後にも先にも一意っていうなら
そりゃやっぱどこかに既存値を保存しないとムリあるから
ファイルかDBになるんでないの?
自分でやるならまずその数字の使用目的と生成頻度から
本当に一意である必要があるかを問うとこからはじめる。
0396nobodyさん
2006/10/29(日) 12:14:56ID:XBhnfX09394と同じく使用頻度に重点を置くのが一番かと
0397nobodyさん
2006/10/29(日) 13:45:32ID:c2r4qYBNPHP側でHTTPリクエストのリクエスト内容を取得する方法ってありますか?
(HTTP 1.0/1.1 のリクエストヘッダーを取得する方法です。)
0398nobodyさん
2006/10/29(日) 14:06:22ID:???下らねえよ
$_SERVER['HTTP_*']
apache_request_headers
nsapi_request_headers
0399388
2006/10/29(日) 14:36:38ID:Vho0F98zレスありがとうございます。
ApacheはRestartしました。
php.iniで、ほかにsqlite_openに関係するところがあるのでしょうか?
0400nobodyさん
2006/10/29(日) 15:10:39ID:???0401nobodyさん
2006/10/29(日) 15:55:46ID:???phpディレクトリにちゃんとphp5apache2_2.dllが入っていることが前提で質問してるんだろうな?
0402388
2006/10/29(日) 17:20:07ID:t7v+PkcACのphpのextに両方のファイルがあります。
php5apache2_2.dllも、phpに入っているのを確認しました。
さっきももう一度パソコン再起動して試してみましたが、同じ症状です。
0403nobodyさん
2006/10/29(日) 17:26:15ID:???0404nobodyさん
2006/10/29(日) 17:26:56ID:???0405nobodyさん
2006/10/29(日) 17:27:27ID:???0406nobodyさん
2006/10/29(日) 17:54:15ID:???その年でそこまで分かるなんて本当に大したもんだよ、うん。
0407nobodyさん
2006/10/29(日) 18:13:22ID:???ありがとう。
0410388
2006/10/29(日) 19:02:32ID:t7v+PkcAphpIniDirとは、httpd.confのどこかに書くのでしょうか?
>>408,>>409
たぶん公式版を使っています・・・
ttp://httpd.apache.org/download.cgiからダウンロードしました。
簡単なsqlite以外は動作していたのですが。
非公式で配布されているのは、どこででしょうか?
0411nobodyさん
2006/10/29(日) 19:18:20ID:???非公式ぐらい自分で探せないなら公式版つかってたほうが無難。
0412388
2006/10/29(日) 19:20:00ID:t7v+PkcA「phpそれ自体(簡単なphpコード)」という意味です。わかりにくくてすみません。
0413nobodyさん
2006/10/29(日) 19:57:41ID:???0414nobodyさん
2006/10/29(日) 20:20:33ID:???windows環境でPHP5.1.6を動かしてます。
mysqliを試してみようと思ったのですが、上手く動きません。
とりあえずphp.iniの
;extension=php_mysqli.dll
のセミコロンを外して再起動したんですが全く無反応です。
Apacheのエラーログに以下のようなメッセージが書かれてました。
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_mysqli.dll'
このサイト見てみたら
ttp://php.s3.to/man/install.windows.extensions.html
libmysqli.dllが必要(バンドル)と書いてありますが、そのようなファイルは見当たりませんでした。
どうしたらいいでしょうか?お願いします
0415nobodyさん
2006/10/29(日) 20:28:41ID:???0416nobodyさん
2006/10/29(日) 20:34:12ID:???・extension_dirを設定しているか
・extension_dirで設定したディレクトリにdllがあるか
0417388
2006/10/29(日) 21:47:30ID:uuNUd04h同じメッセージが出てしまいます。
httpd.confは、
LoadModule phhp5_module c:/php/php5apache2.dll
AddDefaultCharset none
AddType application/x-httpd-php .php
の設定にしています。
0418nobodyさん
2006/10/29(日) 21:53:00ID:???0419のぐち
2006/10/29(日) 22:02:14ID:???とりあえずもう一度apacheとphpをいれなおせ。
いれなおしたらレスしれ
0420414
2006/10/29(日) 22:08:57ID:C/SNmSN3今まで通常のmysql_connectで繋いでたんでMySQL側の原因ではないと思います。
>>416
extension_dir = "c:\php\ext\"
としてあって同ディレクトリにphp_mysqli.dllが置いてあります。
libmysqli.dllはみんな存在してないんですか?
libmysql.dllはあるんですが・・・。
0421nobodyさん
2006/10/29(日) 22:33:18ID:0I0yeegjリンクをクリックしてファイルをダウンロードさせたいのですが、
ファイルのリンクを踏んだらカウントするって考えでよろしいのでしょうか?
クライアントが保存をキャンセルした場合もカウントされるものですよね?
0422nobodyさん
2006/10/29(日) 22:43:20ID:???403で出てるけど、php.iniの場所は確認した?
PHPのインストールディレクトリに入ってるだけじゃだめだよ(PATHが通っているかどうかは無関係)。
・C:\WINDOWSに入れる
・httpd.confでPhpIniDirを設定する
のどちらかをやればおk。
0423nobodyさん
2006/10/29(日) 22:44:24ID:???apache再起動はしたか?エラーメッセージはどうなった?
Unable to load dynamic library ならまだ読み込めない原因があるはず
http://php.net/manual/en/install.windows.extensions.php
libmysqli.dll はphp 5.0.3以降 libmysql.dll に
統合されたみたいなので問題ない
ていうかmysqliなんて使わずpdo_mysqlにした方がいいと思うよ
0424414
2006/10/29(日) 23:10:30ID:C/SNmSN3はい。何度も再起動しました。
Apacheのエラーログに
PHP Warning: PHP Startup: Unable to load dynamic library
'c:\\php\\ext\\php_mysqli.dll' - \x8ew\x92\xe8\x82\xb3\・・・
(中略)
in Unknown on line 0
と出てます。あきらめようかなorz
pdo_mysqlですか。
ちょっと勉強してみます。
0425nobodyさん
2006/10/29(日) 23:20:57ID:???PHPの関数・クラス定義・変数のスコープについて悩んでいます。
関数やクラスをファイルに分けて定義し、include/requireした場合に名前衝突を起こす問題を極力避けたいと思っています。
現状では関数/変数をクラス内static定義にする事によって極力名前衝突を起こさないようにしています。
(C++でのnamespase的に使用しています。PHP5で実装予定であったものがされなかったとかなんとか・・・)
こうしてある程度クラスに名前を閉じ込めたものの、クラス定義名の衝突だけは回避出来ずに困っています。
今作成している物に後からモジュール的にコードを追加して行く予定の為どうしても名前衝突問題を回避しなければ・・・
構成的に以下のような物を予定しているます。
[メインphp]
|---[モジュールAphp]
|---[モジュールBphp]
|---[モジュールCphp]
|---[追加予定モジュールXphp]
|---[追加予定モジュールXphp]
・・・・
メインphpが上から順番にモジュールPHPを読み込んで行くような構成です。
このような構成で、[モジュールXphp]各々がクラス定義phpファイルをinclude/requireすると
自身のモジュールでだけ使用する比較的どうでも良い様な物までグローバルスコープに名前が追加されていってしまうようで、
後に読み込まれるモジュール程名前の幅が狭まっていってしまいます・・・
関数内でクラス定義をinclude/requireしたりと色々試したのですが、どうしても定義はグローバルになってしまうようです。
現状ではモジュールそれぞれがクラス名にプレフィクスを付ける規約みたいな物を作る方法しか思いついていません。
class ModuleA_class1{ }
class ModuleA_class2{ }
class ModuleB_class1{ }
class ModuleB_class2{ }
なにか良い方法はありませんでしょうか(´・ω・`)
0426nobodyさん
2006/10/29(日) 23:26:00ID:???なんか回答とその対応が混乱してるように見えるんだけど、
>>423にあるようにlibmysqli.dllが必要なのは5.0.2まで。
だからそもそも>>414の
>とりあえずphp.iniの
>;extension=php_mysqli.dll
>のセミコロンを外して再起動したんですが全く無反応です。
これ自体が間違ってると思うんだがどうよ?
extensionに必要なのはlibmysql.dllだけじゃないの?
0427nobodyさん
2006/10/29(日) 23:35:11ID:???はっきり言おう、ない
クラス名に一意のprefixをつけるくらいしかない
メジャーなPHPフレームワークも大概そうしている
例えばZend Frameworkなら全クラスに
prefixで「Zend_」がついてその後にモジュール名がくる
0428425
2006/10/30(月) 01:15:22ID:???情報ありがとうございます。
クラス(関数/変数)にprefixを付ける制限的規約を設けることにします。
おかげさまで気持ちがスッキリ割り切る事が出来ました。
これで思う存分コードを書きまくる事が出来ます(`・ω・´)
0429はじめまして
2006/10/30(月) 02:33:13ID:zWlXBO6nある文字列をmb_convert_encodingを使いEUC-JPに変換したいのですが、
何を指定しても常にASCIIになります。
なにか他に設定あるでしょうか?よろしくお願いいたします。
ソース:SJIS
入力値(test):"あああ"
mb_detect_encoding($_POST['test'])で取れる値:SJIS
$strEuc = mb_convert_encoding($_POST['test'], "EUC-JP", "SJIS");を実行
※ちなみに変換前のコードのとこをautoやほかのにしてもだめでした・・・
mb_detect_encoding($strEuc)で取れる値:ASCII
04300x3f(笑)
2006/10/30(月) 02:41:05ID:???0431nobodyさん
2006/10/30(月) 02:45:29ID:???実際は変換結果はどうなってんのよ。出力して確認したのか?
「変換できてない」のと「detectでEUCが判別できない」のとでは
全然意味が違うし、どっちの可能性が高いかったらdetectの方が怪しい。
0432nobodyさん
2006/10/30(月) 03:06:28ID:???mb_detect_encodingは短い文字列に対しては、期待通りの結果にならないこともあるので(内部のバイナリレベルでは人間にもコンピュータにも区別つかなかいこともあるし)、基本的に信頼をしたらだめ。
飽くまで補助的な目的に使う。
mb_convert_encodingは第2引数と第3引数が正しければ、信頼はできる(内部にバグがない限りは)。
0433nobodyさん
2006/10/30(月) 04:14:32ID:???自分でコンバート処理かけば解決。
世の中にはメールアドレスの正規表現を書いたものすごい人もいるんだから
やってみればいいじゃん
0434nobodyさん
2006/10/30(月) 05:11:29ID:???0435nobodyさん
2006/10/30(月) 05:39:04ID:???0436nobodyさん
2006/10/30(月) 05:47:50ID:???まあ実装しても車輪の再開発にしかならないけど。
0437388
2006/10/30(月) 05:49:57ID:QeG77sZUApache2.0.53とphp5.0.4を入れ直したら、
解決しました。
このバージョンでは、php.iniでsqliteの設定をしなくても
大丈夫でした。
ご協力下さった皆様、本当にありがとうございました。
0438nobodyさん
2006/10/30(月) 06:17:39ID:???例えば、
$mode = "text"
の時に"file_text.inc"をincludeしたいのですが、どうすればいいのでしょうか?
0439nobodyさん
2006/10/30(月) 06:17:53ID:???0440438
2006/10/30(月) 06:18:32ID:CYbz73Go0441nobodyさん
2006/10/30(月) 06:22:26ID:???何がわからないんだ・・・?
if ($mode == "text") {
include "file_text.inc";
}
0442438
2006/10/30(月) 06:27:12ID:CYbz73Go回答ありがとうございます。
説明不足でスミマセン、例ではtextだけを上げましたがtexta,textb,textc・・・という風に生成されていく場合です。
0443438
2006/10/30(月) 06:28:56ID:???0444441のソースを元に
2006/10/30(月) 06:34:46ID:???if ($mode == $texta) {
include "file_text.inc";
} elseif {
#処理2
} elseif {
省略
ていうか最低限の勉強しないで聞くのは学校ぐらいにしておけクズ。
0445nobodyさん
2006/10/30(月) 06:39:21ID:???↑>>444のコードは自分でいじって動かしてみろ。
連想配列の勉強すればわかることだから入門書嫁ボンクラ。
0446438
2006/10/30(月) 06:40:13ID:CYbz73Go444のコ−ドだとtextxが増えた場合にelseifを自分で増やさなければならないのですが
0447nobodyさん
2006/10/30(月) 06:48:16ID:???0449nobodyさん
2006/10/30(月) 06:55:51ID:???連想配列をと変数と『.=』を使いこなせば解決します。
何でも聞くんじゃなくて自分なりにためしてみて、
それでも動かなかったらここにコードを書け。
だから質問もロクにできないグズなんだよおまえは
0450nobodyさん
2006/10/30(月) 06:57:10ID:???include "file_{$text}.inc";
とかってことじゃないの。
↑であってるならば、俺は最初から質問の意味理解できたけど。
0451450
2006/10/30(月) 06:59:50ID:???一気にレスついたから、全部自演に見える。
0452nobodyさん
2006/10/30(月) 07:02:42ID:???0453nobodyさん
2006/10/30(月) 08:55:23ID:???このスレさっきまで下の方にあったのに、すこし上にあがってる。
バグ?
0454nobodyさん
2006/10/30(月) 09:08:11ID:???その「さっき」っていう時点でスレ一覧をリロードしてなかっただけじゃね?
今のところ、ageられた時間的には
10/30(月) 06:40:13 【PHP】下らねぇ質問はここに書き込みやがれ 31
10/30(月) 03:38:12 IDにPerlが出たら神!PHPが出たらシメジ Part24
10/30(月) 03:37:15 金出すから改造してよvol.3
10/30(月) 02:44:37 SNS作ってみよう
10/30(月) 02:42:36 OpenPNE その4
10/30(月) 01:09:43 【質問】ASP.NETスレ Part3【議論】
って感じで、特におかしなとこはなさげ。
0455nobodyさん
2006/10/30(月) 09:31:47ID:???0456nobodyさん
2006/10/30(月) 11:25:37ID:Ji6bSWEi三項演算子で条件文を書いて、
現役PGの知り合いに見せたら使わないほうがいいと言われました。
理由は聞かなかったのですが、やはり見づらいからという理由なんでしょうか?
一応個人で使う分なので、別の理由かもしれませんが。
もしかしたらパフォーマンス面かな?と思ったので計測したいのですが、
計測の仕方がわかりません・・・
スクリプトの最初と最後でmicrotimeをとって、その差を求めればいいのでしょうか?
0457nobodyさん
2006/10/30(月) 11:30:15ID:???0459nobodyさん
2006/10/30(月) 11:48:44ID:???>>456
相手がプロなら、コーディング規約に沿った複数人プロジェクトもやってるはず。
となると、仕事柄見やすいソースを意識するんじゃないかと思う。
わざわざ見にくいソースを書く必要がないっていう考えでしょ。
個人で作ってると言っても、聞いてる相手に見せてるんだから、
見やすいソースを渡すべきだと思う。
ベンチマークはPEARのBenchmark
0460nobodyさん
2006/10/30(月) 11:52:31ID:???0461nobodyさん
2006/10/30(月) 12:04:41ID:bBR787Fl認証部分はPEAR::HTTP_Clientを使ってできました。
ですが、取得したHeaderから、ダウンロードしたいファイル名を取り出し、
ローカルに保存するやり方がわかりません。
よろしくお願いします。以下ソースとヘッダーです。
$target_url = "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/aiuro.php";
$client =& new HTTP_Client( $reqParams);
$client->post( $login_url, $login_params);
$client->get( $target_url);
$response = $client->currentResponse();
print_r( $response);
Array
(
[code] => 200
[headers] => Array
(
[date] => Mon, 30 Oct 2006 02:31:03 GMT
[server] => Apache
[cache-control] => private, max-age=10800, pre-check=10800
[last-modified] => Wed, 20 Sep 2006 01:47:25 GMT
[content-disposition] => attachment; filename=item_20061030-113103.csv
[connection] => close
[transfer-encoding] => chunked
[content-type] => application/octet-stream; name=item_20061030-113103.csv //このファイルを保存したい。
)
[body] =>
)
0463nobodyさん
2006/10/30(月) 12:54:50ID:???ていうか、「そんなもの知らない」って人も結構いるし。
とりあえずPHPは、どんなレベルの奴がかかわってくるかわからんので、
素人向けの一番簡単な入門書で紹介してるレベルの内容で書き換え可能なものは
原則的に素人向けの書き方しといたほうがいいんじゃないかって気がする。
経営的な言い方すると、PGのコストを最小にしてもトラブルが少ないように。
もちろん経営的に全然逆の考え方する人もいるだろうけど。
0464461
2006/10/30(月) 13:05:21ID:bBR787Flこのページは、通常のブラウザで見ると、
CSVファイルのダウンロードページなので、Bodyは無いのだと想います。
0465nobodyさん
2006/10/30(月) 13:07:43ID:???そもそもどういうのを三項演算子で書き直したんだ。
三項演算子は「条件で変わる代入式」をすっきり書くための演算子で
条件文を1行化するために用いるようなものじゃないよ?
意図の見えないコードは当然読みづらくなるし保守が難しくなるので
そういう意味で誤った使い方をしてるなら避けた方がいい。
ただ、それとは別にCに慣れない人や不勉強な人で
三項演算子を見慣れなくて敬遠してるだけの人も多い。
そういう人が触ることも考慮してコーディング規約なんかで
禁止してる会社も多々あるが、個人的にはどうかと思う。
なお、パフォーマンス的には何の問題もない。
0467461
2006/10/30(月) 13:31:25ID:bBR787Fl失礼しました。「ダウンロードページ」ではなくて、
「ファイルのダウンロード」です。
こういうの↓
http://players.music-eclub.com/download.php?sid=116561
0468nobodyさん
2006/10/30(月) 13:39:36ID:???うん。だからこの場合、BODYはファイルそのものになるはずでしょ。
Content-Lengthが返ってないせいで取得できてないのか?
0469nobodyさん
2006/10/30(月) 13:59:27ID:rTiz0489単に
if($_POST['checkbox']){
$checked = 'checked';
}else{
$checked = false;
}
ってだけなら、三項演算子で書いた方がすっきりするから
0470nobodyさん
2006/10/30(月) 14:11:46ID:mf7qX0dx本文に指定した文字列の最後に改行が2つ付いてしまうのですが、
これを回避する方法ってありますか?
0471nobodyさん
2006/10/30(月) 14:13:39ID:???見通しも悪いし、別にパフォーマンスに影響ないし。
「すっきりコンパクト=見通しが良い」ではないよ。
ソースってのはいわば設計図だからな。
シンプルすぎる設計図は、建物の詳細が見えにくい。
0472nobodyさん
2006/10/30(月) 14:19:36ID:???頑なにどちらかに固執する必要性を感じない。
>>467
そのリンクだったら普通に取得できるみたいだけど。
$client = new HTTP_Client;
$client->get('http://players.music-eclub.com/download.php?sid=116561');
$response = $client->currentResponse();
0473461
2006/10/30(月) 14:42:44ID:bBR787Flなるほど、そうなるんですか。どうもです!
>>472
環境の違いでしょうか…。
$client = new HTTP_Client;
$client->get('http://players.music-eclub.com/download.php?sid=116561');
$response = $client->currentResponse();
でも、bodyは空なんですよね〜。
0474nobodyさん
2006/10/30(月) 15:34:50ID:???俺のとこでは$response['body']に4MくらいのMP3のバイナリデータがばっちし入ってたけどな。
普通のHTMLとかは取得できるの?
0476nobodyさん
2006/10/30(月) 16:02:27ID:???0477461
2006/10/30(月) 16:23:10ID:bBR787Flありがとうございます!
自己解決しました。
HTTP_Clientをインストールしなおしたらいけました。
0478nobodyさん
2006/10/30(月) 17:50:21ID:???0479nobodyさん
2006/10/30(月) 17:53:16ID:???0480nobodyさん
2006/10/30(月) 18:19:15ID:???0481nobodyさん
2006/10/30(月) 18:26:40ID:???0483nobodyさん
2006/10/30(月) 20:51:02ID:bBR787Fl$target_url = "ターゲットURL";
$client =& new HTTP_Client( $reqParams);
$updata=array( "filename.csv", "filename.csv");
$client->post( $login_url, '', '', $updata);
Warning: Missing argument 2 for addfile() in /インクルードパス/HTTP/Request.php on line 525
何卒お願い申し上げます・・・・・
0484nobodyさん
2006/10/30(月) 21:01:53ID:???$updata = array(array("filename.csv", "filename.csv"));
じゃないだろうか
後1つ目の値はフォームのエレメント名
ソースチラ見で書いてるんで外してたらすまん
0485nobodyさん
2006/10/30(月) 21:45:19ID:???日別ログや週別ログ、月別ログとして管理画面から閲覧できるものがありますが、
そういうのはログファイルを日、週、月で別々に記録しているのでしょうか?
0486nobody
2006/10/30(月) 21:51:21ID:LQ50Lk3U文章中に含まれるカタカナの語句を全て抜き出し、コンマ区切りで別の
テキストファイルに書き出すということをしたいのですが、ちょっと
手詰まりな状態です。どうか、ご教授願えませんか?
0487nobodyさん
2006/10/30(月) 21:57:41ID:???AサーバのPHPスクリプトでBサーバに接続し、
Bサーバ上でシェルコマンドを打って、その結果をAサーバに
返す事は可能でしょうか。
例えば、AサーバのPHPで、ls -laというコマンドを、
Bサーバで打って、その結果をAサーバのPHPスクリプトで
表示させたいと思っています。
どなたかご助言お願い致します<(_ _)>
0488nobodyさん
2006/10/30(月) 22:02:12ID:???fopen
正規表現でカナの抜き出し→配列に保管
配列をファイルに書き込む
これでコードかいて動かなかったら質問しろ。
0489nobodyさん
2006/10/30(月) 22:03:12ID:???そりゃ作成者に聞かないとわからんが
たぶんログを表示するときに生データから欲しいログだけ抽出してんじゃないの?
>>486
今どこまでできてんの?
0491nobodyさん
2006/10/30(月) 22:10:28ID:???日毎のログがあれば集計して週のデータも月のデータも出せるでしょ
>>486
何で手詰まりなのか
>>487
Bでシェルから結果を受け取るスクリプトを置いて
AからBのそのスクリプトのURLをリクエストして
レスポンスを取得するようにすればいい
0492486
2006/10/30(月) 23:41:30ID:LQ50Lk3Uいまのところ、
$text=fopen("bunsyou.txt","r");
$text2=fread($text,filesize("bunsyou.txt"));
//echo "$text2<br>\n";
for($i=1; i<=10; i++){
if(eregi("[ア-ン]",$text2));
}
fclose($text);
こんな感じです。正規表現にマッチした語句の抜き出し方が、よく
わからないのでして。。。お教えいただければ、ありがたいです。
0493nobodyさん
2006/10/30(月) 23:44:13ID:???0494487
2006/10/30(月) 23:45:47ID:???レスありがとうございます<(_ _)>
> Bでシェルから結果を受け取るスクリプトを置いて
重ね重ね申し訳ありませんが、↑ってどういう風に
書けばいいのでしょうか。
関数名だけでもヒントを頂けないでしょうか。
0495nobodyさん
2006/10/30(月) 23:46:18ID:???0496nobodyさん
2006/10/30(月) 23:47:57ID:???> Bでシェルから結果を受け取るスクリプトを置いて
B.phpの$text="hello"をA.phpにて受け取るスクリプトを書ければわかりやすいだろう。
0497nobodyさん
2006/10/31(火) 00:06:18ID:???echo "$text<br>";
if(mb_ereg("[ア-ン]+[アーン]+", $text,$str)) {
echo $str;
}
あとは自分で調べろ、
0498483
2006/10/31(火) 00:07:20ID:lBCw+Epvおおお!ありがとうございます!
明日試してみます。
PEARのドキュメントってどうもサンプルスクリプトがなくて
使い方がいまいち分からんと思っているのはオレだけか?
0499nobodyさん
2006/10/31(火) 00:22:07ID:???http://jp.php.net/manual/ja/ref.exec.php
ここらへん
>>498
PEARはtestやexampleが入ってるからそれを見る、
あとはソース嫁が基本
0500498
2006/10/31(火) 00:48:55ID:lBCw+Epv出直してきます。
0502nobodyさん
2006/10/31(火) 01:05:43ID:6V2Mcmc8if文でチェックする場合、
クライアントのIPを取得して、それを何と比較したらいいのでしょうか?
コードは自力で書きますので、どなたかヒントだけご教授お願いいたします。
0503nobodyさん
2006/10/31(火) 01:12:04ID:???0504nobodyさん
2006/10/31(火) 03:42:11ID:???0507nobodyさん
2006/10/31(火) 07:32:48ID:???それだと半角カナが先に来ないといけないし全角はア、ー、ンの3文字だけ
[ア-ンア-ン]にしても半角のァィゥェォとか全角のァヴヵヶとかがマッチしない
$text ="あいうえおアイウァィゥェォガギグパピプヴァヶさしすせそ";
echo "$text<br>";
mb_regex_encoding("sjis");
if(mb_ereg("[ヲ-゚ァ-ヶ]+", $text,$str)) {
var_dump($str);
}
0508nobodyさん
2006/10/31(火) 07:42:01ID:???0509nobodyさん
2006/10/31(火) 08:04:06ID:5uTR2Worで配列に読み込んでprint_r($file)で確認すると、
インデックス0($file[0])には一行目が、インデックス1には2行目が・・(省略)格納されてしまいます。
自分がやりたいのは
$file[0][0]で一行目の一つ目のデータを見たいのですがうまくいきません。
どなたかご教授お願いいたします。
list.txtの中身
green,yellow,blue,red
black,red,white,orange
0510nobodyさん
2006/10/31(火) 08:11:52ID:???カンマ区切りでデータを区切りたいならそう書かないと。
PHPは表計算ソフトじゃないんだからそんなの標準でやるわけないじゃん。
すでに読み込んだデータをカンマ区切りで分解する方法と、
読み込みをカンマ区切りで行う方法とがある。
・後から区切る方法
$file = file("list.txt");
$data = explode(",", rtrim($file[0]));
echo $data[0];
・読み込み時に区切る方法
$fp = fopen("lit.tst", "r");
$file = array();
while($line = fgetcsv($fp, 1024)) {
$file[] = $line;
}
fclose($fp);
echo $file[0][0];
0511nobodyさん
2006/10/31(火) 08:16:31ID:???$i = 0;
while (($line = fgetcsv($fp, 1000, ',')) !== FALSE) {
$lines[$i] = $line;
$i++;
}
fclose($fp);
$lines[0][0]みたいにね
時間ないから動作確認してないけど
んじゃ
0513486
2006/10/31(火) 09:34:28ID:F9LjnucEやってみます。ありがとうございました。
0514nobodyさん
2006/10/31(火) 09:56:56ID:???0515nobodyさん
2006/10/31(火) 10:08:09ID:???0516nobodyさん
2006/10/31(火) 10:22:39ID:???こっちの方が簡単そう。
$file = file_get_contents("ファイル名");
$file = mb_ereg_replace('[^ヲ-゚ァ-ヶ]+', ',', $file);
echo preg_replace('/^,|,$/', '', $file);
0517nobodyさん
2006/10/31(火) 10:25:28ID:kTefGQaT文字化けさせないようにするためには
phpの中身(echoとかで表示される日本語)もEUC-JPで書かなければならないんですよね?
0518nobodyさん
2006/10/31(火) 10:33:46ID:???0519nobodyさん
2006/10/31(火) 10:44:13ID:???echoの前にmb_convert_encodingで文字コード変換をかけるとか、
出力データの定義だけEUCにしとくとかでも文字化けはしないけど
そんな手間をかけるくらいならEUCでソース書いた方が早いかもね。
個人的には出力データがソース中にあること自体どうかと思うけど。
0520nobodyさん
2006/10/31(火) 11:07:31ID:bXmcDE+81)フレーム内にあるページでSSLにするとセッション変数が引き継げないのはどうしてなのでしょう?
2)actionでSSLのURIを指定し、methodにPOSTを指定しても、
GETを指定した時のように、アドレスに引数が表示されるのはどうでしてなのでしょうか?
ご存知の方尾根逢いいたします。
0521nobodyさん
2006/10/31(火) 11:32:07ID:F9LjnucE設定/取得とありますが、内部文字エンコーディングって
なんでしょうか?
あと、
mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");
このように用いられている例があるのですが、どんな意味があるん
でしょうか?
0522nobodyさん
2006/10/31(火) 11:43:17ID:???0523nobodyさん
2006/10/31(火) 13:15:10ID:???配列で出力してくれる関数はありませんか?
get_declared_classesを使ったら、
すごいたくさんクラスが出てきて困っています。
0524483
2006/10/31(火) 13:20:33ID:tsMd/rxyありがとう神。出来ました。
0525nobodyさん
2006/10/31(火) 13:21:46ID:KRBx0YqFclass hoge{
function foo($match){
return "123";
}
function bar($match){
return "abc";
}
}
$before = array(
"[a-z]+",
"[0-9]+"
);
echo preg_replace_callback($before, array(array("hoge", "foo"), array("hoge, bar")), "abc123");
0527nobodyさん
2006/10/31(火) 13:31:16ID:???行いたいのですが、パスワード入力の部分で対話になってしまい
これをどの様に処理していいのか解らず、どなたかご存知の方
おりましたらアドバイス頂けると助かります。(>_<;
0528nobodyさん
2006/10/31(火) 14:32:33ID:???expect が使えるのならそれを使う
php 側は expect コマンドを使ったシェルスクリプトを実行するようにする
expect が使えないのなら、あきらめたほうがいいかも
0529nobodyさん
2006/10/31(火) 14:56:34ID:???有り難う御座います。調べててそこまでは辿り着きコンパイルし直して
有効にはなったんですが、peclでモジュールダウンロードしようとする
とlibexpectが無いと言われてしまい、libexpect探してるんですがどこ
に落ちてるか解らないス…orz
#PHPのインストール
version : php-4.4.4
./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-versioning \
--enable-mbstring \
--with-pgsql=/usr/local/pgsql \
--enable-zend-multibyte \
--with-expect=./ext
#pecl install expect-0.2.2
〜
checking for expect support... yes, shared
configure: error: expect extension requires libexpect version >= 5.43.0
ERROR: `/tmp/tmpUKzwZQ/expect-0.2.2/configure' failed
0531nobodyさん
2006/10/31(火) 15:17:53ID:???proc_open()ってのはそういうケースじゃ使えないの?
0532nobodyさん
2006/10/31(火) 15:35:48ID:???メッセージから察するにlibexpectがないんじゃなくて
libexpectのバージョンが古いんじゃないかな
aptとかrpmでexpectをアップグレードするとか
0533nobodyさん
2006/10/31(火) 15:47:57ID:???を str_replace で置換(削除)したいんですが、
^Mをどうやって指定すればいいでしょうか?
0534527
2006/10/31(火) 15:52:36ID:???>>531
ザッとマニュアル見てみたんですが、ちょっと後ほど試してみます。
>>532
ソースからインストールする癖がついててすっかりそうゆう便利な
物の存在を忘れていました。早速実行してみましたが、やっぱ駄目
ポでした。。。
yum install-expect
expect-5.42.1-1.i386.rpm 100% |=========================| 13 kb
アップデートのものが古いようです。orz...
>libexpect version >= 5.43.0
はぁ…よく解らない…
とりあえず引き続き調べて何かわかったら報告しまつ。(・ω・;
ちなみにOSはCentOS4.4です。
0536nobodyさん
2006/10/31(火) 16:40:10ID:???>>528
の方法は bash とかのシェルスクリプトを使って
それを shell_exec() で実行するという意味だと思うぞ
proc_open()でいけそうな気もする
0537nobodyさん
2006/10/31(火) 17:13:10ID:???expectの5.43.0が結構新しいから5.43.0用のrpmがまだstableじゃないんだろう
unstableな最新のrpm探して取ってくるかソースから自前でexpect入れるか
そういう作業に慣れてないなら
proc_open()でできるかどうかから調べた方がいいかも
0538nobodyさん
2006/10/31(火) 18:52:52ID:o5P7BR6pどうもありがとうございます
0539nobodyさん
2006/10/31(火) 21:20:22ID:???0540nobodyさん
2006/10/31(火) 21:44:23ID:???0541nobodyさん
2006/10/31(火) 21:57:29ID:aqfpYPvu秒まで記録することは精度に信頼できるものか疑問でございます。
どなたかアドバイスお願いいたします。
0543nobodyさん
2006/10/31(火) 22:08:01ID:???別に記録するだけ記録してもいいんじゃない?
データベースで時間管理するなら秒まで記録するはず
0544541
2006/10/31(火) 22:19:53ID:???UNIXタイムで記録するのとY/m/d H:i;s形式どちらが妥当でしょうか?
二つとも記録するのは無駄ですよね?
0545nobodyさん
2006/10/31(火) 22:27:26ID:???0547nobodyさん
2006/10/31(火) 22:37:34ID:???両方やっとけばいいがな(´・ω・`)
0548nobodyさん
2006/10/31(火) 22:41:36ID:???「妥当」というのは目的に合致しているかで判断される。
キミの質問にはその「目的」が書かれていないので判断のしようがない。
0549nobodyさん
2006/10/31(火) 22:54:25ID:Ch7IBLhaボタンID
1,2,3,4,5,6,7,8,9,10
テーブル2
使用許可されたボタンID
1,2,3,4,5,6,7
テーブル3
user ボタンID
1 1
1 2
1 3
1 9
2 1
2 2
3 1
この三つのテーブルから、テーブル1と2を比較し、1〜7までグループ的に使用許可
その後、ユーザーのレコードから使用を認めるようなものが作りたいのです。(ユーザー1なら、ボタン1、2、3。ユーザー3ならボタン1のみなど)
$search = strstr ($table1, $buttonID);
一生懸命考えてこんなんでましたが、もっとスマートに出来ないでしょうか?
MySQLでも上手い事出来る気がしないでもないのです…
どなたかエロイ人へるぷみ〜
0550nobodyさん
2006/10/31(火) 22:59:00ID:???0551541
2006/10/31(火) 22:59:30ID:???あるページのアクセスログを一日単位で集計して、
そのアクセス数のよって企業からお金を頂く仕組みでございます。
ですので、23:59から0:00の間がきっちりやりたいと思っております。
アクセス数を日別に集計したファイルと、アクセスログを提出するのですが、
秒までいれるべきか迷ってしまいました。
主な目的は、一日のアクセス数を集計することと、
1時間単位のアクセス数を調べるのが目的です。
0553549
2006/10/31(火) 23:02:08ID:???0554nobodyさん
2006/10/31(火) 23:02:55ID:???それよりも、サーバの時間を正確に保持するほうが大切じゃないの
0555nobodyさん
2006/10/31(火) 23:16:42ID:???普通、宿題というものは自力でやるもんだ(´・ω・)
>>551
何がそんなに問題なのかが分からない。
時刻を保存した場合、ログの保存にもたついたら31日のログファイルに
30日23時59分のデータが混じる事はあるかも知れんが、
曜日的なバイアスを考慮しないなら期待値は
30日のログファイルに29日のデータが混じるのとそう変わらん。
つまり厳密ではないかも知れないがそこまで深刻な違いも出ない。
1〜2件アクセス数が違ったくらいで動く金額にそんなに大きな違いが?
0557nobodyさん
2006/10/31(火) 23:21:30ID:???お前そんなレベルで金をとったら詐欺に近いよ。
っていうかそもそもアクセスログの件数で金額が決まる仕事って、なんだよそれ。ありえない。
0558541
2006/10/31(火) 23:23:03ID:???この部分のコードを参照していただきたいのですが、
1行目の処理が23:59:59で
3行目の処理が0:00の場合、
日付、データは23:59:59として書き込まれるのでしょうか?
それとも0:00として書き込まれるのでしょうか?
$string =.date("Y/m/d,G:i:s")
flock($file,LOCK_EX);
fputs($file,$string);
0559nobodyさん
2006/10/31(火) 23:29:58ID:???ただし$fileが23:59:59に正しく対応したものであるかどうかは別の問題だな。
0560nobodyさん
2006/10/31(火) 23:30:11ID:???Webでのアクセスの場合、通信経路によって2秒や3秒ずれることはあるわけで、
結局、取引先に通知すべきなのはログとしてカウントされた時刻でしかない。
どこで線引きをするかを指定しされているわけでなく、どうしても気になるなら先方に聞け。
>>558
前者。
0561nobodyさん
2006/10/31(火) 23:30:27ID:???またある時は片目の運転手またある時は品好きのキザな紳士になってたら困るっちゅーねん
0562nobodyさん
2006/10/31(火) 23:31:54ID:???サーバの時計あわせだけ出来てれば問題なしとするしかないだろ
そもそも最初に秒単位まで記録するかどうかを質問してるけど、分単位で記録しても仕様として通るような上司がシビアとかアフォか
適当に大丈夫ですって言いくるめとけばいいだろ
0563560
2006/10/31(火) 23:34:50ID:???$_SERVER["REQUEST_TIME"]
に格納されている。
0564541
2006/10/31(火) 23:40:17ID:???当方の環境では時間差でdate()の中身は変わりませんでした。
$time =date("Y/m/d G:i:s");
echo $time;
for($i=0;$i<10000000000;$i++){
echo "a";
}
echo "<hr>";
echo $time;
0565nobodyさん
2006/10/31(火) 23:42:51ID:Ch7IBLhaうはw なりすましかよw
まぁ、array_diff( )を発見したので、これで出来るかなぁ。
ちなみに宿題ちゃいますw
知り合いの会社用ですお
0566541
2006/10/31(火) 23:44:43ID:???php5.1から使えるのですね、勉強になりました。
現在php4.4.3をしておりますので、
近いうち5.1にバージョンアップする予定なので利用させていただきます。
0567nobodyさん
2006/10/31(火) 23:47:24ID:???×当方の環境では時間差でdate()の中身は変わりませんでした。
○当方の環境では時間差で$timeの中身は変わりませんでした。
あと、そのコードだとたとえ最適化が働くようなコンパイラであったとしても、
2行目で$timeを参照しているので、少なくとも2行目で$timeの中身は(通常なら)確定する。
もし、そうでなければ$timeの値が操作なしで変わってしまうことになる。
不確定性理論みたいなもんだ。
0568nobodyさん
2006/10/31(火) 23:53:18ID:???一日ズレたって、次の日のカウントに入るだけじゃないの?そんな深刻な問題かね?
一時間ごとにも集計するなら、その一時間ごとにもズレが出るってことだよねw
0569nobodyさん
2006/10/31(火) 23:56:51ID:???日付が変わった後で該当するデータをまとめて抜き出せばずれないよね(´・ω・)
手間がかかる割に無意味だけど。
0570nobodyさん
2006/10/31(火) 23:57:56ID:???0571nobodyさん
2006/10/31(火) 23:58:55ID:???ほとんど無いのはなんで?
0572nobodyさん
2006/11/01(水) 00:02:25ID:???時計の精度とか、どの時点でアクセスされたと見なすかってのはクライアントと話し合って決める内容だろ
まぁ、マイクロ秒単位の誤差まで問題にされたら困る
>>571
ぷろぐらむ組むのは初めてです。って人に教えるには少々メンドイしページ数が増えちゃうからじゃね?
使うにしてもPHPマニュアルよりRFCの方が役立つしねぇ
0573nobodyさん
2006/11/01(水) 00:08:59ID:???PHPがWeb用途に重きを置いていて使う人もそれを求めてるから
直接ソケットいじくらず用途に応じたラップしてあるライブラリ使えってこった
0574nobodyさん
2006/11/01(水) 00:47:13ID:???どっちにしろ、通常はプログラム先頭でdate()の値を変数に取得しとけば問題にならない。
それすら分からないド素人レベルで金取るなよ詐欺師。
0575nobodyさん
2006/11/01(水) 04:58:04ID:???ソケット通信プログラミングの専門書はC用の既存の本が
いっぱいあって関数は互換があるからそれ読めばいいし、
逆にそれ読まずに使いこなすのはかなり無謀だし、
PHPのマニュアルに混ぜると半分がソケットの話になるか
下手するとそっちの方が分量がでかくなるんで無理がある。
0577nobodyさん
2006/11/01(水) 08:09:51ID:???0578nobodyさん
2006/11/01(水) 08:44:37ID:???> $_SERVER["REQUEST_TIME"]
「アクセス」ってのが微妙だが、
リクエストがあった時間と客がレスポンスを見る時間は違うかもしれないと。
確かここら辺って、いろいろ複雑だったようなきがする。
Apacheがリクエストを受け取る時間とレスポンスを吐き出しはじめた時間、
レスポンスを送り終わった時間とか。どっかで読んだなあこの話。
> シビアなんです、上司が。
あなたが定義すればいいんですよね。
HTTPリクエストがあった時間を基準に課金することにするって。
0579nobodyさん
2006/11/01(水) 09:02:23ID:???プ
0580nobodyさん
2006/11/01(水) 09:25:57ID:???;'`;、、:、. >>579: :,.: ::`゙:.:゙:`''':,'.´ -‐i
'、;: ...: ,:. :.、.∩.. .:: _;.;;.∩‐'゙  ̄  ̄
`"゙' ''`゙ //゙`´´ | |
//Λ_Λ | |
| |( ´Д`)// <うるせぇ、エビフライぶつけんぞ
\ |
| /
/ /
__ | | __
\  ̄ ̄ ̄ ̄ ̄ \
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄||
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
0581nobodyさん
2006/11/01(水) 10:05:10ID:???正規表現で文字を抜き出して、配列に格納して表示させたら、
Array ( [0] => タイトル [1] => ツール [2] => カメラ [3] => カメラ
[4] => カメラ [5] => カメラ [6] => データベース [7] => ユーザー)
といった感じで、ダブっているものも検出してしまいます。
これをダブりがないように表示するには、どうすればよいでしょうか?
0583nobodyさん
2006/11/01(水) 10:54:53ID:???0584nobodyさん
2006/11/01(水) 11:01:34ID:???ありがとうございました。ダブっているのをもう1回正規表現で抜き
出して、mb_ereg_replaceで置き換えるのかなぁと思って、ちょっと
困っていたところですが、実は配列の初歩的なことで解決できたん
ですね。マヌケでした。
0585nobodyさん
2006/11/01(水) 11:35:24ID:egQfb3lu0587581
2006/11/01(水) 11:49:18ID:???メアド欄に空白入るとIDが表示されなくなるんですか
0588nobodyさん
2006/11/01(水) 12:08:33ID:???0590nobodyさん
2006/11/01(水) 12:23:36ID:???おまえ出世しないタイプだなw
0591nobodyさん
2006/11/01(水) 12:38:00ID:???Windowsサーバなのですが、パッチはありませんか?
0592nobodyさん
2006/11/01(水) 12:43:18ID:???回答者はIDをだしてください。
回答者はIDをだしてください。
回答者はIDをだしてください。
回答者はIDをだしてください。
回答者はIDをだしてください。
回答者はIDをだしてください。
回答者はIDをだしてください。
0593nobodyさん
2006/11/01(水) 12:43:58ID:???0596nobodyさん
2006/11/01(水) 12:58:28ID:???0602nobodyさん
2006/11/01(水) 14:13:23ID:???0604nobodyさん
2006/11/01(水) 14:41:25ID:???value値を1や2と言った数値にしてます。
で、
if (is_numeric($_POST['aa'])) {
if ($_POST['aa'] == 1) {
echo "1です。";
} else if ($_POST['aa'] == 2) {
echo "2です。";
}
} else {
echo "数値以外はダメ。";
}
とするか、
if ($_POST['aa'] == 1) {
echo "1です。";
} else if ($_POST['aa'] == 2) {
echo "2です。";
} else {
echo "数値以外はダメ。";
}
とするか、どちらがいいでしょうか?同じですかね?
0607nobodyさん
2006/11/01(水) 15:22:36ID:???0609nobodyさん
2006/11/01(水) 15:56:40ID:???$data = array(1 => '1です。', 2 => '2です。');
みたいな配列用意しとけば、許容される数値かどうかの判定はif一発で済むし、後々DB導入したとしても変更が楽かも。
0610nobodyさん
2006/11/01(水) 16:09:45ID:???echo "表";
と表示させようとするとエラーが出てしまいます。
stripslashesを使用しても無理でした。
どのようにしたらちゃんと表示されるのでしょうか?
0612610
2006/11/01(水) 16:17:50ID:???<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
<meta http-equiv="Content-Style-Type" content="text/css">
<title>あいうえお</title>
</head>
<body>
あいうえお
</body>
</html>
EUC-JPを使おうと思い、このように記述したのですがなぜかIE6で文字化けしてしまいます。
Shift_JISなら大丈夫でした。カタカナで記述しても大丈夫みたいです。
文字化け→「あa・ム・」
なんでだろう。。。。
0616612
2006/11/01(水) 16:32:15ID:???ためしにEUC-JPのページをお気に入りに入れてブラウザの起動と同時に表示させたら、大丈夫でした。
やはりShift_JISを使うしかないのか。。。
0617nobodyさん
2006/11/01(水) 16:43:54ID:???ソースをSJISで書くにはマルチバイト対応でコンパイルしたPHPで
mbstring.script_encodingをSJISに設定しないといかんのでは。
>>616
ブラウザの文字エンコード設定は自動判別になってる状態?
PHPのmbstring.output_encoding辺りはどういう設定になってるの?
0618612
2006/11/01(水) 16:52:51ID:???お騒がせしました。ブラウザの文字コードは大丈夫でした。
html(php)ファイルを保存するときに保存形式がEUC-JPでなければいけない所がSJISになっていました。
ちゃんとEUC-JPで表示することができました。
0619nobodyさん
2006/11/01(水) 17:01:19ID:nyPZj6d6ファイルをアップロードするフォームを含むHTMLファイルがサーバAにあり、
それを使ってアップロードしたファイルをサーバBに保存することは可能ですか?
0622621
2006/11/01(水) 17:06:47ID:???0625nobodyさん
2006/11/01(水) 17:25:11ID:???name属性で指定した文字はPOST送信されないんでしょうか?
(_xと_yの座標は渡されますが)
0627nobodyさん
2006/11/01(水) 17:37:17ID:uM8NHcM0filesize("http://〜〜");だとエラーが返されます。
どうすればよいのでしょうか。
0629619
2006/11/01(水) 18:20:37ID:nyPZj6d6サーバAで文字列をMysqlのテーブルに書き込み、
サーバBにファイルを保存、
したいんです。
0630nobodyさん
2006/11/01(水) 18:38:33ID:???別サーバ側にfilesize返すスクリプトを書いてHTTP_Requestで叩け
>>628
そういう仕様だよWWWの
>>629
サーバAのスクリプト内からサーバBへHTTP_Requestで叩いてアップロードしろ
0631nobodyさん
2006/11/01(水) 18:40:08ID:uM8NHcM0こちら側から別サーバーは管理できないんです。
とりあえずfile_get_contentとstrlenの組み合わせで現在対処しましたが、
いちいち内容をダウンロードせずに、
サイズだけ図れる方法はないんでしょうか?
0632604
2006/11/01(水) 18:44:19ID:???ありがとうございます。
1か2だけなんでifでもswitchでもいいんですが、DBを導入するほどのものでもないです。
ただ、>>609のような配列を使ってやるってのは「ああ、成る程」って感じです。
自分にはない考え方って面白いand勉強になりますね。
0635nobodyさん
2006/11/01(水) 22:49:29ID:Z3WwdpXHディレクトリの更新時刻は、子ファイルの更新時刻に同期するけど、
それより下の階層のファイルの影響は受けないようですね。
対象ディレクトリの配下のすべてのファイルから最終更新時刻を一発で
取得するコマンドとかないでしょうか。
0636nobodyさん
2006/11/01(水) 23:12:32ID:???取得する方法はありますか?
社内LAN内にWebサーバがある環境です。
0638nobodyさん
2006/11/01(水) 23:52:59ID:osJKunqT636です。
0640636
2006/11/02(木) 00:14:41ID:PZcPsbvTありがとうございました。
0642nobodyさん
2006/11/02(木) 01:39:23ID:RYi0SuH10643nobodyさん
2006/11/02(木) 01:44:52ID:???0644nobodyさん
2006/11/02(木) 01:51:18ID:RYi0SuH1早速の回答ありがとうございます。そうっすか。ありがちなんでどっかに落ちてるかと思ったので。
ちなみに、Aタグ〜/Aタグを取得しようとしたら、正規表現の後方参照で取得するのが一般的な手法ですかね?
XMLパーサーでちまちまやりますか?
0646nobodyさん
2006/11/02(木) 04:39:55ID:ObNxAJOw末尾にhenko.phpが追加される(元のアドレスがhttp://localhost/ex/だとすると、
http://localhost/ex/henko.php)のですが、画面に表示される内容は
http://localhost/ex/という状態が起きています。
<form method="POST" action="./henko.php">
<input type="hidden" name="ki" value="<?php $row['ki']; ?>" >
<input type="submit" value="変更" >
</form>
どのようにしたらhttp://localhost/henko.phpにジャンプするようになるでしょうか?
0647nobodyさん
2006/11/02(木) 05:04:38ID:???PHP以前にHTMLのリンクレベルの質問だと思うけど
action="./henko.php"をaction="/henko.php"にすればいいかと。
0651nobodyさん
2006/11/02(木) 06:03:50ID:???>PHP以前にHTMLのリンクレベルの質問だと思うけど
>PHP以前にHTMLのリンクレベルの質問だと思うけど
>PHP以前にHTMLのリンクレベルの質問だと思うけど
>PHP以前にHTMLのリンクレベルの質問だと思うけど
>PHP以前にHTMLのリンクレベルの質問だと思うけど
0652nobodyさん
2006/11/02(木) 06:31:44ID:???../henko.php
わかったらHTMLの勉強からやり直すんだな。
0653nobodyさん
2006/11/02(木) 06:32:33ID:???0654nobodyさん
2006/11/02(木) 07:18:26ID:???おまいら・・・
> action="./henko.php"をaction="/henko.php"にすればいいかと。
は前者が ./ (ドット1個) で後者は / (スラッシュのみ。つまりルート参照)ですよ。
0655nobodyさん
2006/11/02(木) 07:18:32ID:???action="/henko.php" document rootからの絶対パス http://example.com/henko.phpになる
action="./henko.php" カレントディレクトリ
action="./henko.php" カレントディレクトリの1個↑のディレクトリ
0656nobodyさん
2006/11/02(木) 07:19:49ID:???ドットを付け忘れた
0657647
2006/11/02(木) 07:23:42ID:???すまん。「リンクレベル」ってそんな真面目な階層とかの意味じゃなくて
「HTMLのリンクを書くことと同レベルの質問」の意味だったんだ。
0659nobodyさん
2006/11/02(木) 08:13:16ID:???0661nobodyさん
2006/11/02(木) 09:00:21ID:???0662nobodyさん
2006/11/02(木) 09:14:29ID:???0663<>てすと>
2006/11/02(木) 09:50:21ID:v/7GXWbN0664619
2006/11/02(木) 09:57:30ID:D0jPHdjxそうか、HTTP_Requestを使うという方法があるんですね。
試してみます。
0666nobodyさん
2006/11/02(木) 10:30:51ID:???0667nobodyさん
2006/11/02(木) 10:35:29ID:???つまり、setcookieしたその直後に echo $_COOKIE['var']
で呼び出せないですよね?
これはなぜなんでしょうか。
これが非常に不便なんですが、良い方法ないでしょうか?
今まであれもこれもSESSIONに入れてたんですが、
COOKIE値とSESSION値を明確に線引きしようと
cokkieに使い変えたらこの問題が出てしまい、困っています。
0670nobodyさん
2006/11/02(木) 11:09:36ID:???0671667
2006/11/02(木) 11:23:14ID:???クラス内でsetcookieして、
別のクラスで$_COOKIEしても
上手く取得できません。
ほわぃ?
0672nobodyさん
2006/11/02(木) 11:36:51ID:???$_COOKIEはクライアントからのリクエストヘッダ。
setcookieはサーバからのレスポンスヘッダ(に書けという命令)。
全く別ものだから。
0674nobodyさん
2006/11/02(木) 11:56:02ID:???http://jp.php.net/manual/ja/
http://php.benscom.com/manual/ja/
0675nobodyさん
2006/11/02(木) 12:17:53ID:???$_COOKIEに入るクッキーの取得はプログラムの実行前で、
setcookie()で行うクッキーのセットはプログラムの実行後という
順番の逆転があるから。($_COOKIEとsetcookieは連動しない)
setcookie()直後に$_COOKIEで扱いたいのであれば
自分で $_COOKIE['var'] = 'foo'; ってセットしちゃうしかないと思う。
ただしそれをやると、実際にはブラウザが保存してくれてないのに
プログラムで値を使ってしまってトラブルになってしまう場合がある。
(ブラウザはクッキー有効の設定でも、部分的に却下することができる)
セッションはクッキーと違って「一部を相手が受け取らなかった」という
心配をする必要がないので、$_SESSIONを使ってシームレスに扱える。
0676646
2006/11/02(木) 12:28:33ID:ObNxAJOw質問間違えていて申し訳ないです、
正しくは、最後の1文が、
「どのようにしたらhttp://localhost/ex/henko.phpにジャンプするようになるでしょうか?」
です。すいません。
0678646
2006/11/02(木) 12:45:36ID:ObNxAJOw0679nobodyさん
2006/11/02(木) 13:53:44ID:???おいしいクッキーの作り方と食べ方
1. クライアントからのリクエスト
http header の cookie: でクッキー送信
2. Apache が環境変数 HTTP_COOKIE に代入
3. PHPが$_COOKIEへ代入
cookieがセットされてなければ当然空
4. PHPでsetcookie();
http header の Set-cookie:として送られるのでスクリプト終了するまで送られない
↑
今ここ 当然$_COOKIEは空
5. PHPの実行が終了
6. ApacheがSet-cookieヘッダで送信
7. クライアントのブラウザが処理
0680nobodyさん
2006/11/02(木) 14:51:27ID:???ARRAY {
[0] = NULL
[1] = NULL
[2] = NULL
[3] = hoge
}
の時、[3]のhoge以外は取り除くもしくは[3]のみ別配列に入れる事は可能でしょうか?
この場合、hogeは[3]にあるとは限らないので([1]かもしれないし、[10]かもしれません)
やり方に困っております
0681nobodyさん
2006/11/02(木) 14:56:32ID:???$newarray = preg_grep('/./', $array);
ただしこのやり方だと '' と NULL は区別できないけど。
0682nobodyさん
2006/11/02(木) 14:58:11ID:???やってみたのですがうまく動きません…
0683nobodyさん
2006/11/02(木) 15:04:36ID:???> foreachの中にforeachってできないんですか??
できる。
> やってみたのですがうまく動きません…
どう書いたのかちょっと見せてみ。
0684nobodyさん
2006/11/02(木) 15:07:14ID:???foreach($boo as $boo_arr) {
if($data_arr == $boo_arr) {
$log[] = $data_arr;
}
}
}
0686nobodyさん
2006/11/02(木) 15:27:55ID:???二回目のforeachのifの中の最後にbreak;しないと同じ値のデータが大量にできちゃうんじゃまいか?
どういう結果を求めてるか知らんけどな。
0687nobodyさん
2006/11/02(木) 15:28:32ID:???期待どおりの動きをしてくれません。。。
$dataに(1,2,3,4,5...12)
$booに(1,2,5,12)
が入っていた時
$logに(1,2,5,12)の配列を入れたいのですがなぜか12が入っていなかったりします。
あと684で間違いがありました。
正しくは
if($data_arr[num] == $boo_arr) {
$log[] = $data_arr;
}
です
0689nobodyさん
2006/11/02(木) 15:34:05ID:???そのnumってどっから出てきたの。
$data = array(1,2,3,4,5,6,7,8,9,10,11,12);
$boo = array(1,2,5,12);
foreach($data as $data_arr) {
foreach($boo as $boo_arr) {
if($data_arr == $boo_arr) {
$log[] = $data_arr;
}
}
}
var_dump($log);
結果:
array(4) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(5)
[3]=>
int(12)
}
0690687
2006/11/02(木) 15:39:12ID:???$dataは
ARRAY{
[0] ARRAY{
[num] = 1
[name]= satou
}
[1] ARRAY{.....}
と多重連想配列(?)になっています
0691nobodyさん
2006/11/02(木) 15:46:16ID:???実際にうまくいかないデータを出さないと多分分からん。
プログラム側じゃなくデータ側に問題あるんじゃないの?
0692nobodyさん
2006/11/02(木) 15:49:46ID:???> 正しくは
> if($data_arr[num] == $boo_arr) {
だったら多分
> $log[] = $data_arr;
は
$log[] = $data_arr['num'];
だろう
0693nobodyさん
2006/11/02(木) 16:00:42ID:???<?php
$updir = "./upload/";
$filename = $_FILES['upfile']['name'];
if (move_uploaded_file($_FILES['upfile']['tmp_name'], $updir.$filename) == FALSE){
print("Upload failed...");
print($_FILES['upfile']['error']);
}else {
print("<b>" . $filename . "</b> uploaded!");
}
?>
</body>
</html>
-------------------------------------------------
基礎PHPという本でアップローダー作ってるんですが、
上記のプログラムだと画像しかアップロードできず、
動画はアップロード出来ません。どこが問題でしょうか?
0694nobodyさん
2006/11/02(木) 16:04:08ID:???プログラム的には問題は見受けられない。
1.ファイルサイズがアップロード可能な上限を超えている
2.確認方法が間違っている
のどっちかじゃない?
0695nobodyさん
2006/11/02(木) 16:15:12ID:???本のサンプルファイルをそのまま弄らずに使って確認してみたんですが、
画像だけアップロード指定先のフォルダにコピーされ、
動画だとアップロードのボタンを押したあと、永遠に何か処理しているような
感じでメーターだけ動くんですが、アップロード完了の画面が出たあと、
アップロード指定先のフォルダには何にも表示されないんです。
(指定先は画像と同じです。)
0698nobodyさん
2006/11/02(木) 16:44:42ID:???その設定、弄ってみます。
0699nobodyさん
2006/11/02(木) 17:51:17ID:???ついでに、post_max_size =も2Mから100Mにして、Apacheを再起動させてみたのですが、
-----------------
file uploader
Upload failed...1
------------------
のまま変化しません。4MBほどの軽い動画をいくつかやってみたんですが。
(先ほどメーターだけ動くと書きましたが勘違いで、何も表示されませんでした。)
画像などでは
-----------------
file uploader
abc.jpg uploaded!
-----------------
だと表示されて成功するんです。orz
0700nobodyさん
2006/11/02(木) 17:59:59ID:???php.iniちゃんと読み込まれてるか?phpinfoとかで確認した?
0701nobodyさん
2006/11/02(木) 18:01:14ID:???memory_limit > post_max_size > upload_max_filesize
それぞれの設定の意味はマニュアルを読んでもらうとして、memory_limitはどうなってる?
0702nobodyさん
2006/11/02(木) 18:12:25ID:???post_max_size 8M 8M
upload_max_filesize 2M 2M
のままでした。
>>701
memory_limitは8MBでしたので、
今100Mにして再起動したんですが、症状変わりませんでした。
phpinfoで表示されている通り
「Configuration File (php.ini) Path C:\WINDOWS」にあるphp.iniなんですが、
なぜ、反映されてないんでしょうか?
0703nobodyさん
2006/11/02(木) 18:25:37ID:???ってやばいですか?
できればデストロイせず、初期化したいのですが…
0704nobodyさん
2006/11/02(木) 19:26:28ID:y5JIMR69FTPソフトでWindowsにDLして解凍するとアイコンがおかしくなってます。
htmファイルなんてアイコンが無いです・・・。
普通に開く事は出来るのですが何か気持ち悪くて・・( ´Д`)
どなたか原因・対処方法をご存知の方、よろしくお願い致します。
0705nobodyさん
2006/11/02(木) 20:47:40ID:???0706nobodyさん
2006/11/02(木) 20:50:18ID:???0707nobodyさん
2006/11/02(木) 20:56:42ID:py7iJRLuConfiguration File (php.ini) Path のディレクトリが合ってるか確認、
そしてapacheの再起動、
それでも反映されないバグっぽいです。orz
0708nobodyさん
2006/11/02(木) 21:18:00ID:???おかしいとすぐバグとかいう人は、向いてないよ。
0709nobodyさん
2006/11/02(木) 21:22:13ID:py7iJRLuもうどうしようも・・・^^;
「php.ini 反映」でググっても、同じ症状の人、いっぱいいますし。
0710nobodyさん
2006/11/02(木) 21:45:58ID:???0716nobodyさん
2006/11/02(木) 22:59:07ID:???はい、次の質問どうぞ
0717nobodyさん
2006/11/02(木) 23:17:55ID:???1行1セルの形で入れたいと思ってます
4行ずつ処理していけばいいと思うのですがどう書けばいいか分かりません
エスパーたんお願いします
0720nobodyさん
2006/11/02(木) 23:51:12ID:???0722nobodyさん
2006/11/03(金) 00:06:53ID:???http://pc8.2ch.net/test/read.cgi/php/1159979905/809-811
> 811 名前:nobodyさん[sage] 投稿日:2006/10/22(日) 05:16:39 ID:???
> 何列目で折り返すのかが決まっているのなら
> 余りの数で折り返すのが良いと思います。
>
> 例の場合なら3列なのでレコード数を3で割って余りが0のときに</tr><tr>を入れる。
> あとは例外処理だけ
0724nobodyさん
2006/11/03(金) 01:34:47ID:ttso8WIJ同一上のディレクトリですとうまくいくのですが、
階層の違うディレクトリのファイル名が取得できません。
あるディレクトリ上にfileディレクトリとindex.phpがあります。
index.phpにfileディレクトリに保存されたファイル名を取得して一覧表示させたいと思います。
どなたがアドバイスお願いいたします。
PHPは5.1.6と4.4.4の両者で確認しております。
#index.phpの中身
$dir = opendir("./file/");//
#$dir = opendir("./");//←これは正常に動きました。
//readdirでファイル名を取得する正しい書き方
while(false !== ($file = readdir($dir))) {
if(is_file("./$file")) {
echo "$file<br>\n";
}
}
/* の間違った書き方
while(false !== ($file = readdir($dir))) {
if(is_file("./$file")) {
echo "$file<br>\n";
}
}
*/
//ディレクトリを閉じる
closedir($dir);
0725724
2006/11/03(金) 01:37:46ID:???#index.phpの中身
$dir = opendir("./file/");//
#$dir = opendir("./");//←これは正常に動きました。
while(false !== ($file = readdir($dir))) {
if(is_file("./$file")) {
echo "$file<br>\n";
}
0726nobodyさん
2006/11/03(金) 01:39:33ID:???たいへん恐縮ですがご教授お願いいたします。
#index.phpの中身
$dir = opendir("./file/");//
#$dir = opendir("./");//←これは正常に動きました。
while(false !== ($file = readdir($dir))) {
if(is_file("./$file")) {
echo "$file<br>\n";
}
}
0727nobodyさん
2006/11/03(金) 02:11:17ID:???> 階層の違うディレクトリのファイル名が取得できません。
取得はできてると思うんだがis_file()でこけてるんだろう。
(readdir()で得られるファイル名はディレクトリを含んでいないため
違うディレクトリならディレクトリ名を連結しないと該当ファイルが見つからない)
こういった原因を切り分けるため、
1.途中でデバッグ出力を入れる
2.余計な機能を省きシンプルなもので確認する
というデバッグ手法を覚えた方がいい。
0728726
2006/11/03(金) 02:39:50ID:???よくわかりませんが、opendirに変数を格納したら動きません。
直接opendir("./file")と書いてやったら動きました。
なんででしょう?
とりあえず事故解決しました。
0729nobodyさん
2006/11/03(金) 03:10:22ID:???0730nobodyさん
2006/11/03(金) 03:45:28ID:???> 直接opendir("./file")と書いてやったら動きました。
意味が分からんのだが、それは>>726の
> $dir = opendir("./file/");//
と何か違うのか?
0731nobodyさん
2006/11/03(金) 08:38:09ID:DVjQnElN見かけますが儲かってますか?
0732nobodyさん
2006/11/03(金) 08:55:09ID:???0733nobodyさん
2006/11/03(金) 08:58:55ID:???朝のコミュニティーションな会話は置いといて・・・
ソースに
function 関数(){}
で定義する前に
関数();
を記述してもいいのでしょうか?
はやり定義した後に記述するものなんでしょうか?
一応、どちらも動くことは動くのですが正しい記述としてはどちらが
いいのか困惑しております。
アドバイスお願いいたします。
0734nobodyさん
2006/11/03(金) 09:02:01ID:8kaP0u+90736nobodyさん
2006/11/03(金) 09:09:48ID:???定義を後ろに書くことにしました。
自分はまだまだ勉強不足ですね。
>>735さんみたいな回答者になりたいです。
0737nobodyさん
2006/11/03(金) 09:11:33ID:???0738nobodyさん
2006/11/03(金) 09:24:44ID:???0739nobodyさん
2006/11/03(金) 09:48:25ID:???Fatal error: Cannot redeclare dir()
とういエラーがでたのですが、これは何を意味しているのでしょうか?
また、こういうエラーの一覧表はマニュアルに載ってないのですが
どこかに参考となるサイトはございませんか?
0740nobodyさん
2006/11/03(金) 10:02:23ID:???0741nobodyさん
2006/11/03(金) 10:07:49ID:???多分こんなエラーだろう
Fatal error: Cannot redeclare dir() (previously declared in hoge.php:10) in hage.php on line 10
致命的なエラー:hage.phpの10行目でdir()が二重に定義されました。
dir()はhoge.phpの10行目で既に定義されています。
何がいけなかったのかはエラーにちゃんと書いてあるし、行数まで表示されてる。
>どこかに参考となるサイトは
エラー文でググれば解決方法が見付かると思われ
0742739
2006/11/03(金) 10:20:40ID:8kaP0u+9Fatal error: Cannot redeclare dir() in 絶対パスon line 105
dir()
function dir(){
}←この行でエラーがでてしまいます。
ためしに}を改行して下にずらしても
}のところでエラーになります
dir()は二重に定義しておりません。
dirをdiraと名前を変えて定義してやると問題なく動きます。
dir()とやるとダメなので何か予約語とかなんやらのPHPの決まりなのでしょうか?
0743739
2006/11/03(金) 10:31:40ID:???環境によるものなのでしょうか。
<?php
dir();
function dir(){
echo "test";
}
?>
0744nobodyさん
2006/11/03(金) 10:36:00ID:???http://php.new21.com/manual/ja/class.dir.php
0745nobodyさん
2006/11/03(金) 10:36:07ID:???dir()って関数名は予約されてるのでユーザが定義できない。
ttp://www.php.net/manual/ja/index.functions.php <関数一覧にdir()が存在してる
0746743
2006/11/03(金) 10:44:49ID:???ありがとうございます。
私事でありますが・・
「素人だけどバグみつけちまったぜ」
「おれって天才?」
って喜んでました。修行不足ですね・・・失礼いたしました。
il||li_| ̄|○ il||li
0747nobodyさん
2006/11/03(金) 10:45:15ID:uip4CKwg0748nobodyさん
2006/11/03(金) 10:49:45ID:???0749nobodyさん
2006/11/03(金) 10:52:38ID:???referer : 倉 -> 鯖
0750nobodyさん
2006/11/03(金) 11:00:13ID:uip4CKwgheader("Referer: http://example.com");
header("Location: 環境変数一覧が出るようなサイト");
これで駄目なんだよね。試しに出力の順序変えても駄目だった。
>>749
ごめん、くわしくplz
0751nobodyさん
2006/11/03(金) 11:02:18ID:???0752747
2006/11/03(金) 11:04:31ID:uip4CKwgあ、わかった。
てことはやっぱやろうとしてることは出来ないのか。ちぇ。
0753nobodyさん
2006/11/03(金) 11:09:27ID:???私が見つけれるような単純なバグ(の様な物は)既に誰かが発見し修正している筈である。
よって、これは私のミスでありバグではない。
とまぁ、こんな事思いながらやってるなぁ・・
>>751
スレの上で出てたけど、これでPHP5.xがApache2.3.xで使えるように?
(その話題が気になったからググってみたけど、Apache2.0.x→Apache2.2.xはAPIが変更されてるとか何とか)
0754nobodyさん
2006/11/03(金) 11:14:40ID:???5.1.7でphp.iniが見付けられないのはバグだそうです。
修正されているか解りませんが、5.2.0を入れる事をお勧めします。
0755nobodyさん
2006/11/03(金) 11:43:03ID:???0756nobodyさん
2006/11/03(金) 11:43:05ID:???0757nobodyさん
2006/11/03(金) 11:46:43ID:???0759nobodyさん
2006/11/03(金) 12:05:48ID:???0760nobodyさん
2006/11/03(金) 12:29:29ID:8kaP0u+9[c:\]-[public_html]--index.php
|
|-[local]--bbs.log
Cドライブ直下にドキュメントルートpublic_htmlを置きindex.phpを作成しました。
index.phpからドキュメントルート外のbbs.logをfopenで開きたいのですが
$file = file("c:/local/bbs.log","r");
と記述してもエラーがでて取得できません。
パスの書き方はc:/local/bbs.logではなくほかの書き方がございましたら
ご教授お願いいたします。
0761761
2006/11/03(金) 12:40:11ID:???↑のパスの書き方で問題なく動きます。
0762nobodyさん
2006/11/03(金) 12:57:15ID:???function dir_list($dir) {
$dir_list = (ディレクトリ取得);
foreach ($dir_list as $list) {
dir_list($list);
}
}
こういった再帰処理を無名関数で
$dir_list = create_function ('$dir', '$dir_list = (ディレクトリ取得);
foreach ($dir_list as $list) {
$dir_list($list);
}
}');
のように書きたいのですが$dir_listがundefinedというエラーが出てしまいます。
functionを作らずに無名関数のような感じで実現することは出来ませんでしょうか。
0763nobodyさん
2006/11/03(金) 13:02:41ID:???> foreach ($dir_list as $list) {
で使ってる配列と
> $dir_list($list);
生成関数とで同じ変数名がバッティングしてるよ。
0764nobodyさん
2006/11/03(金) 13:06:01ID:???あとさらに付け加えるなら、
$dir_list = create_function()
で作られる$dir_listはグローバル変数な。
create_function ('$dir', '$dir_list = (ディレクトリ取得);
foreach ($dir_list as $list) {
$dir_list($list);
}
}');
とcreate_function内で使われてる$dir_listは関数内のローカル変数な。
そんだけわかりゃ何とかなるんでない?
基本的にはfunction定義で何とかできることはcreate_functionでも何とかできる。
0765nobodyさん
2006/11/03(金) 13:10:17ID:???0766nobodyさん
2006/11/03(金) 13:31:45ID:8kaP0u+9最近perlもやっとかないと時代についていけない気がして・・・
0767nobodyさん
2006/11/03(金) 13:56:23ID:???0768nobodyさん
2006/11/03(金) 14:09:24ID:???セッションID毎にパスワードを設定するのか?
0769nobodyさん
2006/11/03(金) 14:11:06ID:???そんな状態で始めたとしても、PHPもPerl使いこなせず意味がないと思われ
どっちか1つを真面目に勉強するんだ。
>>767
セッションの使い方を聞いているのか?
マニュアル読んで分からない事だけもっかい聞きに来い
0770nobodyさん
2006/11/03(金) 14:18:42ID:???$dir_func = create_function ('$dir', '$dir_list = (ディレクトリ取得);
global $dir_func;
foreach ($dir_list as $list) {
$dir_func($list);
}
}');
こんな感じで期待通りの動作をすることが出来ました。
>>766
WEB用途でPerlに出来てPHPに出来ないこと、またはその逆ってあまり無いと思うけど
tie、thread、OOP関連(多重継承、カプセル化等)で差異を感じることはあったかな。
Perlは古臭いっすよw
0771nobodyさん
2006/11/03(金) 14:29:30ID:9FoSTEPmAのページで認証を通さないとBに進めないということをやりたいのですが、
特に細工しないと、BのURLを直接打ち込むとBが見えてしまいますよね?
今まではSwitchで分けてたのですが、
ソースがごちゃごちゃになるので分離したいと考えています。
どのような処理をしたら、Aからの認証のみでBに行けるようになるのでしょうか?
ヒントだけでもいただけたらありがたいです。
宜しくお願いします。
0772nobodyさん
2006/11/03(金) 14:30:53ID:???643 名前:nobodyさん [] 投稿日:2006/11/03(金) 13:21:11 ID:QUVcMJYR
そもそも、セッションIDがばれたら何が怖いんですか?
どこをどうされてログインされるんですか?
こないだセッションIDというヤツを他人に知られたんですけど、
何をされるんですか?
0773nobodyさん
2006/11/03(金) 15:04:55ID:ObEKEkGi最新のApache2.0系を入れたら、1発で認識してくれました。どうも。
0776nobodyさん
2006/11/03(金) 16:19:03ID:???Aでパス発行すれば?
0777nobodyさん
2006/11/03(金) 16:32:21ID:???0778nobodyさん
2006/11/03(金) 16:42:53ID:8kaP0u+9あまりわけすぎると実行速度の低下や転送量が太ったりしますか?
0779nobodyさん
2006/11/03(金) 16:50:24ID:???誤差の範囲内で実行速度が僅かに低下する。
でも、メンテナンス性の方が遥かに大事。
読み易くメンテナンスしやすいように適度に分けるのは良い心がけだ。
0780nobodyさん
2006/11/03(金) 17:03:01ID:???Windows?
それならPHP5.1がApache2..2に対応してないだけでバグでもなんでもない
どうせなら最新のPHP5.2でも入れて試してみたら
0781nobodyさん
2006/11/03(金) 17:24:05ID:???最近Perl!?
JavaやRubyなら分かるが、今更Perlやってどうすんの。
と、元Perl使いが反応してみるw
PerlはPHPと違って元々はWEB無関係の汎用スクリプト言語だから
できることは確かに色々あるし性能もいいよ。
でも時代についていくために今Perlの勉強ってありえないぞ??
逆に何がしたくてPerl勉強すんのさ、と俺が問いたいw
0782nobodyさん
2006/11/03(金) 17:36:49ID:???が、文法が継ぎ足しで汚い。
0783nobodyさん
2006/11/03(金) 17:37:43ID:???他人が読めないだけだ
0784nobodyさん
2006/11/03(金) 17:52:09ID:???オブジェクト指向部分とか、基本的に変な文法。
0785nobodyさん
2006/11/03(金) 18:22:50ID:???実装手法の面で言えばうまい!って感じでよく考えられてるんだけど、
それはあくまでPerl側から見た話であって、OOPの側から見ると
何だかものすごく妙ちくりんな文法とお約束で成り立ってるんだよなw
0786nobodyさん
2006/11/03(金) 18:26:40ID:???0787nobodyさん
2006/11/03(金) 18:36:27ID:???ただその方向性が他の言語と違いすぎてるだけ。
0788nobodyさん
2006/11/03(金) 18:50:45ID:???0789nobodyさん
2006/11/03(金) 18:56:46ID:???0790nobodyさん
2006/11/03(金) 19:09:16ID:???美しくないか?ってあまり大した例じゃないが。
0791nobodyさん
2006/11/03(金) 19:10:26ID:i9hbdjz40792nobodyさん
2006/11/03(金) 19:15:51ID:???0793nobodyさん
2006/11/03(金) 19:24:21ID:???if (foo()) {
foobar() if bar();
}
ってやられるときんもーってことでしょ?
0794nobodyさん
2006/11/03(金) 19:31:40ID:???行き過ぎた芸術は一般人には理解しがたいものになりがち。そういうことだよ。
大衆芸術の方が多くの人に好まれやすいが美しさには欠ける。
>>790
やっぱ
@data = map {$_->[0]} sort {$x = ($a->[$_] <=> $b->[$_] or $a->[$_] cmp $b->[$_]) and return $x foreach (1 .. $#$a); -1} map {[$_, split /,/]} @data;
この辺りじゃない?
0797nobodyさん
2006/11/03(金) 19:59:00ID:???確かにそこまでいくと芸術性を感じる
読みやすさは微塵も感じないが。
まさに変態的という言葉が完璧にマッチするな。
0798nobodyさん
2006/11/03(金) 20:12:57ID:???まさに無駄な努力
0799nobodyさん
2006/11/03(金) 20:18:00ID:???0800nobodyさん
2006/11/03(金) 20:26:52ID:???使い捨てのプログラムをさっさと書いてしまいたい時にはかなり重宝する
CPANの豊富なモジュール群も捨てがたい
0801nobodyさん
2006/11/03(金) 20:29:23ID:ewaQ0n7K0802nobodyさん
2006/11/03(金) 20:58:22ID:???それあればコピペで出来るってことですか?
0803nobodyさん
2006/11/03(金) 21:20:55ID:ewaQ0n7K色々調べたら、それだ!って感じがしました。
ところが、PEARには標準で入ってないっぽい?もしくはバージョンによる?
4.4なんですが、XMLの下にはParser.phpとRPC.phpしかないんです。
改めてgo-pear.batしたんですが、やっぱり入ってないです。
これはどうやってゲットすればいいんでしょうか?
0804nobodyさん
2006/11/03(金) 21:30:55ID:???pear install XML_Serializer
てかPEARのマニュアル嫁
http://pear.php.net/manual/ja/
0805nobodyさん
2006/11/03(金) 22:58:33ID:ewaQ0n7Kうっ・・・ありがとうございます。ところが、
No release with state equal to: 'stable' found for 'XML_Serializer'
と表示されてます・・・
ううぅ・・・どうすればいいんでしょうか?
stableって安定版のことですよね?不安定版でも構わんのですが・・・
0806nobodyさん
2006/11/03(金) 23:06:10ID:???<[;゚Д゚]> ア゙ー!? PEARのマニュアルにstableじゃないものをどうインストールするか書いてあんだろ
[_]
< >
0807nobodyさん
2006/11/03(金) 23:14:32ID:aY7QHi860809nobodyさん
2006/11/04(土) 00:39:40ID:RV2l/KERうぅっ・・・すいません。書いてありました。面目ないです。
>>808
くぅーっ!ありがとうございます。お蔭様でインストールできました。Windowsの方は・・・
インストールすると、XML_Utilも必要と言われたのでインストールしました。
Windowsの方は動作も確認できたので、ヤター!!って思って、Linuxにもインストールしようと
したのですが、XML_UtilとXML_Parserが必要といわれたので、両方インストールしました。
ところが、、、XML_Parserはalready installなのでSkippingと表示されてるのに、XML_Serializer
をインストールしようとすると、XML_Parserがrequiresだと言われます。。。
最後の、最後に教えて下さい。マニュアル調べました(・・・多分見落としてないと思います)
0810803,805
2006/11/04(土) 00:44:01ID:RV2l/KER0811nobodyさん
2006/11/04(土) 01:30:49ID:AU0Zf4A1http://pc8.2ch.net/test/read.cgi/php/1161733546/
だと
http://pc8.2ch.net
となってほしいです
今は自分が知っている関数の範囲内で
$s = split("/", $url);
$host = $s[0].'//'.$s[2];
という風にしています。。
よろしくお願いいたします
0813nobodyさん
2006/11/04(土) 01:42:04ID:???0814nobodyさん
2006/11/04(土) 01:58:29ID:???タグを自動で挿入してくれるようなライブラリなどありますでしょうか?
もしあったら教えてください。
お願いします。
0815nobodyさん
2006/11/04(土) 02:50:44ID:???0816nobodyさん
2006/11/04(土) 03:17:45ID:???0817nobodyさん
2006/11/04(土) 03:28:36ID:???0818803,805
2006/11/04(土) 04:02:04ID:RV2l/KER自己レスです。
XML_Parserをforceインストールしたらでけました。色々教えてくれてどうもありがとうでした!
0820nobodyさん
2006/11/04(土) 04:58:30ID:???0821nobodyさん
2006/11/04(土) 06:56:58ID:+mcy38xB[home]の下に[public_html](ドキュメントルート)の下に[www]ディレクトリ
[home]の下に[local](ドキュメントルート外)の下に[log]
wwwディレクトリにindex.phpがあり、
このファイルからlogディレクトリを指定したいのですが
間違っている指定の仕方があればご指摘ください。
1. ../../local/log
2. ../../local/log/
3. home/local/log
4. home/local/log/
5. /home/local/log
6. /home/local/log/
0822nobodyさん
2006/11/04(土) 07:07:06ID:???0823nobodyさん
2006/11/04(土) 07:15:44ID:???なんで/homeの下にlocalやpublic_htmlを置いてるのか知らんが
0824nobodyさん
2006/11/04(土) 07:16:13ID:???正解は1,2,5,6でした。
0826nobodyさん
2006/11/04(土) 07:24:38ID:+mcy38xB「変数で指定したディレクトリ名」で処理するとWarningエラーがでるのですが
@で回避するのとディレクトリ名をチェックするのはどちらが妥当でしょうか?
0828nobodyさん
2006/11/04(土) 08:00:06ID:???>ご存知のとおり、define() は非常に遅いです。
遅いんですか?
0829nobodyさん
2006/11/04(土) 09:27:45ID:???クライアントの依頼で受け皿を変更することなくファイルを送る必要がありまして、
通常の投稿フォームから投稿するのと同様にサーバ内のファイルを送らなければならなくなりました。
他のPOSTデータは普通に送れるのですがファイルはググってみたのですが的確なものがヒットしませんでした。
ご存知の方いらっしゃいましたらよろしくお願いします。
環境:共にFedoraCore4 PHP-5.1.4
0830nobodyさん
2006/11/04(土) 09:35:55ID:???それではよろしくお願いいたします。
0832nobodyさん
2006/11/04(土) 10:03:37ID:???こいつのクールな使い方を教えてくれ
0833nobodyさん
2006/11/04(土) 10:04:36ID:+mcy38xB</body></html>までソースが読まないんですけど、
die()の中に</body></html>書いておくものでしょうか?
それとも処理が停止したらhtmlの文法なんて気にすることでもないのでしょうか?
0834nobodyさん
2006/11/04(土) 10:18:38ID:???$cool = "E_RECOVERABLE_ERROR ";
if (isset($cool) == "cool") {
echo "E_RECOVERABLE_ERROR はクールを使ってます";
}else{
echo "クールと勘違いしてます";
}
exit;
0835nobodyさん
2006/11/04(土) 10:30:11ID:???そうできたら楽なのですが、自分でちゃんと作って提出するのが条件とのことです。
こんな感じでヘッダー叩いて見たのですがうまく上がりませんorz
POST /test/upload.php HTTP/1.0
Host: hoge.hoge
Content-Type: multipart/form-data; boundary=test
Connection: close
Content-Length: 8
--test
Content-Disposition: form-data; name="test"; filename="test.txt"
Content-Type: text/plain
testtest
--test
0838nobodyさん
2006/11/04(土) 11:08:41ID:???0839nobodyさん
2006/11/04(土) 11:10:18ID:+mcy38xBlinux上のサーバでないと確認できないこともあるわけで、
開発はwinでやるのは効率がわるいでしょうか?
ぁたしはdreamweaverでデザインとphpの開発しております。
先人のご意見お聞かせください。
0840nobodyさん
2006/11/04(土) 11:10:24ID:???0841nobodyさん
2006/11/04(土) 11:11:43ID:???0842835
2006/11/04(土) 11:12:31ID:???まぁ再来年辺りこういう宿題やってるかもしれんけど(´・ω・)
とりあえず
「Content-Length: 8」が間違ってたようでファイルは送信できました。 と報告迄。
今度は逆にPOSTデータが受信されなくなってしまった罠。
RFC1867にこの辺について言及されてるけどPOSTデータの扱いがよく分からんかった。
0843nobodyさん
2006/11/04(土) 11:23:25ID:???きちんと宿題なんですぅ〜と書け
0844835
2006/11/04(土) 11:23:28ID:???POSTも「--test」で区切る必要があったようです。
結局余りphpと関係ない部位の質問となってしまいました; スレ汚しスミマセン。
0845835
2006/11/04(土) 11:24:48ID:???だから宿題じゃねーーーーーよwwww 普通科の工房なぬんなwwww
ていうかこんな宿題が出たらどれほど楽しいことか。 普通科とかツマラン過ぎるんだけど('A`)
まじ高専とかウラヤマシス。
0846nobodyさん
2006/11/04(土) 11:31:43ID:???まず第一の前提として、PHPのハッシュ(連想配列)というのは処理が遅いです。参照も遅いけど特に格納が。
そしてdefineというのは実態は$GLOBALSとは別のグローバル変数を保持してるに過ぎないということ。
そのため、よくある使い方としてC言語のように数十ものdefineを大量定義してるコードはかなり遅い。
しかもdefineの定義はプログラム先頭で全部まとめて行う人が多いため、このオーバーヘッドはバカにならない。
(グローバル変数を減らすよう努力する人は多いがdefineはむしろ増やしたがる傾向にある)
遅いと言ってもグローバル変数と同レベルで、それ以上には遅くも速くも無いです。
しかしC言語の感覚(Cでのdefineはプリプロセッサなので実行速度に影響せず極めて高速)では激遅と言えるでしょう。
APCのdefine_constantsとload_constansは、これを事前にメモリ展開が容易な構造で保存しておき、
必要時にキャッシュデータを丸ごと読み込んで高速にハッシュへ格納する、という仕組みのもの。
0847839
2006/11/04(土) 11:35:55ID:???192.168.x.xでwinからlinuxのサーバへつながらないです・・
0848nobodyさん
2006/11/04(土) 11:39:46ID:???分けてない。Linux用なら開発もLinux上で行う。
ただ、エディタはWin用のを使いたいので、sambaで
LinuxサーバーにWinクライアントで直接アクセスして
ソースの編集をやってます。
これは別にFTPでやってもいいと思うけど。
0849nobodyさん
2006/11/04(土) 11:57:42ID:???0851nobodyさん
2006/11/04(土) 12:00:50ID:???linux のコマンドを使うような処理とか、一部OSの機能を使うようなものは
あきらめるが、簡単なサイト程度なら、両方で動くようなものをつくる
ただし、環境情報などは各環境で別々に設定ファイルを書いて
それを利用するようにしている
絶対パスが必要なものとか
URLが必要なものとか
0852nobodyさん
2006/11/04(土) 12:01:28ID:???使わないものまで無闇になんでもかんでも定義しない。
ってだけ。コンパイル型の言語じゃない以上、それが結論かと。
0853839
2006/11/04(土) 12:27:42ID:???せっかくだからlinuxに移ろうかと思います。
ご協力ぁりがとうございます
0855nobodyさん
2006/11/04(土) 13:07:49ID:???やっぱgettextのほうが速いのかな。
0856nobodyさん
2006/11/04(土) 13:12:20ID:???クライアントが入力した値をデータベースに書き込む場合、
データを壊さないためにもロックをかけて処理を行うことが無難でしょうか?
0857nobodyさん
2006/11/04(土) 13:15:09ID:???0859nobodyさん
2006/11/04(土) 13:18:09ID:???RDBMSにおけるロックの機能を勘違いしてるように思える。
データ間に不整合が出るケースはロックしないとそりゃダメだし(規模関係ない)、
そうでないならロックなどする必要はない。(これも規模関係ない)
というか、そういう話はデータベース板で聞いた方がいいと思うよ。
0862nobodyさん
2006/11/04(土) 13:46:27ID:UuLfn9RK送信したいと思っています。
下記のスクリプトを作成しましたが、エラーは出ないのですが、XMLの返答メッセージ
が返ってこず、トラックバックしてくれません。
どうすればよいでしょうか?
<?php
$sock = fsockopen("app.f.cocolog-nifty.com", 80, $errno, $errstr, 60);
if (!$sock) die("$errstr ($errno)\n");
$data = "title=".urlencode("test送信");
$data .= "&url=".urlencode("http://www.yahoo.co.jp");
$data .= "&blog_name=".urlencode("PHPからトラバをする");
$data .= "&excerpt=".urlencode("PHPモジュールから送ってます");
$tburl="t/trackback/3950899";
fputs($sock, "POST ".$tburl." HTTP/1.1\r\n");
fputs($sock, "Host: blog.seesaa.jp\r\n");
fputs($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($sock, "Content-length: " . strlen($data) . "\r\n");
fputs($sock, "\r\n");
fputs($sock, "$data\r\n");
$body =" ";
while (!feof($sock))
$body .= fgets($sock, 4096);
fclose($sock);
print "test";
?>
0865nobodyさん
2006/11/04(土) 14:42:37ID:???0866nobodyさん
2006/11/04(土) 14:42:53ID:e0EPAzx7環境:
Redhat ES3
PHP4.3.9
参照渡しのところを省略可能な関数を作りたいのですが、可能なんでしょうか?
一応公式マニュアルの関数の項目には目を通し、ググっても見たのですが・・・。
もしやり方をご存知の方はご教授お願いします。
具体的に、
preg_match(string pattern, string subject [, array &matches [, int flags [, int offset]]] ) のarray &matches,
ftp_alloc(resource ftp_stream, int filesize [, string &result]) のstring &result
ようなことがしたいんです。
よろしくお願いします。
0867nobodyさん
2006/11/04(土) 14:53:14ID:???0869nobodyさん
2006/11/04(土) 14:55:52ID:UuLfn9RK今、トラックバックスパムではないんですが、トラックバックを一度で複数送る
研究をしていて、それで作成したいんです。
フォームだと複数送れません。
>>863
echo してみたら、Bad requestと表示されました。
プログラムが間違っているということですかね?
でしたら、どこが間違っているか教えていただけますでしょうか?
0870nobodyさん
2006/11/04(土) 14:58:15ID:???> fputs($sock, "$data\r\n");
Content-lengthが実際のデータ長より2バイト短い
0871nobodyさん
2006/11/04(土) 14:58:58ID:UuLfn9RK上記のエラーメッセージです。
HTTP/1.1 400 Bad Request Date: Sat, 04 Nov 2006 05:53:46 GMT Server: Apache Content-Length: 226 Connection: close Content-Type: text/html; charset=iso-8859-1
Bad Request
Your browser sent a request that this server could not understand
0874nobodyさん
2006/11/04(土) 15:14:53ID:UuLfn9RK思ったんですけど、このスクリプトでレンタルブログ(ココログ)などにトラックバック
って送れないですよね?
0875nobodyさん
2006/11/04(土) 16:14:05ID:Z4GrE+jA環境の都合で i18n_loc_get_default は使えそうに無いです.
PHP を bamcompile で exe を作っているのですが,
ファイルを出力するときに OS(Windows)が使っている文字コードが分からないと
都合が良くないからです.
どうせ日本でしか使われないから Shift-JIS 決め打ちでいいやっていうわけにもいかないし
0876nobodyさん
2006/11/04(土) 16:47:39ID:???0877nobodyさん
2006/11/04(土) 17:19:53ID:Z4GrE+jAWindows と Linux の両方で見てみましたけど
使えそうなのはありませんでした...
つか CPU 名とか分かるくせに何で文字コードとかわらないんだ...
0878875
2006/11/04(土) 17:23:39ID:Z4GrE+jA0880828
2006/11/04(土) 17:44:26ID:???詳しくわかりやすい解説ありがとうございます!
define()はそんなに使わないので、高速でなくともまあいいのですが、
それよりも連想配列が遅いというのは、あんまりいい気分ではないですね。
連想配列、便利なだけに。
0882nobodyさん
2006/11/04(土) 17:55:22ID:+mcy38xBというURLがあります。このURLの?test部分を
$_GETで受け取りたいのですが、記述がわかりません
普通に$_GETとしても取得できませんし、$_GET[]とやるとエラーがでます。
どなたかアドバイスお願いいたします。
0883nobodyさん
2006/11/04(土) 17:55:33ID:???0884nobodyさん
2006/11/04(土) 17:58:02ID:???$_SERVER['QUERY_STRING']
>>883
まぁ、元々の質問がAPC関連=PHPのパフォーマンスに不満のある人、の場合だし
0885875
2006/11/04(土) 18:05:17ID:Z4GrE+jAスクリプトを変換した EXE にファイルを D&D する程度なんで
ユーザに入力を求めるのは少し不自然かもしれないです.
けどほかに考え付かないので使ってみようかな.
0887nobodyさん
2006/11/04(土) 18:23:47ID:???ファイル受け取ってどうこうするんだったらその中身調べて
キャラクタセットをdetectするのが妥当じゃないのか?
0888nobodyさん
2006/11/04(土) 18:25:40ID:???0889nobodyさん
2006/11/04(土) 18:28:00ID:Z9X2uAOu呼び出せず困っています。なにかヒントがあればお願いします。
WIN XP + Apache 2.0.50 + PHP 4.3.7
[表示用ファイル test.php]
require("session.php");
<!-- セッション部 -->
<?= $session ?>
[session.php]
//セッションが開始されていなければ、フォームを表示
$session = "<form action=" . $thisfile . " method='post'>....."
$thisfile = $_SERVER["SERVER_NAME"] . $_SERVER["PHP_SELF"];
を指定すると <print>文では、localhost//test/test.php と正しく表示されるのですが
アドレスバーの表示は http://localhost//test/localhost//test/test.php となって
しまします。ちなみに
$thisfile = $_SERVER["PHP_SELF"];
だけだと、<print>文表示は //test/test.php アドレスバーは
http://test/test1.php となってともに not found です。
0891nobodyさん
2006/11/04(土) 18:39:21ID:???> を指定すると <print>文では、localhost//test/test.php と正しく表示されるのですが
ホスト名とパスの間が「//」なのは全然正しくないと思う。
> $thisfile = $_SERVER["PHP_SELF"];
> だけだと、<print>文表示は //test/test.php
なんかApacheの動作が変だと思う。再インストールしてダメならバージョン変えてみては?
0892nobodyさん
2006/11/04(土) 18:42:34ID:???> アドレスバーの表示は http://localhost//test/localhost//test/test.php となって
元々の呼び出し方自体がおかしいんじゃないの?
http://localhost/test/test.phpで実行したらちゃんと動かないか?
ちなみに通常は$_SERVER["PHP_SELF"]だけでOK。
$_SERVER["SERVER_NAME"]もつけてフルURLにするなら頭にhttp://も足さなきゃダメ。
0893nobodyさん
2006/11/04(土) 18:42:49ID:Z9X2uAOuありがとうございます。Apache 側の設定の問題でしたかっ!
Apache の設定の方を調べてみます
0894nobodyさん
2006/11/04(土) 18:47:42ID:Z9X2uAOuhttp://localhost/test/test.php で動作します。
http://localhost//test/test.php アドレスバーに打ち込んでも
表示されるので、これでもよいのか?と...(汗)すみません...
0895nobodyさん
2006/11/04(土) 20:42:43ID:???そんなおまえにこれをやろう。使い道は聞くな。
function php_internal_hash_func($key)
{
$hash = 5381;
for ($i = 0; $i < strlen($key); $i++) {
$hash = 0xFFFF & (($hash << 5) + $hash + ord($key{$i}));
}
return $hash;
}
function check_symbols_hash($arr)
{
for ($mask = 8; $mask < count($arr); $mask <<= 1);
$mask--;
$ret = array();
foreach ($arr as $val) {
$ret[php_internal_hash_func($val) & $mask][] = $val;
}
ksort($ret);
return $ret;
}
0896nobodyさん
2006/11/04(土) 20:42:46ID:DqH0rqVhPHP-Manualの例を引用すると・・
<?php
// この例ではHTTPを通してURL上のHTMLソースを取得します。
$lines = file('http://www.yahoo.co.jp');
// 配列をループしてHTMLをHTMLソースとして表示し、行番号もつけます。
foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
?>
これで、htmlのソースが表示できるのですが、file_get_contents()を
使った場合どのように記述すれば良いのかわかりません。
よろしければ、お教え願えませんか?
0897nobodyさん
2006/11/04(土) 21:03:06ID:???foreach ($lines as $line_num => $line) {
echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
0898nobodyさん
2006/11/04(土) 21:35:36ID:DqH0rqVhなるほど。ありがとうございました。
あと、file_get_contents()を使う場合は配列に読み込むわけでは
ないですよね?それで、foreachを使わずにするために、fileでは
なく、file_get_contents()はどうかと思ったんですが、他の記述
方法はないでしょうか?
0899nobodyさん
2006/11/04(土) 21:41:16ID:???0900nobodyさん
2006/11/04(土) 21:55:48ID:???ようするにループでやらずに行番号付けたいってこと?
そうなると改行コードを置換とかしないといけないと思うけど、
連番付けながら置換ってちょっと面倒くさいよ?
なんでわざわざループが必要な処理をループ使わないでやりたいなんて思うのさ。
0901nobodyさん
2006/11/04(土) 21:59:54ID:???PHPでWebを作る際に出力を全てprintやecho等でやっています。
こうして動的に出力される「ページのソース」を見ると無駄な改行がたくさん入っています。
何故改行が入ってしまうのでしょうか?原因不明の問題が出ないか心配です。
と書きながら原因思いつき&判明したフォー
----------------チラシの裏----------------
\n←この部分とか
\n
<?php
\n
function example()
{
\n
}
\n
\n
?>←これ以下の
\n←この部分
\n
----------------チラシの裏----------------
が出力されてたとです。
PHPが埋め込みスクリプトだと再認識したとです。
良い子のみんなはこんな質問しちゃだめですよ(´・ω・`)
0902875
2006/11/04(土) 22:07:42ID:Z4GrE+jAそうですね自分もそんな気がしてたんですがWin32apiのことは全然知らなくて...
windowsに直接ロケールとか調べるコマンドあったらsystem()とか使おうと思ったんですけど
それもちょっと分からなかったんです
>>887
>>890さんが言うとうり扱うファイルはバイナリファイルなんで文字コードを特定できないです.
0904898
2006/11/04(土) 22:47:49ID:DqH0rqVhいやぁ、forならいいかなぁって。すいません。foreachの使い方
がいまいち馴染めなかったので、言ってみただけです。
0905898
2006/11/04(土) 22:52:44ID:DqH0rqVh>>900
行番号は別にいりません。ただhtmlのソースコードを取得したい
だけです。それで、file_get_contents()を使って、もっと
あっさりできないものかと思いまして。
0906nobodyさん
2006/11/04(土) 23:01:24ID:???echo htmlspecialchars(file_get_contents('http://www.yahoo.co.jp'));
取得するなら変数に格納
$data = file_get_contents('http://www.yahoo.co.jp');
いまいち何がしたいのかわからんけど
0907nobodyさん
2006/11/04(土) 23:01:58ID:???echo file_get_contents("URL");
というか、おまえサンプルのソースの内容を全く把握できてないだろう。
0908898
2006/11/04(土) 23:06:09ID:DqH0rqVhもう少し建設的なやりとりを交わせるようにがんばります。
0909nobodyさん
2006/11/05(日) 00:07:28ID:bwOCiosncreate table files (
id int not null auto_increment,
file longblob,
primary key (id)
);
で作ったテーブルにファイルを格納するところまでできたのですが、以下のコードで$fpにファイルハンドルが入らず、データがそのまま文字列として入ってしまいます。
$db = new PDO('mysql:host=localhost;dbname=hogehoge', 'user', 'pass');
$stmt = $db->prepare('select id, file from files where id = 1');
if (! $stmt->execute()) {
$info = $stmt->errorInfo(); echo $info[2];
}
$stmt->bindColumn('id', $id);
$stmt->bindColumn('file', $fp, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);
var_dump($fp);
//fpassthru($fp);
//fclose($fp);
http://www.php.net/manual/ja/ref.pdo.phpの例12の通りだと思うのですが、どのように直したら$fpにファイルハンドルが入るかわかる方いますか?
0910nobodyさん
2006/11/05(日) 00:14:46ID:???<?php
readfile('http://www.yahoo.co.jp');
?>
0911nobodyさん
2006/11/05(日) 00:15:22ID:???0913909
2006/11/05(日) 00:47:00ID:bwOCiosnファイルハンドラを保存というか、保存されているものは文字列(というかバイナリ)です。
以下、スクリプト自身をDBに保存する摩訶不思議なスクリプトです。
よろしければ、試してもらえるたら幸いです。
(インデントは全て全角スペースで書いてあるので、置換してください)
$fp = fopen(__FILE__, 'rb');
$db = new PDO('mysql:host=localhost;dbname=hogehoge', 'user', 'pass');
$stmt = $db->prepare('insert into files set file=:file');
$stmt->bindParam('file', $fp, PDO::PARAM_LOB);
// 挿入時はちゃんとファイルハンドラが使える。
if (! $stmt->execute()) {
$info = $stmt->errorInfo(); echo $info[2];
}
0914nobodyさん
2006/11/05(日) 01:02:22ID:ByyhjYSA10円 ハゲ PHP エロス
辺りでググッたのですが見つかりません。
0915nobodyさん
2006/11/05(日) 01:29:17ID:???セッションで隠すやつは玄人
0916909
2006/11/05(日) 01:47:57ID:bwOCiosnMySQL server has gone away
(MySQLサーバーが消えました???)
と言われます。
もう何かPDOでLOB扱うのは諦めるかもしれません。
他にMySQLでファイルを保存する方法にはどんなものがありますか?
0917nobodyさん
2006/11/05(日) 02:24:39ID:???0918nobodyさん
2006/11/05(日) 03:37:58ID:???> 今、トラックバックスパムではないんですが、トラックバックを一度で複数送る研究を・・・
それがトラックバックスパムなんです。研究だろうと何だろうと。
>>874みたいに興味持っちゃうお子さんがいるでしょ。
だから公共の場で教えてあげることはできないんです。
0921nobodyさん
2006/11/05(日) 08:32:35ID:???ttp://takagi-hiromitsu.jp/diary/20061104.html#p01
で、
> こんなのは PHPのバグでしょ。エンコーディングがShift_JISの文字列を addslashes() するときに、
> Shift_JISとして処理していない addslashes() のバグ。
といってるが、バグなのか?
マニュアルにも、SHift_JISは"PHP で動作しないと思われる文字エンコーディング"になってるのに。
0922nobodyさん
2006/11/05(日) 09:03:11ID:???バグだろうがバグじゃなかろうか議論なんて問答無用な話だ
0925nobodyさん
2006/11/05(日) 11:48:25ID:???PHP始めたばかりの初心者だけどC/C++経験者のおいらから言わせてもらえば
×バグ
△仕様
○未実装
他の文字列関数にmb系関数がある以上日本語にはmb系関数を使うのが正しい。
しかしmb_addslashesは無いので未実装扱いが正統。
Shift_JISなんぞ国個別(今回は日本語)の個別コードに過ぎないので解釈不能で仕方が無いと思う。
ついでに言うとmb_addslashesが無いのであればmb_addslashesと同等の動作の物を自分で作成するか
PHPマニュアルにもあるようにSQLサーバ固有のエスケープ関数を使用するのが正しいと思う。
それでも問題が起こるのであれば、それはまた別の話
つづく
0926nobodyさん
2006/11/05(日) 12:02:32ID:???それはバグでもなければひろみちゅの勘違いでもなくて、
指摘された元々の文章を書いた人が
「PHPではSJIS日本語のエスケープにaddslashes()を使う」
と大嘘を書いたせい。
0927nobodyさん
2006/11/05(日) 12:22:05ID:???0928nobodyさん
2006/11/05(日) 12:35:09ID:???「今夜分かるSQLインジェクション対策,」であるのならば記事の方が正しい。
>>921のリンク先で批判している人が間違い。
>対策に「準備された文」(prepared statement) のことを書かないのは、どういうつもりなわけ?
確かに書くべきだと思うが
1:prepared statementはDBや上位インターフェイスによっては未実装かもしれない。(そういう)意味ではエスケープもアレだが
2:prepared statementはインジェクション対策というよりプログラムからSQL文作成をする場合の簡略化に本質があるとはず。
つまりprepared statementに対応していたとしても問題文字を埋め込んだ場合に必ずしもインジェクション対策にはならないのではないかという疑問がある?
>そんな方法が「一般的になっている」なんて書くなって。そんなのは、はじめっから間違ってるって書くべきこと。
「今夜分かるSQLインジェクション対策,」、つまり分かっていない人用だし、実際にそのような対策例が多いので=一般的で良いと思われる。
というかprepared statementが正しいという前提の元で批判しているこの人が間違い。
>「方向性は正しい」と言いながら「理解していないため」というのはどういう了見なわけ? 「方向性」って何? 方向性からして間違ってるんだって。
prepared statementが正しいという前提の元で(ry
記事はエスケープをするという方向性は正しいが本質を理解していないと完全な対策が取れないという事が言いたいのであろう。
すなわち文字列やaddslashesを理解していない人には完全な対策が取れな(ry 自爆(ry
>「HTMLを生成する段階でエスケープすればよいと考えている人」って何それ?
これは記事の説明が悪い。
記事は初心者にクロスサイトスクリプティングと一緒くたにしないように注意を喚起したかったのであろう。あれもエスケープするしね。
0929925 928
2006/11/05(日) 12:37:59ID:???SQLインジェクションとは何故起こるのかを説明しなければならない。
説明する上では文字列やエスケープについての記述が必須になる。
何故起こるのかの本質を理解せずに「prepared statementを使用すれば良い」等という書き方になると.
(全てのDB,SQL,インターフェイスで対策になっているか疑問だが)
addslashesがバグとかいう誤解をする人が増えてしまうのではないかと思う。
また、別の件で本質が同じである同様の間違いをおかす人も増えてしまうのではないかと思う。
SQLインジェクションの本質を理解していれば単純なクロスサイトスクリプティング脆弱性は生まれないが、
prepared statementだけでは同じ間違いをおかしかねない。
------------ここまでチラシの裏-----------
0930nobodyさん
2006/11/05(日) 12:45:24ID:???【PHPアクセラレータで一番高速なのはどれか?】
ttp://gigazine.net/index.php?/news/comments/20061103_php_accelerator/
0931nobodyさん
2006/11/05(日) 12:51:06ID:???うちでもAPCを使ってるが、月1くらいで再起動かけないと
どうも動作が不安定になることが多くてちょっと困ってる…
0932nobodyさん
2006/11/05(日) 13:12:38ID:???別に高木は「prepared statementを使用すれば良い」っていう
書き方をしろなんて書いてないでしょ
Webアプリケーション対策のところにprepared statementを始めとする
セキュリティが考慮された上位DB抽象インターフェイスを使う事が
説明されてないっていう事がダメって言ってるわけで
何故起こるのかを書く事は必要だけどその対策方法が
低レベルAPIの対策方法しか書かれてなくて
しかもそれらがさも「一般的な対策」であるかのように
書かれてるっていうのが問題だってのが高木の言い分だろ
@ITの記事が説明不足だっていうのは正しい指摘だと思うよ
高木の「addslashesはバグだ」ってのもちょwおまwって感じだけど
0933925 928 929
2006/11/05(日) 13:43:48ID:???まあ、そうですね。
そんなおいらも >>901 みたいなアフォな事やってるフォー
901=925,928,929なんです(`・ω・´)シャキーン
高木氏の文に説明書いてあるけど顔見知りみたいだし(?)書いているのは個人日記みたいだし、
高木氏本人も自分専用チラシの裏程度の感覚で書いてるのかもしれないですしね。
0935nobodyさん
2006/11/05(日) 14:27:01ID:???function mb_stripslashes($str)
{
$enc = mb_detect_encoding($str, 'UTF-8,EUC-JP,SJIS');
$str = mb_convert_encoding($str, 'UTF-8', $enc);
$str = stripslashes($str);
$str = mb_convert_encoding($str, $enc, 'UTF-8');
return $str;
}
0936nobodyさん
2006/11/05(日) 14:38:59ID:???そこでstripslashesするってことはaddslashes済みのデータってことだよね?
SJISデータにaddslashesするとデータが破壊されるから正常なUTF-8には変換できないよ。
それ、addslashesの間違いなんじゃ…
0937nobodyさん
2006/11/05(日) 18:29:10ID:???まぁ俺は元々UFT-8使ってるから関係ないけど。
0938nobodyさん
2006/11/05(日) 18:41:22ID:???釣られたよ俺の負けだ
0939937
2006/11/05(日) 19:02:15ID:???0940nobodyさん
2006/11/05(日) 22:10:07ID:???0941nobodyさん
2006/11/05(日) 22:14:31ID:???0942nobodyさん
2006/11/05(日) 22:43:56ID:???0943nobodyさん
2006/11/05(日) 22:54:54ID:???0945nobodyさん
2006/11/06(月) 00:13:36ID:???0946nobodyさん
2006/11/06(月) 00:54:45ID:???0947nobodyさん
2006/11/06(月) 02:10:13ID:NtdVX8J9受け側で $_POST['a'] == 'b'; なるようなソースを教えてください。
0948nobodyさん
2006/11/06(月) 02:30:15ID:???$_POST['a'] == 'b';
?>
0949nobodyさん
2006/11/06(月) 02:31:12ID:???0950nobodyさん
2006/11/06(月) 02:31:34ID:???これで以下のスクリプトでどこでも$_POST['a']がbとして使えるよ
0951nobodyさん
2006/11/06(月) 02:36:04ID:NtdVX8J90952nobodyさん
2006/11/06(月) 03:27:09ID:mhsSMHja0954nobodyさん
2006/11/06(月) 04:38:56ID:???4→5はオブジェクト周りがかなりJavaっぽくなったが、
また6で覚えなおすこと多くなるのかな。
0955nobodyさん
2006/11/06(月) 04:48:47ID:???6への移行はなかなか進まないんじゃないかな。
あまりしらないんだが、そんな予感。
0956nobodyさん
2006/11/06(月) 05:31:37ID:???6で気になるとこはgotoとネームスペースかな。
gotoは無くていいけど、ネームスペースは欲しい。
デリミタは「:::」になるみたいね。
0957nobodyさん
2006/11/06(月) 05:35:56ID:???って話になってるよね。register_globalsをはじめ、関数エイリアスとか。
0958nobodyさん
2006/11/06(月) 05:38:05ID:???0959nobodyさん
2006/11/06(月) 06:26:33ID:???処理速度が最低5倍、最大30倍も向上するらしいって話だったけど。
0960nobodyさん
2006/11/06(月) 06:56:53ID:???0961nobodyさん
2006/11/06(月) 10:21:56ID:???0962nobodyさん
2006/11/06(月) 12:08:48ID:rJsIKc5Iさらにhoge.phpの中にconfig.phpをincludeする文があるのですが、
これってincludeしてくれるんでしょうか?
0963962
2006/11/06(月) 12:10:06ID:rJsIKc5I0964nobodyさん
2006/11/06(月) 12:11:11ID:???するよ。
>>963
いや、PHP以外の質問されても困るけどさ。
どうせ書くならPHPのバージョンとかその辺りを…
0966nobodyさん
2006/11/06(月) 12:25:06ID:???参考書読んでもわからないもので。
0967nobodyさん
2006/11/06(月) 12:32:27ID:???$_SERVER['REQUEST_METHOD'] / getenv('REQUEST_METHOD'')
func_get_args()
でどうかしら
0968nobodyさん
2006/11/06(月) 12:39:53ID:???Perlの機能で質問するならMethPost、ReadParseがどういう機能なのか説明しなよ。
なんでPHP知ってる人がPerlのしかも標準でないライブラリについて知ってると思うのさ。
MethPost → ($_SERVER['REQUEST_METHOD'] == 'POST')
ReadParse → 標準で自動的に$_GETと$_POSTに格納される。
0970nobodyさん
2006/11/06(月) 12:48:06ID:???0972nobodyさん
2006/11/06(月) 14:28:39ID:???登録フォームなどで
フォーム(form.php)→入力内容失敗(フォーム上に表示)→成功・送信完了(entry.php)
と言うように入力判定を登録フォーム上に表示する仕様がよく見かけますが、
これは以下のような考え方でいいのでしょうか?(form.phpに記述するとして)
if($name=""){
echo"名前が入力されていません"
}else{
$_SESSION[name]=$name;
header(location: entry.php);
}
0973nobodyさん
2006/11/06(月) 14:35:20ID:???$name = ""じゃなくて$name == ""な
俺だったらわざわざロケーションするくらいなら
同じファイルで値チェック+成功後の処理もやっちゃうけどね
0974972
2006/11/06(月) 15:11:30ID:???すみません、結構記述ミスがありましたね。。
それで同じファイル上で値チェック+成功後の処理をすると
デザイン面などの編集がしづらいんです。
また、間に確認するページを入れた場合など。
それで、sessionで保持してロケーションするのが良いのかな?
っと思い、設計の質問をした次第です。
0979nobodyさん
2006/11/06(月) 16:43:52ID:???(1)
$num = $db->getOne("SELECT COUNT(*) FROM hoge");
(2)
if(!DB::isError($rs = $db->query("SELECT * FROM hoge"))){
$num = $rs->numRows();
}
1と2ってどっちが早い?
行数にもよると思うけど。
0980nobodyさん
2006/11/06(月) 16:52:47ID:???if($name==""){
echo"名前が入力されていません"
}else{
include "entry.php";
exit;
}
でもいいんじゃないの
0981nobodyさん
2006/11/06(月) 16:56:34ID:???0983nobodyさん
2006/11/06(月) 17:21:15ID:???<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title><?php echo "$title" ?></title>
<link href="style.css" type="text/css" rel="stylesheet" />
</head>
さーせん、コレで書いてるのになぜかブラウザはshift_jisで表示してしまいます。
考えられる原因は何でしょうか?
0984nobodyさん
2006/11/06(月) 17:27:45ID:???php.iniのdefault_charset変えたら行けました。
死んできます。
0985nobodyさん
2006/11/06(月) 17:32:19ID:???0986nobodyさん
2006/11/06(月) 17:55:24ID:L/507IWYメールフォームを使えば楽なのですが、携帯利用者にとって
自分のメールアドレスを打つのはご法度だと考えております。
どなたかアドバイスお願いいたします。
0987nobodyさん
2006/11/06(月) 18:27:27ID:???0988nobodyさん
2006/11/06(月) 19:03:02ID:???0992nobodyさん
2006/11/06(月) 19:23:14ID:???0993nobodyさん
2006/11/06(月) 19:26:38ID:???まだ伝書鳩使ってるんですか?
php-5.2.0からは糸電話が実装されたので非常にセキュアです。
dos攻撃にも強いですよ。
0994nobodyさん
2006/11/06(月) 19:34:26ID:???伝書鳩
RFC 1149 鳥類キャリアによるIPデータグラム送信標準
0995nobodyさん
2006/11/06(月) 20:37:35ID:???鳥インフルエンザが心配だな。
パケットが落ちる可能性がある。
しかも、インコとか暗号しゃべれないでしょ?平文は不安だよ。
やっぱり糸電話は物理層でつながっている安心感が違うよ。
インフラでコストがかかるけど、うちは全部 ”糸”だよ。
0996nobodyさん
2006/11/06(月) 20:59:33ID:???それ、PHPの質問じゃないぞ。
.forwardとかでメールの内容をスクリプトに渡してやって
正規表現で相手のメールアドレス抽出。
PHP STDINあたりで検索かけてみ?
0998986
2006/11/06(月) 21:06:11ID:???0999nobodyさん
2006/11/06(月) 21:06:42ID:???受け取った後は言語はなんでもいい。もちろんPHPでもできる。
問題はスクリプトにどうデータを渡すか。これはPHP全然関係ない。
1000986
2006/11/06(月) 21:07:06ID:???For ever you!!!1000
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。