【PHP】下らねぇ質問はここに書き込みやがれ 72
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/08/16(土) 12:01:25ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 71
http://pc11.2ch.net/test/read.cgi/php/1216291372/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0019nobodyさん
2008/08/16(土) 23:10:43ID:???preg_replace('/$/', 'TAIL', 'hoge')
なら hogeTAIL だけど
preg_replace('/$/', 'TAIL', "hoge\n")
だと hogeTAIL\nTAIL
ちなみに
preg_replace('/$/', 'TAIL', "hoge\nhoge\n")
は hoge\nhogeTAIL\nTAIL
002015
2008/08/16(土) 23:59:46ID:KxVAt7PLお答えいただいた皆様、ありがとうございます。
>>16さん
fopenやrequireしてある処理を別ファイルに記述し、
それをexecで呼び出す処理をループしました。
10万回回してる時にちょっと心が折れたので1000回にしてみました。
結果・・・
fopen:2m9.952s
require:2m10.088s
でした。
10万回ループさせたらまた違ってくるでしょうが、
バッチ処理で利用する訳でもないので、運用が楽な方でいいじゃーん!
という答えになりました。
>>17さん
17さんがそう思った理由は何でしょうか?
カーネルの仕組みなどを深く理解していないので、
私では判断できませんでした・・・。
0021nobodyさん
2008/08/17(日) 00:53:18ID:???まずは環境を書けと
>>20
大差がない場合は、PHPのバージョンやコンパイル環境、読み込むファイルの長さで結果が変わってくるのでそんなの気にするな。
書きやすい方でどうぞ。
0023nobodyさん
2008/08/17(日) 02:11:08ID:???requireの方がオーバーヘッドが増加
require/includeはPHPソースとして読み込む為、Zendに渡す分遅くなる
core内ではfopenと同じ処理だからfopenの方が遅くなることは考えにくい
0024nobodyさん
2008/08/17(日) 03:53:53ID:???http://pc11.2ch.net/test/read.cgi/php/1216291372/
002518
2008/08/17(日) 05:02:21ID:???php4 でも php5 でもなるから、既知すぎるのかと書かないでしまった。めんご。
php4.4.4 と php5.2.0
>>22
カーソル位置?そのカーソル位置はどうやってこの関数で操るの?
ちなみに $ は行末ではなく、最後尾を意味します。
行末と認識されることが多いのは、sed が行単位の処理をするからです(行の最後尾 == 行末)
0026nobodyさん
2008/08/17(日) 08:41:31ID:???mb_ereg* は ereg* のラッパーじゃなく鬼車を使ってるみたいだが
なんのせいで挙動が違うのかはわかんね
詳しい人に任せるわ
preg_replace() についてはマニュアル通りの結果
http://www.php.net/manual/ja/reference.pcre.pattern.modifiers.php
> デフォルトで、PCRE は、検索対象文字列を単一の行からなるとして処理します。
> (中略)「行末」メタ文字 ($) は、文字列の最後、
> または (D 修飾子が設定されていない場合) 最後にある
> 改行記号の前のみにしかマッチしません。
で、質問の答えにはならないが
UTF-8縛りで困らないなら preg_replace() に乗り換えとけ
互換元の ereg_replace() はPHP6でPECLへ島流しだしな
002718
2008/08/17(日) 08:59:27ID:???> D (PCRE_DOLLAR_ENDONLY)
> この修飾子を設定すると、パターン内のドルメタ文字は、検索対
> 象文字列の 終わりにのみマッチします。この修飾子を設定しない
> 場合、ドル記号は、 検索対象文字列の最後の文字が改行文字で
> あれば、その直前にもマッチします。 この修飾子は、m を設定して
> いる場合に無視されます。 Perl には、この修飾子に等価なものは
> ありません。
つまり、この D を使わないと、2回マッチするっていうことみたいね。
なんだろこれ。真似した perl がおかしいのかな。
確かに、perl も hoge\nhogeTAIL\nTAIL となる。
0028nobodyさん
2008/08/17(日) 10:33:01ID:???error_reporting だと、実行された箇所しかチェックしないので、
全ての箇所を実行するテストケースをかかないといけない。
全体のチェックを一発でしてほしい。
この変数は定義されていないよ、ぐらいのチェックでもかなり楽になるのですが。
0029nobodyさん
2008/08/17(日) 11:25:11ID:???0030nobodyさん
2008/08/17(日) 12:14:08ID:???0031nobodyさん
2008/08/17(日) 12:39:38ID:???0032nobodyさん
2008/08/17(日) 13:05:11ID:???テキストファイルの行は 任意長の文字列 + (改行 or EOF) になる
利便性からそれに合わせて$は改行直前とEOFにマッチする
件の "hoge\n" は "hoge" + 改行 と "" + EOF の2行
2行だから2回マッチする、自然だろ?
>>28
動的言語の静的チェックは面倒で誰も手を出してくれない
PHPUnitのコードカバレッジ率見てニヤニヤするのが一番でしょう
0033nobodyさん
2008/08/17(日) 13:54:33ID:???そしてm(マルチライン)オプションがあれば
改行コードが除かれるから1回だけマッチっと
代わりに各行の行末が$でマッチするが・・・
003518
2008/08/17(日) 14:04:58ID:???でも "hoge\nhoge\n"
は hoge\nhogeTAIL\nTAIL になるでしょ?
hogeTAIL\nhogeTAIL\nTAIL じゃなくて。
だからやっぱり $ は最後尾と考えて
hoge\nhoge\nTAIL
になるほうが自然だと思うデス。
0036nobodyさん
2008/08/17(日) 14:21:45ID:???>動的言語の静的チェックは面倒で誰も手を出してくれない
ふーむ困ったもんだ
>>34
-l もまた違うでしょ?E_ALL のメッセージを実行していない箇所に対して出してくれるわけじゃない。
以下のコードで、hoge(); を呼ばなくても hoge(); を読んだときと同じ警告を出してほしい。
----
<?php
error_reporting(E_ALL|E_STRICT);
function hoge()
{
print $hoge;
}
?>
----
perl なら use strict; あるのにねぇ・・・。
&func(); 呼ばなくても警告。
----
use strict;
sub func {
print $hoge;
}
0037nobodyさん
2008/08/17(日) 14:23:04ID:???Phing って http://phing.info/trac/ コレ?
コレでなにかできるの?
0038nobodyさん
2008/08/17(日) 16:36:26ID:jFnyVPnSページの出力には問題ないですか?
0039nobodyさん
2008/08/17(日) 17:38:04ID:???セッションを読んだ直後でした
時間かかったらダメってことですね
何このあほな実装・・
0040nobodyさん
2008/08/17(日) 17:55:08ID:???0041nobodyさん
2008/08/17(日) 18:00:58ID:???しかしgoogleでリダイレクトさせればこれを回避できます
それをphpスクリプトでやりたいのですが
どのようにすればよいでしょうか?
ちなみに自分のHPなのですがサーバー側が勝手に直接リンクを弾いているんです
リファラ偽装してアクセスできますでしょうか?
0042nobodyさん
2008/08/17(日) 22:18:28ID:???http://***.com/というサイトをカウントする場合にhttp://***.com/?abcのように
リンク先に飛ばす前に自サイトでクリック情報を通してからだとURLがすっきりしないので、
じかにhttp://***.com/に飛べて且つクリック数をカウントしたいのですが。
説明が下手ですいません、よろしくお願いします。
0046nobodyさん
2008/08/17(日) 22:49:07ID:???phpを埋め込みたいんかな
0047nobodyさん
2008/08/17(日) 23:07:11ID:???シングル/マルチラインモードによらない
文字列の始端終端にマッチするための
\A \z がちゃんと用意されてる
$が用意された意図と>>18のやりたい事が合わないだけ
0049nobodyさん
2008/08/18(月) 02:04:33ID:???それでもpregで\A \z を使うのが賢いな
意図しない動作は避け、確実な方を取ればいいし
深く追求する必要性があるなら別だが
0050nobodyさん
2008/08/18(月) 04:13:57ID:???アホなこと思いついた!
アンカーにonclickイベントを入れてxmlhttprequestでカウントアップする。
0051nobodyさん
2008/08/18(月) 04:32:40ID:???0052871
2008/08/18(月) 12:34:01ID:GttUmTGHphp5を使用しています。
function fnc(
$a = ""
){
〜
}
このような普通のファンクションについてなのですが、
・fnc();
引数が何も送られていない
・fnc($test);
testと言う変数が送られているが、中身は未定義
・$test = "";
fnc($test);
testと言う変数が送られているが、中身は初期化
このように引数を送った場合、それぞれの状態を$aで判断することはできますでしょうか?
ドキュメント等にて調べてみたのですがこのような変数に関する微妙な扱いは見受けられませんでした。
何卒宜しくお願い致します。
0053nobodyさん
2008/08/18(月) 12:55:42ID:???0055nobodyさん
2008/08/18(月) 15:25:11ID:3TodphYx現在、便利なphpの開発環境を教えて頂けませんでしょうか?
特に不自由がなかったので、4年も同じものを使っているのですが、
もっと便利なものがあれば、乗り換えたと思っています。
有償でも5万円位までなら出してもいいと思っています。
不自由がないと書きましたが、あえて言えば実行しながらデバックが出来ないことです。
当時のeclipseでもプラグインはあったのですが、どうもうまく動作せず、
結局、echoとexitを使ってデバックしています。
ちなみに、eclipse2.1.3です。多分、古いと言われるかもしれませんが。
0056nobodyさん
2008/08/18(月) 15:32:10ID:???0057nobodyさん
2008/08/18(月) 15:34:49ID:???そんな長文書く前にバージョンアップしようよ
http://www.eclipse.org/pdt/
0058nobodyさん
2008/08/18(月) 15:49:52ID:???無償IDEのバージョンうpもできない人間は開発やめちまえ
0059nobodyさん
2008/08/18(月) 16:31:51ID:xd5mcyZy0060nobodyさん
2008/08/18(月) 16:39:22ID:xd5mcyZyもちろんPHPのインストールです。
0061nobodyさん
2008/08/18(月) 16:44:24ID:s6NDbHja俺も3.4+pdtが良いと思う
phpeclipse遅すぎてつらい
pdtもバージョン2からかなりよさげ
あと金出すならzendとかnetビーンズ?
0062nobodyさん
2008/08/18(月) 16:47:22ID:???関数外の事を知ろうとするのが間違ってるだろ
もし$aの状態を知りたいのであればis_nullとか === ''とか使えば良い
0064nobodyさん
2008/08/18(月) 18:18:56ID:xd5mcyZyすいません。
Linux版の質問スレに書いてしまいました。
あっちでも反応は得られていませんが、、、。
http://pc11.2ch.net/test/read.cgi/linux/1217051698/676
この後、PHPをソースでインストールしてみましたが、やはりだめでした。
・ httpd.confを編集(以下の2行)
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
・ httpd再起動
の他に特に設定することってありますでしょうか?
0065nobodyさん
2008/08/18(月) 18:30:40ID:xd5mcyZyキャッシュ見てたあああああああああああああああああああああああああああああああ
0066nobodyさん
2008/08/18(月) 18:31:09ID:???yumはどのパッケージを使ったかとか、参考にしたサイトがあるか、とか
やったことについて書いた方がいい
ぱっと思いつくのはApacheモジュールになってないパッケージを使ったってことか
まずはApacheインストールディレクトリのmodulesにlibphp5.soがあるかどうかの確認だな
L板ほっとくとマルチになるから注意だぜ
0069nobodyさん
2008/08/18(月) 20:59:21ID:3TodphYxレスありがとうございます。
ecplipse使っている人が多いので、安心しました。
バージョンアップが面倒だったのですが、
コードインスペクタもついていると知って、
週末にでもバージョンアップしてみます。
毎回、関数名が分からずに正引きしていたので、助かります。
お世話になりました。
0070nobodyさん
2008/08/18(月) 21:11:47ID:???いや、あなたがEclipseを使っているのでアドバイスしただけで、
今時Eclipseを使っている人は余程の物好きです。
あんなに重くて、メモリーを食うプログラムを
デバック処理をしようとするとすぐに固まって、
業務には使い物にならないよ。
海外で英語が苦手じゃないならx-php-laboとかおすすめだが。
0071nobodyさん
2008/08/18(月) 21:40:29ID:???コードの打ち込みが半分以下になるから、
俺も愛用している。誰か日本語のパッチ作らないかなあ。
0072nobodyさん
2008/08/18(月) 23:00:39ID:RVA7Wvm+男なら手打ちでいこうぜ
0073nobodyさん
2008/08/18(月) 23:27:41ID:???0074nobodyさん
2008/08/18(月) 23:39:56ID:???0076nobodyさん
2008/08/19(火) 01:26:11ID:???・fnc($test);
testと言う変数が送られているが、中身は未定義
呼び出し側でエラー出ないか?
fnc(""); とfnc()の区別はつけられないと思う。
というか区別しないように$a=""と書くのではないだろうか?
0077nobodyさん
2008/08/19(火) 02:17:55ID:???0078nobodyさん
2008/08/19(火) 08:52:10ID:???しかし、JavaはSunだろ。それに対してEclipseは元々ライバルのIBMの製品。
それでも、使うのかよ。
0079nobodyさん
2008/08/19(火) 09:02:07ID:???>>76
Notice非表示なら何もでない
そもそもNULLという物がある事は知ってるか?
function fnc($a=""){
if(is_null($a)){
echo "ヌル";
}else{
echo "ストリング";
}
}
0080nobodyさん
2008/08/19(火) 09:14:32ID:+fWBJARSfunctionにreturnメソッドがないと気持ち悪いと感じて、
いつも
return NULL;
としているのですが、
やはり変ですか?
0081nobodyさん
2008/08/19(火) 09:21:35ID:???returnなしでvoidになるから深く気にしない方がいい
どうしても返したいなら成功時true、失敗時falseみたいにしてはどうか
少なくともNULLはないと思う
0082nobodyさん
2008/08/19(火) 09:36:03ID:+fWBJARSお返事ありがとうございます。
phpの場合、型があいまいで、コンパイルエラーもない
値を返却しないとセキュリティー的にまずいかなぁとも思ったのですが、
true/falseならいいですね。それで実装してみます。
ありがとうございます。
0083nobodyさん
2008/08/19(火) 10:36:47ID:???0084nobodyさん
2008/08/19(火) 11:07:28ID:???ハイライトくらいしか求めるものがないから、軽量なのを選択したって感じ
一応コード補完も自動じゃないにしろあるし(ctrl+space
eclipseの機能の豊富さと拡張性はいいな
メモリ食いなのがどうもなぁ・・・JavaのGCが嫌いと言う個人的な意見だが(スレ違い割愛
0085nobodyさん
2008/08/19(火) 11:43:59ID:???個々ファイルをちまちま編集するのに結構便利だったりするんだよね。
逆に得意とすべきプロジェクト部分が弱い感じ。。
Zend Studioの新版はEclipseベースでプロジェクトメインって感じだから乗り換えるにはちょっと勇気がいる。
0086nobodyさん
2008/08/19(火) 12:02:03ID:???一括して他のクラスが参照しているメソッドの名前を修正してくれたり、
警告を出してくれるようなものはないのかな?
実行時に参照してやっとエラーが出るのが、ちょっっと。
0087nobodyさん
2008/08/19(火) 12:15:32ID:???0089nobodyさん
2008/08/19(火) 12:18:53ID:???0090nobodyさん
2008/08/19(火) 12:26:25ID:???だったら楽になるのを作ればいいんじゃね?
0093nobodyさん
2008/08/19(火) 12:42:32ID:???ほっとけ、どうせ>>90は暑さで頭がおかしくなっているか、もしくは元々おかしい。
なんでも自分でやろうして自滅するタイプ。
他人の作った物を信用せず、自分が一番だと思っているんだろ。
つまり、猜疑心が強く、逆にいえば、自己顕示欲が強い奴だ。
この手のタイプはプログラマーに多いが、
こういう奴は、大概ドキュメント書くのが下手。そしてプログラムにもコメントを書かない。
三項演算子を多用してプログラムを短くことに執着心と美学を感じている。
うざい、うざすぎる。暑いのが、更に暑くなる。
0094nobodyさん
2008/08/19(火) 12:43:42ID:???0096nobodyさん
2008/08/19(火) 12:59:50ID:???それはともかく、面倒なのも嫌、作るのも嫌なら自分で探してくるか
お金を払って誰かに作ってもらいなさいね
もしかして自分で探すのも時間がかかって本末転倒?
0098nobodyさん
2008/08/19(火) 13:13:43ID:???> レッテルを貼りたいお年頃ってやつですね、わかります
お前自身がレッテル貼ってんじゃんw
自己矛盾にも気づかないんだろうなぁ。それとも新手の釣りですかw?
0099nobodyさん
2008/08/19(火) 13:28:58ID:???0100nobodyさん
2008/08/19(火) 13:47:24ID:???文章書く時に癖に気をつけないとね
0101nobodyさん
2008/08/19(火) 15:10:20ID:???希望を満たしたIDEを知ってるなら教えてやればいいし、ないならないでいい
まとめ厨の俺乙
0102nobodyさん
2008/08/19(火) 15:35:33ID:???$array = array(
1 => array("田中", 38),
2 => array("吉田", 67),
3 => array("渡辺", 11),
);
これを数値の低い順番に
$array = array(
3 => array("渡辺", 11),
1 => array("田中", 38),
2 => array("吉田", 67),
);
のようにソートしたいんですがどのようにすればよいのでしょうか
0104nobodyさん
2008/08/19(火) 15:37:43ID:2hCJvM5XPHP 5.2.1を使用しています。
$handle = file("http://www.yahoo.co.jp/");
を実行すると
Warning: file(http://www.yahoo.co.jp/) [function.file]: failed to open stream: HTTP request failed! <!doctype html public "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> in C:\Program Files\xxxxx\xxxxx\test.php on line 2
とエラーになります。
php.iniのallow_url_fopenはOnです。
どうすれば外部urlを読み込めるのでしょうか?
何卒宜しくお願い致します。
0105102
2008/08/19(火) 15:39:03ID:5mUkQ2xD宜しくお願いします。
0107104
2008/08/19(火) 15:54:09ID:2hCJvM5Xxamppです。
0108nobodyさん
2008/08/19(火) 16:02:11ID:???0110nobodyさん
2008/08/19(火) 16:28:03ID:???0112nobodyさん
2008/08/19(火) 17:08:24ID:rbkh+xPC0113nobodyさん
2008/08/19(火) 17:09:43ID:???phpinfo()で「Registered PHP Streams」にhttpはあるのか?
>>102
多次元配列だな
array_multisortを使え
数値列を1次元配列で取得してarray_multisortの最初の引数にSORT_ASCフラグと一緒に指定
第2引数に元の配列を入れる
これで出来んか?
0114nobodyさん
2008/08/19(火) 17:15:36ID:???header関数が使えないってどういう状況だろう
既に送信済みなんじゃないのか?
スーパーグローバルも使えるはずだが・・・
var_dump($_GET);とかで見れないか?
まさかregister_globalsのことじゃないだろうな
0115nobodyさん
2008/08/19(火) 17:23:40ID:VxtPs/tVどうしたらいいんでしょうか。
0116nobodyさん
2008/08/19(火) 17:26:20ID:???http経由か?
それなら 「ttp://ユーザ名:パスワード@ドメイン/URL」でイインダヨー!!
ユーザ名とパスワードをrawurlencodeするのを忘れんな!
0117nobodyさん
2008/08/19(火) 17:42:25ID:???----index.cgi-----------
#!/usr/local/bin/php
Content-type:text/plain
<?php phpinfo();
------------------------
こういう状況です
phpは5.2.6でコンパイルオプションに--enable-force-cgi-redirectをつけてみたりしましたが、headerではなくContent-typeをそのまま書かないと動きません。
0118nobodyさん
2008/08/19(火) 17:53:10ID:???--enable-force-cgi-redirectはモジュール版からCGI版へのリダイレクトだから関係ないっと
普通は一行目の宣言でphpにスクリプトが渡されるからphpで処理されるよな
Content-typeはブラウザへの宣言だからぶっちゃけPHPとは関係がなかったりする
さぁどこに原因があるか分かるやつカモン!
■ このスレッドは過去ログ倉庫に格納されています