【PHP】下らねぇ質問はここに書き込みやがれ 26
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/08/07(月) 13:11:50ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレは>>2-10 関連スレは>>4-10 FAQは>>6-10 辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0773nobodyさん
2006/08/19(土) 10:09:01ID:???'w' を使いたい処理の場合も、 '+r' で開き、ファイルロックしてから、トランケイトして
ファイルサイズを0にし、ファイル先頭から書き出すのがもっともよいとされている。
これは、fopen を w で開いた直後、ロックの処理をする前にファイルサイズが0になってしまうため、
この間に別プロセスがファイルをreadすると、空のファイルを読んでしまうことになるからだ。
+r で開いてからロックすれば、この間はファイルのデータは保たれているため、
上記のようなデータの損失が発生することはない。
0774nobodyさん
2006/08/19(土) 10:11:52ID:???r+とかa+使った方が無難ってだけじゃないの?
あとバッファはset_file_bufferで0にしたほうがいいね
fileは読み込むだけでファイルの更新自体はしないし関係ないと思うよ
0775nobodyさん
2006/08/19(土) 10:12:48ID:???0776nobodyさん
2006/08/19(土) 10:20:51ID:???まあ表示だけならデータが表示されないだけで問題なさそうかと思われるけど、
どうせだったらそんなことが起こらない方法で書いた方がいいに決まっている。
HTMLにデータ込みのフォームを書き出す処理の中でデータが抜けて、
そのままそのフォームを登録してしまう(必須でない項目が抜ける可能性)や、
rで読んでレコードを編集したあと、あらためて wで開いてレコードを書き出す、
その上に処理のロックをかけていない、などの Let's PHP みたいな不備のあるソースを書くと
データが消えてしまう恐れがあるね。
0780nobodyさん
2006/08/19(土) 11:49:35ID:9NEEnAjJ当然といえば当然なのですが、こういったタグを置き換えるような仕組みを作った場合に、上のような現象を回避する方法はありますか?
0781777
2006/08/19(土) 11:56:01ID:???撒き餌がたらなかったらしい。
0784nobodyさん
2006/08/19(土) 13:02:53ID:???どういう正規表現使ったんだ?
普通に [a] と [/a] ではさまれた文字列を<a>タグのhref属性に変えるような仕組みであればそんなおかしなことにならないはずだが。
0786nobodyさん
2006/08/19(土) 14:04:04ID:???適当だけど
$str = "[a]http://www.test.com/[/a][/a][a]aaaa[/a";
var_dump($str);
$str = preg_replace("/\[a\](http:\/\/.+?\..+?)\[\/a\]/", "<a href=\"$1\">$1</a>", $str);
var_dump($str);
0787nobodyさん
2006/08/19(土) 14:46:12ID:kKZJT4No1.shift-jisのファイルを用意する
2.print mb_convert_encoding( file_get_contents( そのファイル ) ,'EUC-JP');
こういうのを作ってブラウザで再読み込みを続けると、どういうわけか
入力もプログラムも全く変えてないのに、ちゃんと変換したり、しなかったりと動作が変わります。
これじゃ危なっかしくて怖いんですけど、こういうものなのですか?
winXPとPHP 5.0.3 (cli) (built: Dec 15 2004 08:07:57)です。
0788nobodyさん
2006/08/19(土) 14:49:16ID:???そういうものです。
ヤフーのトップページでさえ、たまに文字化けして表示されることがあります。
ブラウザ側のバグでしょう。
0789nobodyさん
2006/08/19(土) 14:50:17ID:???>これじゃ危なっかしくて怖い
ブラウザに何か出力する前にきちんとヘッダを送信してやれボケ。
HTTPの知識もPHPの知識もロクに勉強もせず、危なっかしいのはお前のほうだチンカス。
0791780
2006/08/19(土) 14:51:58ID:9NEEnAjJ正規表現はよくわからないので、str_replaceを使いました。
[a]があったら<a href="に置き換えて、[/a]があったら">〜〜</a>にしてとか、そんなしょぼい実装です。
783さんのような、検査のロジックを組み込みたいと思います。
ありがとうございました。
0795787
2006/08/19(土) 14:59:16ID:kKZJT4Noいや、ソースを読むとソースが化けている(というか元のままだったり、変換されてたり)で。
ブラウザの問題はとりあえずないものとして。
>794
そこ…なのかな?
それにしても、再実行ごとに毎回違った結果がでてくるものなのですか?
0798764
2006/08/19(土) 15:09:12ID:???ググってみたのですが、分かりませんでした
できれば負荷のかからない方法で検討したいです
お願い致しますm(_ _)m
0799nobodyさん
2006/08/19(土) 15:16:58ID:???FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #16069 [ext/iconv/tests/bug16069.phpt]
iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
#16069は「ミリバールミリバール(°Д°)」ていう文字が沢山入ってて何かEUC-JPのテスト?のようなファイルでした。
ググると同じファイルでfailedを出してるものが見つかりましたので特に気にする必要はないファイルでしょうか。
よろしくお願いします。
環境:FedoraCore3 PHP5.1.4→5.1.5へ変更中に発生
0800nobodyさん
2006/08/19(土) 15:24:26ID:???よくわからん
ミリバールミリバール(°Д°) ってwwwww誰だよ犯人はwwwwww
0801nobodyさん
2006/08/19(土) 15:52:26ID:???0802nobodyさん
2006/08/19(土) 15:53:07ID:???0803nobodyさん
2006/08/19(土) 15:54:06ID:???結局そのままインストールしました。
とりあえず無事にバージョンがあがりましたので気にしないことにします。
一応証拠?です。
つ【http://vista.xii.jp/img/vi5597040543.gif】
0804nobodyさん
2006/08/19(土) 15:54:51ID:???エラーは出なかったけど
なぜギコ猫を使ったのかと小一時間(ry
0805nobodyさん
2006/08/19(土) 15:56:35ID:???6まだー?
PHP6の主な変更点
Javaと統一されますた。以降Javaをお使いください。
0806803
2006/08/19(土) 16:00:02ID:???イマイチよくわかりませんがセットで
>iconv stream filter [ext/iconv/tests/iconv_stream_filter.phpt]
も失敗しているのでやや気になります。
試しにphpinfoを開くとiconv関数は「enabled」でした。
何が原因なのかソースを見た限り皆目検討がつきません。。。モナーではなくギコ猫なのが原因なのでしょうか。
0807nobodyさん
2006/08/19(土) 16:19:51ID:???サーバーが見つからないとエラーが出るようになりました。
しかしローカルで実行するとエラーがでず、原因がわかりません。
$xml = simplexml_load_string($content);
$xml->registerXPathNamespace('aws', 'http://webservices.amazon.com/AWSECommerceService/2006-05-17');
$result = $xml->xpath('//aws:RequestId');
phpのバージョンはレンタルサーバーが5.1.4でローカルも5.1.4です。一体何が原因なんでしょうか?
0808nobodyさん
2006/08/19(土) 16:54:36ID:???$host = "example.com"
$uri = "/bar/foo.txt"
$header = "Host: ${host}\r\n";
$header .= "Connection: Close;\r\n\r\n";
$fp = fsockopen($host, 80, $errno, $errstr);
if (!$fp) {
exit;
}
fputs($fp, "HEAD ${uri} HTTP/1.1\r\n");
fputs($fp, $header);
while (!feof($fp)) {
echo fgets($fp, 128);
}
こんなの
0809nobodyさん
2006/08/19(土) 16:55:21ID:???0811nobodyさん
2006/08/19(土) 17:08:04ID:+ytFUBf1fopen() でテキストファイルを作っていくプログラムを作りたいのですが、
htmlフォームからユーザーにテキストを入力させ、その内容をファイルに反映せさたいのです。
$fp = fopen("./test.txt","w");
fwrite($fp,"This is file write test.\n");
fclose($fp);
ここまでは理解できるのですが、
問題はこれをどうやってhtmlフォームと連携させるのかということです。
どの当たりを勉強したらよいか解らず、苦戦しています。
解るかた、ヒントだけでも頂けたらと思います。
よろしくお願いします。
0812nobodyさん
2006/08/19(土) 17:11:01ID:???0813nobodyさん
2006/08/19(土) 17:13:33ID:???http://www.php.net/manual/ja/tutorial.forms.php
0814nobodyさん
2006/08/19(土) 17:24:32ID:???いったん配列なりに入れて
チェック入れろ
0815nobodyさん
2006/08/19(土) 17:31:25ID:???>そこ…なのかな?
人様のアドバイスを実行・確認もせずに批判するぐらいなら
質問なんかしないで自分で解決しろボケカス。
0816nobodyさん
2006/08/19(土) 17:38:38ID:???現在、クライアントPC(Windows)にDreamweaverをいれて、そこからFTPで
ローカルの開発環境サーバー(linux)に直接
アクセスして開発しています。チェックは直接ブラウザからローカルIPを
叩いて確かめています。サービスが動いている本番サーバはまた別に存在します。
ただ、開発効率の悪さを実感しています。そこで
eclipse+phpeclipse に開発環境を変えようと思っていますが
クライアントPCにもphp+mysql+apacheをいれる必要があり、そうすると
ローカルのlinuxサーバーの意味があまりありません。
できれば、テストサーバ側のファイルを直接いじりつつ
デバック等もできればと思っていますが、こんな私に向いている
開発環境はなんでしょうか。
eclipse+phpeclipse+PHP/dbg というものもあるらしいですが。
# smarty+phpフレームワークも導入予定。
# バージョン管理はsubversion予定。
0817811
2006/08/19(土) 17:42:37ID:+ytFUBf1813を勉強してきます。
>>814
解らなければまた質問させてもらうかもしれません。
0818nobodyさん
2006/08/19(土) 18:00:02ID:???>>ローカルのlinuxサーバーの意味があまりありません。
んなことないでしょ、チームで開発するんだったら
担当部分を自分のPC内でまずコーディング・テストして
全員が利用するテストサーバで結合テストするのがいいんじゃないの
逆にテストサーバで直接いじってて他の人がテストしようとしたら
いじってたせいで動かない、とかで開発効率が悪くなってたりしない?
開発環境はソフト変えりゃいいってもんじゃない、やり方の問題と思う
0819nobodyさん
2006/08/19(土) 18:01:19ID:yXlsOUGI多い場合TEXTのNAMEなどを簡単に管理できる方法ってありますでしょうか??
皆さんはどのようにしていますか?ご教授お願い致します。
0820nobodyさん
2006/08/19(土) 18:15:30ID:???smartyを噛ませてジェネレートしてる。
フォーム、DBアクセス、詳細表示のページで同じ一覧のファイル
を使うようにしとけばらくちん。
便利なツールやライブラリは他の人の解説に譲るます。
0821nobodyさん
2006/08/19(土) 18:31:52ID:???なんかメンドイだけであんまり使えるような気がしない
0822nobodyさん
2006/08/19(土) 19:11:56ID:???0823nobodyさん
2006/08/19(土) 19:40:53ID:m4Ae+hcOttp://php.s3.to/man/types.comparisons.html
これを読むとempty()とisset()では、見分けることができません。
$x = "";---->FALSE
$x = NULL--->FALSE
$x = 0;----->TRUE
$x = 1;----->TRUE
のように見分けるには、どうしたらよいのでしょう。
0825nobodyさん
2006/08/19(土) 19:46:39ID:???if (strlen($x))
0828nobodyさん
2006/08/19(土) 20:04:45ID:m4Ae+hcOありがとうございます。
要は""とNULL以外はTRUEを返すのを、簡単に表記したかったんです。
===を使うと
if (!($x === "" or $x === NULL)) {
こんな感じになって冗長かなぁと、、、
>>825
下のを使うと
if (strlen($x) != 0) {
こんな感じですか?
0829nobodyさん
2006/08/19(土) 20:08:35ID:???0830nobodyさん
2006/08/19(土) 20:30:15ID:???if (strlen($x) != 0)
if (strlen($x))
一緒、strlenの戻り値はint
0831nobodyさん
2006/08/19(土) 20:31:14ID:???0832831
2006/08/19(土) 20:32:36ID:h+QG0TQi0833nobodyさん
2006/08/19(土) 20:51:20ID:???id を メルアドにするか 任意な文字列にするか迷ってます。
メルアドのほうが管理がらくだと思いますが、どちらが良いでしょうか。
0835nobodyさん
2006/08/19(土) 21:12:39ID:???・任意の文字列
サイト側としては個人情報を入力させたりDBに持たなくても済む
ユーザ側としては登録はしやすいが忘れやすい
ID忘れちゃうとリマインダはメール送ってもらうしかない
・メールアドレス
ユーザ側としては忘れにくい
ただ信用できるかどうか微妙なサイトには入力したくない
個人情報を抱えるリスクは生じる(メリットもある)
ちょっとしたツール的なサイトなら文字列ID、
ECとかメールアドレス必要前提のサイトならメアドかなあ
0836nobodyさん
2006/08/19(土) 21:18:27ID:???$hoge[5]="追加";
とかやると元々あった要素が削除されちゃいますよね?
http://210.143.110.132/~php/man/ref.array.html
ここを読んでも実現できそうな関数は見あたらなかったのですが…
0839nobodyさん
2006/08/19(土) 21:32:12ID:???setXXXやgetXXXなどのメソッド名はよく有りますが、
あるプロパティの値をtrueにする為のメソッド名はどのようにつけるべきだと思いますか?
とりあえずsetXXX(true)としてますが、デフォルトがfalseのためそのメソッドを呼べばtrueになるようにしたいのです。
引数でtrueを渡さないとなると、やはりsetXXXでは変な気がします。
そのプロパティをpublicにすればいいのですが、今回の場合それは微妙な感じですので。
0840nobodyさん
2006/08/19(土) 21:35:09ID:???0841nobodyさん
2006/08/19(土) 21:36:59ID:???0843839
2006/08/19(土) 23:20:58ID:???なんでそれが頭に浮かばなかったのか・・・あぁ、やっぱり頭が悪い。
本当にありがとうです。
0844nobodyさん
2006/08/20(日) 01:41:59ID:???eclipse+phpeclipse+PHP/dbg+Samba+subversionでやってます。
一人自宅でだけど。
統合開発環境スレは無くなっちゃったのかな?
0846nobodyさん
2006/08/20(日) 09:30:48ID:???ファイルの更新日時の取得ってどうやるんですか?
0848nobodyさん
2006/08/20(日) 12:35:12ID:???0849nobodyさん
2006/08/20(日) 12:38:20ID:???0850nobodyさん
2006/08/20(日) 12:38:49ID:???0851nobodyさん
2006/08/20(日) 12:40:10ID:O6c5lrE6test.php
<?php
echo "<!-- test -->\n";
?>
index.php
<?php
require('test.php');
?>
で、実行すると
<!-- test -->
と出力されるはずが
?<!-- test -->
となってゴミが付いてしまいます
レンタルサーバでもテスト環境でも結果は同じです
バージョンはともに4.4.2
0852nobodyさん
2006/08/20(日) 12:51:23ID:O6c5lrE6実害は無いのですが、精神衛生上よろしくないので
回避する方法、間違い等あれば教えてください
0853(^ω^)
2006/08/20(日) 12:54:40ID:???UTF-8じゃなかったらごめんね
0854nobodyさん
2006/08/20(日) 13:07:49ID:???べつの作業でツールの文字コード設定変えたままでした
ありがとうございました
0855nobodyさん
2006/08/20(日) 13:22:45ID:???gethostbynameはコアに含まれるのでPHP的には使える。
ただし、サーバからniku.2ch.netに向かってのDNSポートが閉じていると当然使用不可能
0856nobodyさん
2006/08/20(日) 13:44:58ID:???大抵の言語はDNSにアクセスできるでしょ?
つまり言語に依存しないってこと
0857nobodyさん
2006/08/20(日) 13:47:02ID:???0858nobodyさん
2006/08/20(日) 13:50:18ID:???0859nobodyさん
2006/08/20(日) 15:37:42ID:SEQXzGDk0860nobodyさん
2006/08/20(日) 16:51:11ID:???http://pc8.2ch.net/test/read.cgi/unix/1014614044/
http://pc8.2ch.net/test/read.cgi/unix/1000484092/
http://pc8.2ch.net/test/read.cgi/unix/1059971117/
http://pc8.2ch.net/test/read.cgi/unix/999837578/
http://pc8.2ch.net/test/read.cgi/unix/1007136614/
http://pc8.2ch.net/test/read.cgi/db/1057289721/
0862nobodyさん
2006/08/20(日) 17:55:18ID:SEQXzGDk0863nobodyさん
2006/08/20(日) 18:17:57ID:???hoge
└hoge1
└foo1.php
└hoge2
└foo2.php
というフォルダの構成だとして、foo1.phpから
foo2.phpに書かれたクラスを利用するには
foo2.phpをfoo1.phpでrequireしないとだめでしょうか?
php.iniでパス設定しないという前提で。
0864nobodyさん
2006/08/20(日) 18:29:26ID:???なんでそんな依存関係のあるクラスがhoge1とhoge2で分けられてるんだろ、という気がするが、
foo1をrequireするプログラムでfoo2もお約束としてrequireする、というのはダメか?
0865nobodyさん
2006/08/20(日) 18:58:00ID:???クラスのことが全然わかってないんですが、そもそも
PHPのクラスパスってどうなってるんでしょうか?
基本的にrequireしてからじゃないとクラス利用できない…なんてことは
ないようですし、php.iniのincludeで設定したパスのところに
置かないとクラスを読み込めないんでしょうか?
ほんとにくだらないレベルで申し訳ないですが、この辺説明した
書籍ってなかなかなくて…
0868nobodyさん
2006/08/20(日) 19:17:53ID:???0870nobodyさん
2006/08/20(日) 22:23:49ID:???フレームワークで自動で読み込まれるのは
http://www.php.net/manual/ja/language.oop5.autoload.php
を利用したり、iniで設定されたものを事前に読み込んだりしている。
0871nobodyさん
2006/08/21(月) 00:59:41ID:???0872nobodyさん
2006/08/21(月) 01:03:13ID:???それともプログラム中から呼び出すor書き込む等、必要に応じて
その都度セッション・ファイルから読み出し・書き込みされて、
スクリプトの終了と共にメモリから解放されるの?
■ このスレッドは過去ログ倉庫に格納されています