【PHP】下らねぇ質問はここに書き込みやがれpart17
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/02/24(金) 22:05:48ID:YHkZgU8bここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/l50
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart16
http://pc8.2ch.net/test/read.cgi/php/1139146534/l50
過去スレは>>2
0653nobodyさん
2006/03/09(木) 14:50:03ID:???とか?
0655nobodyさん
2006/03/09(木) 14:58:11ID:???0656nobodyさん
2006/03/09(木) 15:00:46ID:???天才だな
0657nobodyさん
2006/03/09(木) 15:03:28ID:???0658nobodyさん
2006/03/09(木) 15:16:55ID:???0659nobodyさん
2006/03/09(木) 15:22:24ID:???なんの仕事?
0663nobodyさん
2006/03/09(木) 20:55:15ID:???0664nobodyさん
2006/03/09(木) 21:03:05ID:???header('Server: unknown');
のようにして、サーバ環境を隠蔽しようとしたのですが、うまくいきません。
エラーが出るわけではないのですが、Server: Apache/1.3.34 PHP/5.1.2の
ようにレスポンスが帰ってきます。
header()関数でサーバ環境を隠蔽するにはどのようにすればいいでしょうか。
0667nobodyさん
2006/03/09(木) 21:20:48ID:???消えろ
0668nobodyさん
2006/03/09(木) 21:23:37ID:???それと同じくして無能な人間がふえているのも現状だと言える。
0671664
2006/03/09(木) 21:39:40ID:???はい。firefoxなどのブラウザで見るぶんには意識することはありませんが、
ほとんどのサーバはヘッダ情報として「Server: Apache/1.3.34 PHP/5.1.2」
のような情報を送信します。
0672nobodyさん
2006/03/09(木) 21:41:29ID:???Header Set
0674nobodyさん
2006/03/09(木) 21:56:26ID:???環境変数のSERVER_SOFTWAREのことジャマイカ?
最近の鯖管理者のトレンドとしてはSERVER_SOFTWAREで
全ての情報を出さず、Apacheとだけしている、、ラシイ
0675nobodyさん
2006/03/10(金) 00:18:54ID:???<?php
/*?>*/
?>
↑これだと問題ない。当たり前だ
=========================
だけど
=========================
<?php
//?>
?>
↑コメント以降は評価しないはずなんじゃないの?
=========================
?>
=========================
って出力されちゃう。
おかしくね?php4.3.11
0676nobodyさん
2006/03/10(金) 00:43:28ID:???正常。
「//」でそれ以降は評価しない、というのはPHPの命令部の話であって
PHPタグはコメントの評価よりも先に解釈されている。
だから // ?> でのコメント部分は //「 」?> この「〜」部分だけ。
それから
/* ?> */
?>
ってやつのコメント範囲は
/*「 ?> */
?>」
ここまで。(後ろの */ はPHPタグ外なのでHTMLに*/と書かれている状態)
つまり、それはコメントが閉じてない状態になっているため、以降が全部見えてない。
0677nobodyさん
2006/03/10(金) 00:49:21ID:???print "?>";
print '?>';
は出来るんだね
0678675
2006/03/10(金) 00:53:31ID:???なるほど。
先日ちょっとした手違いでソースが上記のようになりこんな現象を体験したもので不思議に思った次第です。
わざわざこんな風に書く事なんてあり得ないんですが、ひとつ勉強になりました。
もう一つ、最近思い悩んでることがあります。
$a = "moto_a";
$b = "moto_b";
$c = "moto_c";
これらの変数に、文字列"_tuketashi"を加えて(これは何の問題もない)
元の変数名に"_plus"を加えた変数名の新たな変数を、phpの処理で作りたい。
ここのロジックがわかれば元の変数を配列にぶち込んで関数で一気に処理出来たらいいんだけど。
$a = "moto_a_tuketashi";
$b = "moto_b_tuketashi";
$c = "moto_c_tuketashi";
変数名($がついてない)だけを引数で与えて、自作関数でなんとかするとか、evalでどうにかするっていうのは出来たけどいまいちスマートじゃない。
変数「名」を取得して、特定の文字列を付け足した新たな変数を作るという部分で悩んでるんだけど、なんかいい方法はないでしょうか?
0680nobodyさん
2006/03/10(金) 01:02:09ID:???変数名のセットはともかく「取得」ってのは「どっから??」って思うのでこれはパス。
とりあえずこんな感じでどうか。
foreach(array("a", "b", "c") as $env) {
${"{$env}_plus"} = "${$env}_tuketashi";
}
0681nobodyさん
2006/03/10(金) 01:12:37ID:???俺はHTMLソースを表に出さないようにコメント化して非表示にしたり、
HTMLソースとしては見せたくない内部的なコメントを書くのに<!-- -->を使わず
<html>
<?php /* ここからコメントアウト?>
<div>
</div>
<?php ここまでコメントアウト */?>
とか
<div>
<?php //項目名 ?><span></span>
<table>
みたいなHTMLもたまに使うよ。
0682nobodyさん
2006/03/10(金) 01:20:16ID:???すぐ検索できたぞ・・
おれもphp関係ないけど興味あったので調べてみた
http://www.heeha.ws/index.php?Apache%B4%D8%B7%B8
はまとまってるんじゃないかな
0685678
2006/03/10(金) 01:54:26ID:???たしかに取得という言い方はちょっと変ですね。
$aという変数があったら、「$a」から「$」をとった部分を文字列として「a」として取り出せないかな。と。
こういうことを言いたかった。
で、ソースの方ですが、なるほど。
こういう感じで$(ドル)重ねちゃうんですね。こんなやり方もあったんだ。
ただ、やっぱり引数に与える文字列は手動で、ってことになっちゃうんですね・・・
それでも最初に配列を作っておけばいいから、かなりすっきりしますね。
受け取った値を表示用に整形して元の値はそのまま残しておきたいってケースが結構あるんです。
それで、元の変数に手を加えて名前をちょっとだけ変えた変数を生成ってやりたいんですよ。
>>681
いただきます
0686nobodyさん
2006/03/10(金) 01:57:13ID:JMSIppfw「?????」
のようなUnicode10進で書かれた文章を、
「あいうえお」
という形に変換、またはその逆を行いたいのですが、どのように行えば良いのでしょうか。
0687686
2006/03/10(金) 01:59:35ID:JMSIppfw「?????」
↓
「&#12354;&#12356;&#12358;&#12360;&#12362;」
です。
0688nobodyさん
2006/03/10(金) 03:10:33ID:???まずはUCS-2とUTF-8の関係を調べると良い。
ttp://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
ttp://homepage1.nifty.com/nomenclator/unicode/data/hiragana.htm
http://www.unicode.org/charts/PDF/U3040.pdf
0689nobodyさん
2006/03/10(金) 03:48:26ID:???アクセスログでこういうリモートホストがあった場合に、
これが属性JPなのか汎用JPなのか判別するいい方法ありませんか。
リモートホストをドメインでグルーピングしたいんですが。
0690nobodyさん
2006/03/10(金) 03:58:00ID:???co.jp
or.jp
gr.jp
ac.jp
ed.jp
ne.jp
かどうかで判断すればいいんじゃないのかな・・
これで全部かは知らんけど
0691nobodyさん
2006/03/10(金) 04:17:37ID:???リモホをドットで区切って後ろから二つ目が2文字なら属性っていうのはどうよ
gTLDじゃないっていう前提が必要だが
0692690
2006/03/10(金) 04:27:21ID:???http://www.nic.ad.jp/ja/dom/basics.html
がまとまってそうだから読んでみれば?
法則自体は難しくないから.jpだけなら比較的簡単に作れるんじゃない
0693nobodyさん
2006/03/10(金) 04:40:42ID:???ありがとうございます
691さんのやり方使おうと思ったんですが、地域型ドメインなんていう厄介なものもあるんですね
検討してみます
0694nobodyさん
2006/03/10(金) 05:35:55ID:???691の提示しているやり方でなんら問題ない。
http://jprs.jp/info/jp-dom/character.html
0695694
2006/03/10(金) 05:45:18ID:???これの区別は難しいと思うよ。
0696694
2006/03/10(金) 05:48:20ID:???○地域型JPドメイン
ごめん頭回ってない。もう居ぬわ。
0697nobodyさん
2006/03/10(金) 06:43:32ID:+ksaxYfxこのプログラムを調べています。
$wを何もしなくても0と1の配列に別れていますが、これはどういうことですか?
この定義していないのに配列で扱うというのは、なぜですか?これを配列で定義すると、どうに分けられた答えが返ってきますか?
0698nobodyさん
2006/03/10(金) 07:00:47ID:???$w = mb_substr($str, $i, 1, "SJIS");
って行で $w が最初に出て来てるじゃん
mb_substr でググルなりしてみなされ
0699nobodyさん
2006/03/10(金) 07:04:54ID:+ksaxYfx戻り値は普通そのsubstrされた文字なのはわかるのですが、なぜ配列になっているのかがわからないです。。
0701nobodyさん
2006/03/10(金) 08:44:51ID:???$wがマルチバイト文字(2バイト)だから
$w[0]$w[1]にわけられる
俺はこういう場合は$w{0}を使うけどね
0702nobodyさん
2006/03/10(金) 08:48:48ID:???の文字列に
echo $w[3]; // dが表示
のように配列でアクセスできることの応用かな
ただし文字列に配列でアクセスするときは{ }が推奨されている
0703nobodyさん
2006/03/10(金) 10:50:40ID:???ttp://jp2.php.net/manual/ja/language.types.string.php#language.types.string.substr
散々出ているが、レッツ!のスクリプトは古く、
かつメンテナンスされていない物が多いので
(特に初心者は)あまり参考にすべきではないと思う
0704nobodyさん
2006/03/10(金) 11:40:13ID:???にちゃんの解除以来板でも見て候補拾えばよろし。
ソース出したくないなら、そもそもphpは向いてないよ。
mixiみたいに設定ミスで流出の危険は常に有る。
アプリケーション鯖みたいにリクエストだけ別に投げて処理するようにしないと。
0705nobodyさん
2006/03/10(金) 11:52:24ID:???0706nobodyさん
2006/03/10(金) 14:56:54ID:???レッツPHPのbasic認証のパス失敗したらlog残すみたいな
スクリプト配布しているところ知りません?
0707nobodyさん
2006/03/10(金) 15:36:33ID:OI9+vMb4<?
header('Content-type: text/xml; charset=utf-8');
echo('<?xml version="1.0"?>');
echo('<xmldoc><data>1</data></xmldoc>');
?>
以下のようなエラーが出てしまいます。どうしたら回避できますか?
これより前にヘッダなんか送ってなんかないよ〜。
Warning: Cannot modify header information -
headers already sent by (output started at /usr/local/apache2/htdocs/a.php:1) in
/usr/local/apache2/htdocs/yj.php on line 2
1
環境は
Apache/2.0.50 (Unix) PHP/4.4.0
です。
0709707
2006/03/10(金) 15:49:35ID:OI9+vMb4ありがとうございます、入ってませんでした。
>>707にコピペした以外1バイトたりとも余計なものはありません。。
もちろん
<?
が1行目です。
0710707
2006/03/10(金) 15:50:56ID:???ソースを shift_jis で保存しなおしたらでけた。
なんでだ。
0713nobodyさん
2006/03/10(金) 16:42:27ID:???0714nobodyさん
2006/03/10(金) 16:47:57ID:???0716706
2006/03/10(金) 17:10:07ID:???0717nobodyさん
2006/03/10(金) 17:47:46ID:???0718nobodyさん
2006/03/10(金) 17:53:34ID:???0721nobodyさん
2006/03/10(金) 19:06:20ID:???「PHPで〜できますか?」とか言う質問は
・PHPの組み込み関数で〜
・PHPの関連ライブラリ(pear,peclなど)で〜
・PHPの(サードパーティー)ライブラリで〜
・PHPの能力のうちで〜
のどれなのかをはっきりさせて質問するべきだと思うんだが。
>>716
Web制作orダウソ
0724nobodyさん
2006/03/10(金) 19:38:55ID:Zv8Tap21push('a');
push('b');
$b = pop();
$a = pop();
echo $a.$b;
"ab"
みたいな事がしたいのですが、どの関数を使えば良いのか分かりません。
0725nobodyさん
2006/03/10(金) 19:43:10ID:???array_pop
どうぞ。
ってか、別にいらない気もするけど。
0726nobodyさん
2006/03/10(金) 19:43:21ID:???array_pop()
0730nobodyさん
2006/03/10(金) 20:11:45ID:???0731nobodyさん
2006/03/11(土) 02:09:03ID:???何本かプログラムを作ったけどいわゆる入力まわりの、
「記入」「確認」「修正(記入と同じ画面を使いたい)」「完了」
これの条件分岐に関して、getでなんとかしたり、セッションに変な変数入れたり、hiddenで変な変数投げたりといつも、ごちゃごちゃになって、未だ自分の納得出来る方法を確立してません。
特に、確認画面から修正にもどるとこ。
これに関して、定番のロジックのフローチャートみたいなものってどこかにないでしょうか?
$_POSTが無くて、何らかの入力エラーがあったら「記入」
上記をスルーしたら「確認」
修正したい時は「記入」にもどるけど、このときはgetで。
「記入」画面で「確認画面をスキップ」にチェックを入れておいたら「確認」をスルーしてメイン処理(書き込み、DB登録やメール飛ばし)、成功したら「完了」失敗したら「エラー(このエラーはほかのエラーの場合も使う)」
こんな感じでやりたいのですが、皆さんはこの辺はどんな設計にしてますか?
0732nobodyさん
2006/03/11(土) 02:22:13ID:???すでに定義されている変数や定数を一覧表示する関数というか方法は無いでしょうか?
0733nobodyさん
2006/03/11(土) 02:29:37ID:???0735nobodyさん
2006/03/11(土) 02:35:55ID:???実行中なら
get_defined_vars
get_defined_constants
ソースからなら
http://oss.moongift.jp/intro/item_624.html
0738735
2006/03/11(土) 05:36:03ID:???735の公式サイトのリンクはクリックをカウントしてるのか自サイトですね。
たまにエラーが出るみたい
こっちが直
http://phpxref.sourceforge.net/
0739nobodyさん
2006/03/11(土) 09:40:18ID:???どのように使い分けていますか?
私はインスタンスを生成するのがめんどくさいというだけの理由でほ
とんどのメソッドでstatic宣言を使用しているのですが、これだと、
向上心がないような気がするので、みなさんの意見を聞きたいです。
0741739
2006/03/11(土) 09:58:14ID:???いことに気がつきました。
嫌というよりは、例えば$example->example()でできることはstaticを
宣言すればexample::example()でもできるわけで…
つまり、みなさんがどんな使い分けをしているのかを聞きたかっただけ
なんですけが。
0742nobodyさん
2006/03/11(土) 10:20:33ID:???0745743
2006/03/11(土) 10:46:56ID:???あぁ、なるほど!!
インスタンスを複数生成したことがなかったから、意識していません
でしたが、たしかに、staticではインスタンスごとの変数は扱えませ
んね。
すっきりしました。ありがとうございました。
0746nobodyさん
2006/03/11(土) 13:20:18ID:???0747nobodyさん
2006/03/11(土) 15:19:01ID:???文字コードが大きな壁になってます。
メールの件名を判断してフィルタリングしようと思ったら
例えば日本語ならiso-2022-jpにエンコードして設定しなきゃいけない
わけですよね?
日本語だけならまだしも他の言語で色々エンコードあると
1言語ずつ対応しなきゃいけないわけで
非常にだるそうなんですが、なにか良い方法ないでしょうか?
0749nobodyさん
2006/03/11(土) 15:33:48ID:???そのユーザの権限でchmodしたいので
ftp_chmod使うつもりだったんだが。
php5入れる以外で代替法ないですかね・・・orz
0750nobodyさん
2006/03/11(土) 16:01:31ID:???0751nobodyさん
2006/03/11(土) 16:02:19ID:???http://jp.php.net/manual/ja/function.ftp-chmod.php
下の投稿に代替案みたいなのが載ってる
0752nobodyさん
2006/03/11(土) 17:44:19ID:???対応が必要なんだったら、そのだるい方法しかないよ。
前以てフィルタワードを各エンコーディング毎に用意しとくてもあるけど。
■ このスレッドは過去ログ倉庫に格納されています