【PHP】下らねぇ質問はここに書き込みやがれ 27
レス数が950を超えています。1000を超えると書き込みができなくなります。
00011様
2006/08/23(水) 00:54:52ID:uM5Jzzy0まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0851nobodyさん
2006/09/02(土) 00:24:39ID:???0852良心君 ◆lX/3zqtk/U
2006/09/02(土) 00:24:59ID:???僕は楽な方を選ぶね。
ただ僕を攻撃するだけのためにそんなこと言ってるのなら、
すんごくくだらないと思うけどね。
0855nobodyさん
2006/09/02(土) 00:28:50ID:???可能です。
仕事でやってるならどう実装するか考えるのが仕事です。無理なら他の人に任せてください。
趣味でやってるなら気長に勉強しながらがんばって。応援してる。
その中で自分ではどうしても解決できないPHPに関する問題に突き当たったらまた質問してください。
0857850
2006/09/02(土) 00:35:54ID:???いろいろ調べてみます。
0858nobodyさん
2006/09/02(土) 00:38:10ID:???0859nobodyさん
2006/09/02(土) 01:40:01ID:???クッキーが現実的だろうな〜
もしくは何かの商品にアクセスする度にDBにいくつかレコードを持たせる
って言う手もあるな。
まぁ、会員登録とか必要になるだろうけど。
0860nobodyさん
2006/09/02(土) 01:47:05ID:???あなたの意見を尊重する方もおり、助かっている方もおります。
ただ、このスレが荒れる原因になるのでこのスレで
回答するときはコテつけるのはやめてください。
二度目の忠告です。
0861nobodyさん
2006/09/02(土) 02:40:34ID:PkweSmHd見つからないのでお願いします
print_rとかで配列の中身のぞいたときマニュアルだと
Array
(
[a] => apple
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
こんな見やすい形で表示されるっぽく解説されてるのですが
うちの環境だと、改行なしでひたすら並べて表示されてて
階層が深いと解読に多大な時間を要するのですが…
マニュアルみたいに表示される方法はあるのでしょうか?
お願いいたします
0864nobodyさん
2006/09/02(土) 02:55:36ID:PkweSmHd>>863
おわ!ソースではちゃんとでてたのか。
それを<pre>タグで囲むと…
しかもprint_rのマニュアルよく見たら<pre>ついてますねOTZ
失礼しました。ありがとうございます^^
0865nobodyさん
2006/09/02(土) 03:02:25ID:rL49M+5zApache2.055
PHP 5.1.5
WinXP Sp2
という環境にて運用しています。
連想配列を任意の順番で配置したいのですが、どうすればよいでしょうか。
$a = array();
$a['one'] = 'val_one';
$a['two'] = 'val_two';
$a['three'] = 'val_three';
$a['fore'] = 'val_fore';
としても
$a[0] のkeyに'one'が入ってくれません。
PHPドキュメントを読んで
array_push($a, array("one => val_one"));
こうすればできるかとも思ったのですが、だめでした。
どうかアドバイス頂けないでしょうか。宜しくお願い致します。
※特殊なキーソートルールに従って配列順をソートしたいので$a = array('one => val_one', 'two => val_two');のように固定値で設定することはできないのです。
0866nobodyさん
2006/09/02(土) 03:10:48ID:???そこは保障されないんじゃないかな?
連想配列=キー経由でデータアクセス
だから、そもそも順番に意味があるような
データを入れるのは適してないのでは?
$a=array();
$a[] = array('one', 'val_one');
$a[] = array('two', 'val_two');
とかじゃだめなの?
0867866
2006/09/02(土) 03:12:32ID:???※の注記ちゃんと読んでなかったよ。
0869866
2006/09/02(土) 03:25:02ID:???連想配列でも順番に入るような感じで例がのってましたね。
ちょっとあげあし取りになるかもだけど、
array("one => val_one");
ってダブルクォートの入り方がちがうよ。
あと質問よく読むと
>$a = array();
>$a['one'] = 'val_one';
>としても
>$a[0] のkeyに'one'が入ってくれません。
最後の行の文章がおかしくない?
foreachで$aをまわしたときに、'one'、'two'、...になってほしいってこと?
0870nobodyさん
2006/09/02(土) 03:27:43ID:???最終的に何がしたいのかよく分かんないんだけど、その格納の仕方で順番に配置できてるよ。
格納順に取り出す方法は
foreach($a as $v) {
echo $v;
}
とか
$list = array_values($a);
var_dump($list);
とか
while(list($k, $v) = each($a)) {
echo $v;
}
とかすんの。
$a[0]は「0番目の値」でなく「0というキーで格納した値」なので取り出せなくて当然。
もしも'val_one'を$a['one']と$a[0]の両方でアクセスしたいと言うなら、
$a[0] = 'val_one';
$a['one'] = 'val_one';
みたいにそれぞれ格納しないとダメ。
0871nobodyさん
2006/09/02(土) 03:38:53ID:???レス有り難うございます。
値を取り出すときは
foreach ($a as $key => $val) {
print "$key => $tmp <br >\n";
}
のような形で取り出し、$keyに"one" $valに"val_one"が入り
one => val_one
two => val_two
0872865
2006/09/02(土) 03:41:25ID:???上記の様な順番で出力させたかったのです。
>>870さんのレスを参考にもう一度やってみます。
fourとダブルクォートの入り方の指摘有り難うございました。
0873nobodyさん
2006/09/02(土) 04:50:50ID:???同じ配列に数値添字の値を加えて後の処理ができるのであれば
$a = array();
$a['one'] = 'val_one';
$a['two'] = 'val_two';
$a['three'] = 'val_three';
$a['fore'] = 'val_fore';
$a = $a + array_values($a);
print_r($a);
という方法もあるかな
0874nobodyさん
2006/09/02(土) 05:03:40ID:???ちょとみっともないけど、こんな感じでも
$a = array();
$a['one'] = 'val_one';
$a['two'] = 'val_two';
$a['three'] = 'val_three';
$a['fore'] = 'val_fore';
$b = array_keys($a);
print_r($b);
for ($i=0;$i<count($a); $i++)
echo $a[$b[$i]]."\n";
配列関連の関数をうまく使えばなにかと便利
何がしたいかわからないけど「特殊なソート」したいなら
コールバック関数が使えるソートが使えそうだけど・・
0875nobodyさん
2006/09/02(土) 12:13:07ID:???0876nobodyさん
2006/09/02(土) 13:11:58ID:???日本語が文字化けしてしまって、うまく変換できません。
文字化けは?n?l?E?}???C?_?[のようになってしまいます。
どう変換すべきなのか教えてください。
0878(^ω^) ◆shPHP/.kPI
2006/09/02(土) 13:22:46ID:???0879nobodyさん
2006/09/02(土) 13:25:01ID:DHuAFzD0その返ってきたメールについて処理したいのですが、一体どこに届いてるのかわからず、SMTP エラーメールの処理、等で一応ググったのですが、よくわかりませんでした。
いったい何から調べれば良いのか検討もつきません。メールの基礎から勉強すればわかることなんでしょうか?良ければヒントだけでもお願いします。
0880nobodyさん
2006/09/02(土) 13:28:27ID:???ページ自体をUTF-8で構成してるんで
$title = mb_convert_encoding($title,"UTF-8");
で変換してみましたが、文字化けは変わらないです。
0881nobodyさん
2006/09/02(土) 13:28:38ID:???0883nobodyさん
2006/09/02(土) 13:36:25ID:???・"エラーメール"はバウンスメールと呼ばれる
・バウンスメールは送信元もしくはErrors-Toヘッダで指定されたアドレスに送られる
(ただしErrors-Toヘッダは規格になっていないので信頼性は低い)
・バウンスメールに関しての仕様はRFC1891-1894で定められている
これら仕様はDSNと呼ばれるSMTPサービス拡張を定義している
・qmailは独自の仕様(QSBMF)で送信する。
0884プリンタ関数
2006/09/02(土) 13:46:06ID:w59Qk5otWINDOWS xp
IIS V5.1
PHP5.0.4
[内容]
プリンタ関数が使いたいが、導入の過程でエラーが起こり困っている。
[過程]
プリンタ関数(*1)によると
>この PECL 拡張モジュールは、 PHP にバンドルされていません。
とあるのでpecl-5.1.6-Win32.zipをダウンロード(*2)して解凍した。
php_printer.dllが目当てだが、とりあえず全てのファイルを
extensionフォルダ(自分の環境ではc:/php/ext)に移した後、
php.iniに
extension=php_printer.dll
の行を追加して保存し、コンピュータを再起動した。
その後、ブラウザからphpでつくったサイトを開くと
エラーボックスが何回か表示した後
Unable to load dynamic library - 指定されたプロシージャが見つかりません。
とブラウザ上に表示。
0885プリンタ関数 続き
2006/09/02(土) 13:46:36ID:w59Qk5otと読めるのでphp.iniのディレクトリの指定を確認しても
extension_dir = "c:\php\ext\"
となっていて、問題なさそう。
他サイトで同じ状況の人がいないか探したところ、
[PHP-users 7023] printer関数が使えない
というML(*3)があったので読んでみるとどうやら同じ症状。
このサイトの[次の記事]に山本さんの自己レスがあり、
「php4winで配布しているパッケージで解決」とあったので
php4winのサイトを探してみたところ、どうやら閉鎖中(*4)。
*1 http://php.benscom.com/manual/ja/ref.printer.php
*2 http://php.benscom.com/get/pecl-5.1.6-Win32.zip/from/a/mirror
*3 http://ns1.php.gr.jp/pipermail/php-users/2002-April/007031.html
*4 http://www.php4win.com/
今でもプリンタ関数を使ってるという方いらっしゃいましたら
どうかアドバイスをお願いします。
0886879
2006/09/02(土) 13:57:58ID:???SPAMがどうたらとかと言われるかと思いましたが、回答ありがとうございます。これらをヒントに勉強してみることにします。
なんとなく>>881も自分宛のような気もしますがよくわからず…すみません。自分宛でしたらありがとうございます。調べてみます。
0888nobodyさん
2006/09/02(土) 13:59:47ID:DHuAFzD00889nobodyさん
2006/09/02(土) 14:09:01ID:???Return-Pathにメールが届くようにする。
そこにメールが届いたらプログラムが起動するようにする
(もしくは、デーモンを動かしてメールが届いたら処理をするようにする)。
起動したプログラム(or デーモン)で、エラーメールを解析。
0890879
2006/09/02(土) 14:19:36ID:DHuAFzD0そうですね。一応処理できる事を知ったので、できることはしといた方が良いのかなと思ったので。
>>889
今のとこだいたいのイメージしか湧かないですが、流れはだいたいわかりました。ありがとうございます。
0891nobodyさん
2006/09/02(土) 15:46:05ID:X9kYxdVIecho "<form action=$_SERVER[PHP_SELF]>\n";
echo "<form action=\"$_SERVER[PHP_SELF]\">\n";
一応、両方とも動くのですが正しい文法としては後者の記述でしょうか?
※メソッドとか抜けてますが、見やすくするために省略しました。
0892nobodyさん
2006/09/02(土) 16:12:03ID:???↑php4以降推奨されない書き方
0893nobodyさん
2006/09/02(土) 16:25:31ID:???いずれにしても見難いから俺は結合演算子使ってる。
PHP的に正しい書き方って言ったら埋め込みなんだろーけど
0894nobodyさん
2006/09/02(土) 16:31:19ID:???$_SERVER[PHP_SELF]だとPHP_SELFが未定義の定数として認識される。
未定義の定数は文字列として扱われる。この場合は"PHP_SELF"という文字列。
ただし、これは推奨されておらずNoticeが吐かれる。
また、ダブルクォーテーション内で変数を扱うときは{}でくくる方がよい。
ちなみに俺なら
echo '<form action="', $_SERVER[PHP_SELF], '">', PHP_EOL;
とかく。
0895nobodyさん
2006/09/02(土) 16:37:38ID:???0896894
2006/09/02(土) 16:38:56ID:???echo '<form action="', $_SERVER['PHP_SELF'], '">', PHP_EOL;
0897nobodyさん
2006/09/02(土) 16:49:51ID:???無駄な負荷を軽減しているのですが
当然なのですがカウンタが回りません
どの様な処理方法が考えられますでしょうか
0898nobodyさん
2006/09/02(土) 16:52:57ID:???0899nobodyさん
2006/09/02(土) 16:54:00ID:???403ってHTTPのステータスコードのこと?
だとしてどのようなアクセスに対して403を吐いていて
どのようなアクセスに対してカウンタを回したいの?
0900nobodyさん
2006/09/02(土) 16:57:58ID:???その中にhelloというユーザー関数を作成しました。
この関数を、フォームのsubmitボタンを押すと呼び出すようにしたいのですがうまくいきません。
どこをどのように改良したらよろしいのでしょうか?
ご教授お願いいたします。
<?php
function hello() {
print "Hello";
}
?>
<form method="post" action="hello.php">
<input type="submit">
</form>
0902nobodyさん
2006/09/02(土) 17:01:48ID:???読んでおいで
http://www.php.net/manual/ja/language.functions.php
0903nobodyさん
2006/09/02(土) 17:02:11ID:???書き間違えました
更新されていなければ 304 Not Modified
更新されていれば スクリプト実行
これをPHPの動的なページに適用しています。
カウンタはバックグランドではきちんと回っているのですが
304 Not Modified でページが再読み込みされない為
回らないように見えます。
0904nobodyさん
2006/09/02(土) 17:20:54ID:???釣りにしか見えないがブラウザのキャッシュを利用しているのだからサーバー側で
何も処理されない。当然、カウンタが増えるわけがない。
0905nobodyさん
2006/09/02(土) 17:22:46ID:???ID3v1タグって元々はどんなエンコードで入っているんですか?
いろいろやってみましたが、文字化けが直りませんでした。
0906nobodyさん
2006/09/02(土) 17:29:26ID:???単一スクリプトの出力を変化させつつ、304吐いて読み込ませないなんて矛盾したことは不可能
カウンタの部分が更新されることを望むなら
カウンタ表示部分を画像やAjaxで別途呼び出すようにするか
304を吐かないようにするか
負荷軽減と言ってるがそれがPHP実行によるCPU負荷を指してるなら、
304を吐かなくてもスクリプト側で重い処理だけキャッシュすればいい。
転送量の事なら圧縮転送させるだけでも効果が得られるかもしれない
0907nobodyさん
2006/09/02(土) 17:30:11ID:???0908nobodyさん
2006/09/02(土) 17:38:41ID:???>カウンタ表示部分を画像やAjaxで別途呼び出すようにするか
やはり別ファイルにして呼び出す方法しかないのでしょうかね
色々やって見ます。
スクリプト自体の処理負荷も回線負荷も
重い訳ではないので 304 はずしても問題ないんですがね。
0909900
2006/09/02(土) 17:40:02ID:???制御文から関数呼び出しました。
0910nobodyさん
2006/09/02(土) 17:44:17ID:???htmlファイルは604
phpファイルは705
ログファイルは606
ですべて統一しても大丈夫でしょうか?
0912nobodyさん
2006/09/02(土) 18:47:20ID:X9kYxdVI0913nobodyさん
2006/09/02(土) 18:50:41ID:???0914nobodyさん
2006/09/02(土) 19:01:50ID:???exitをうまく使ってみますね。
0915nobodyさん
2006/09/02(土) 19:15:03ID:???dieを使うのでしょうか?
0916nobodyさん
2006/09/02(土) 19:17:07ID:???PHPでPHPできますか?
0918nobodyさん
2006/09/02(土) 20:01:33ID:18r2NV7f同数の時は元の配列の順番を維持したまま
ソートしたいのですが
どうすればいいですか?
0921nobodyさん
2006/09/02(土) 20:43:42ID:???uasortでも4.1.0以降は値が等しいときの順番は未定義となっているから、
基本的にはソートアルゴリズムも含めて自作するしかなさげ。
探したら誰かが作ってるかもしれないが。
0922nobodyさん
2006/09/02(土) 20:56:55ID:X9kYxdVIif (preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$text)) {
echo "正しいメールアドレスです";
} else {
echo "正しくないメールアドレスです";
}
というコードでは一部の携帯アドレスは適応しないそうなのですが、
どんなアドレスなのでしょうか?
0923nobodyさん
2006/09/02(土) 20:59:15ID:???現存するメールアドレスすべてを受け取る正規表現はめちゃくちゃ長かった気がする。
>というコードでは一部の携帯アドレスは適応しないそうなのですが、
j-phone時代の/を許容したアドレスのことかな?
0924922
2006/09/02(土) 21:01:19ID:???これね
http://www.din.or.jp/~ohzaki/perl.htm#Mail
0925922
2006/09/02(土) 21:05:37ID:X9kYxdVIj-phoneということはけっこう前ですね。
/を許容したアドレスについては飛ばすことにします。
0926nobodyさん
2006/09/02(土) 21:07:50ID:???$$hoge
0927nobodyさん
2006/09/02(土) 21:10:31ID:???http://www.php.net/manual/ja/language.variables.variable.php
0928nobodyさん
2006/09/02(土) 21:17:56ID:???どういう状況で使うの?
0930nobodyさん
2006/09/02(土) 21:21:34ID:???0931nobodyさん
2006/09/02(土) 21:22:23ID:???$$a = ".net";
print $a.$$a;
出力結果
2ch.net
可変変数の解釈はこれであってますか?
0932931
2006/09/02(土) 21:23:08ID:???$a = "2ch";
$$a = ".net";
print $a.$2ch;
出力結果
2ch.net
0933nobodyさん
2006/09/02(土) 21:23:20ID:???foreach ($properties as $key => $val) {
$this->$key = $val;
}
0934nobodyさん
2006/09/02(土) 21:29:51ID:???foreach($_POST as $k => $v){
if(get_magic_quotes_gpc()){
$v = stripslashe($v);
}
$v = htmlspecialchars($v);
$$k = $v;←このぶぶんがよくわかりません。どんなことをしているのでしょうか?
}
0935nobodyさん
2006/09/02(土) 21:33:35ID:???それ全体で要素をhtml出力用に加工しながらextractしてる。
http://www.php.net/manual/ja/function.extract.php
0936nobodyさん
2006/09/02(土) 21:36:25ID:???記述ミスはよく見かけたりしないだろう、ふつー。
この辺。
ttp://www.php.net/manual/ja/language.variables.variable.php
0937名無し募集中。。。
2006/09/02(土) 21:37:03ID:UdtOFEb9$_POST['test']
があったら
$test
に内容が入るってこと
0938nobodyさん
2006/09/02(土) 21:37:44ID:kbsAVdsrで、文字を置き換えたいのですが、
「、」にならずに、「≠」となってしまいます。
なぜ文字化けするのでしょうか?
0939nobodyさん
2006/09/02(土) 21:39:34ID:???可 変 変 数
が あ つ い !!
0941nobodyさん
2006/09/02(土) 22:22:02ID:???となっているとして
$hogehogeからAとE以外を削除して、
$hogehoge = "AEE";としたいのですが、
どのようにすればよいのでしょうか?
0943nobodyさん
2006/09/03(日) 00:03:46ID:???お前ら何かいる?
0944nobodyさん
2006/09/03(日) 00:13:40ID:???0945nobodyさん
2006/09/03(日) 00:15:09ID:???0946nobodyさん
2006/09/03(日) 00:35:17ID:???0947nobodyさん
2006/09/03(日) 00:37:45ID:???0950nobodyさん
2006/09/03(日) 00:42:34ID:???お前は何でプログラミングなんかしてるんだ?
別にプログラミングしなくたって別の仕事で飯は食えるよな?
プログラマになって過労とストレスで寿命をすり減らさなくたって・・・
つまりはそういうことだ。
レス数が950を超えています。1000を超えると書き込みができなくなります。