【PHP】質問スレッド Part8
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/04/14 00:52ID:???http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ及び注意事項等は、アフォが居なけりゃ >>2-4
0002nobodyさん
03/04/14 00:52ID:???Part1 : http://ebi.2ch.net/php/kako/982/982687820.html
Part2 : http://pc.2ch.net/php/kako/1003/10032/1003283567.html
Part3 : http://pc.2ch.net/php/kako/1013/10139/1013919792.html
Part4 : http://pc.2ch.net/php/kako/1022/10229/1022999539.html
Part5 : http://pc.2ch.net/php/kako/1031/10317/1031721334.html
Part6 : http://pc2.2ch.net/php/kako/1038/10389/1038988518.html
Part7 : http://pc2.2ch.net/test/read.cgi/php/1044478561/
0003nobodyさん
03/04/14 00:53ID:???■ 【PHP】初心者コーナー 2 Released
http://pc2.2ch.net/test/read.cgi/php/1048442813/
■ PHP アップグレード報告スレッド
http://pc2.2ch.net/test/read.cgi/php/987259309/
■ PHP + MySQL
http://pc2.2ch.net/test/read.cgi/php/983250751/
■ PHP + PostgreSQL
http://pc2.2ch.net/test/read.cgi/php/983128806/
■ PHP 関連の書籍 (但し PHP 出版系お断り)
http://pc2.2ch.net/test/read.cgi/php/985315574/
0004nobodyさん
03/04/14 00:53ID:???4.2.0以降はデフォルトでregister_globalsがoffになっています。
POST, GET等で渡される値には
グローバル連想配列
$HTTP_ENV_VARS
$HTTP_GET_VARS
$HTTP_POST_VARS
$HTTP_COOKIE_VARS
$HTTP_SERVER_VARS
でアクセスしてください。
※注意2
header()でContent-Typeを出力すると、mb_output_handlerが無効になります。
ini_set('default_mimetype', 'text/html');
とすることで回避できます。
つーか、マニュアルとか読んでください。おながいします。
0005nobodyさん
03/04/14 00:54ID:???Part6を参照しますタ。
0007nobodyさん
03/04/14 20:35ID:ncj+nVRDPHPで文中日本語を含むテキストファイルを出力しようとしているのですが、
出力ファイルをEUCにするには、どうすればいいでしょうか?
$fp = fopen("mona.txt", "w");
$text = mb_convert_encoding("オマエモナー", "EUC");
fwrite($fp, $text);
fclose($fp);
こんなふうにしてるんですけど、ダメぽです。
0011nobodyさん
03/04/14 20:56ID:???0012nobodyさん
03/04/14 20:58ID:???>PHP マニュアル>LIIマルチバイト文字列関数(mbstring)
熟読しる!
00137
03/04/14 21:46ID:ncj+nVRD>8
fwriteは、書き込みバイト数は、省略できるよ。ね?
>10
「 I } G i [」
こんな感じでバケてます。(括弧は除く)
>11
すんません。EUC-JPでしたね。でも結果は同じです。
>12
これから熟読しますけど、mbstringってphp.iniの設定じゃなかったでしたっけ?
いや、よく読んでないのにレスしちゃって悪いんですけど、出来れば現在の環境の
ままプログラムで出力のファイル形式を変更したいんです。
とりあえず、熟読してみます。ありがとー。
0014nobodyさん
03/04/14 21:55ID:???00157
03/04/14 22:06ID:ncj+nVRD秀丸ですけど、問題ありですか??
ちなみに、EUS, SJISどちらで開いても上記のように化けます。
0016nobodyさん
03/04/14 23:09ID:???00177
03/04/15 01:13ID:bH92p3xSサンクスコです!!
ばっちりうまくいきました!
変換前のフォーマットをちゃんと指定しないと不定になるということでしょうかね。
指定なしで、デフォルトのフォーマットを変換してくれると思ってました。
解決はしましたが、詳しいことをご存知でしたら、ぜひ教えてください。
ありがとうございました。
0018nobodyさん
03/04/15 04:51ID:???マニュアルをちゃんと嫁
http://jp.php.net/manual/ja/function.mb-convert-encoding.php
> 省略時のデフォルトは内部文字エンコーディングです。
0019nobodyさん
03/04/15 10:12ID:qTByL+rdバージョンアップはしなくても平気でしょうか?
なんか最新バージョンにするのが怖いそうで、
サーバー管理者がバージョンアップしてくれません。
002119
03/04/15 12:30ID:???セキュリティーが保障できないからパッチを当てる事はできないと
いわれてしまいました。
とりあえずマニュアル読んでくださいと伝えるだけ伝えておきましたけど、
どうなることやら。
002319
03/04/15 16:11ID:???一応管理者にクレームっぽく伝えたんですよ、
「古いバージョンだからセキュリティホールやバグがあると聞いたので、
新しいパッチをあててくれませんか?」
んで、返答が
「新しいバージョンはセキュリティーが不十分のため、
保障の対象外になってしまいますので、導入はできません」
と言われますた。
正直、俺も深くPHPのバージョンに詳しいわけではないので、
それ以上突っ込みは入れられませんでした。
4.0.6以降のパッチを当てる事で、なにか不具合があるのでしょうか…
それとも、ただ向こうのサーバ管理会社の怠慢でしょうか…
0024nobodyさん
03/04/15 16:13ID:???つーかお前もマニュアル読め(w
すくなくともバージョンアップして欲しい理由を明確にしてから要請するべきだ。
まー管理者の怠慢だとは思うけどな。
002519
03/04/15 16:20ID:???バージョンあげて欲しい理由が、
「拾ったスクリプトが使えないから」
だけなんです…
0026nobodyさん
03/04/15 16:42ID:???借り鯖なら面倒だろうな。セキュリティ云々よりregister_globalsがonを前提に
書いているやつが、他のユーザに居るだろうから。
あっ、register_globalsがonでも$_POSTとか使えたっけかなぁ。
で、その拾ったスクリプトもregister_globalsの関係ぽいので、そこを
弄れば動くんじゃないかい。
002719
03/04/15 16:58ID:???4.1以前のバージョンでも使えるように改造はできたですよ。
けど今後のことを考えたら、最新とは言いませんが、
パッチは当ててって欲しいなと思って…
なんか質問してる話がずれてっているので戻してみます。
4.0.6以降のバージョンにする(パッチを当てる)ことによって、
不具合が生じてしまうことがあるのかどうか、
バージョンアップしないことによって、セキュリティーに不安があれば、
管理会社の言ってることに矛盾が出てくるので、そこを突いてみようかなと。
マニュアルには細かいバージョンアップの事が日本語で載ってなかったので、
教えていただけると助かります。
英文ではあったんですが、翻訳ソフトかけてもうまく訳してくれなくて…
0028nobodyさん
03/04/15 17:21ID:???4.0.6でセキュリティパッチ当てただけならそれは4.0.6の機能しかないわけで、
それ以降のバージョンは基本的にそれまでのセキュリティパッチ+新機能追加と
考えると、未知のセキュリティホールは新しいバージョンの方が多いと考えられる。(とわ言いけれないが)
じゃぁ、4.0.6の時点でどれだけ穴が発見されていたのかちゅうのはもう忘れた。
register_globalsがonの場合、それだけで穴になる可能性はあるが、それは
スクリプトしだいだからなぁ。
4.1.0以降のfix内容調べて、それに対して対処しているかどうか質問するしかないわな。
各update時の主だった変更点はphp-jpのML(過去ログ)を見れば藤本マスターが投稿してくれていると思うよ。
0029山崎渉
03/04/17 12:01ID:???0030nobodyさん
03/04/17 13:15ID:DfRAvUl8mail送信関数 mailについて教示願います。
サーバーのメールアドレスが [email protected]
送信先のメールアドレスに [email protected]
を指定すれば正常に送信できます。
しかし、[email protected] などのように外部のメールアドレスをしていると
送信エラーになります。
php.ini や http.conf などの設定を何か変更しなければいけないのでしょうか?
因みにサーバーは自社ですが、メールサーバーは外部レンタルです。
おわかりの方宜しくお願い致します。
0031nobodyさん
03/04/17 19:06ID:h+ALPoyzこれを 010 のように、桁数指定でゼロ詰で表示させるには?
0032nobodyさん
03/04/17 21:09ID:4RbcuH3Xprintf()
0034nobodyさん
03/04/17 22:53ID:???PHPのmail関数を使う前に、普通にmailが出て行くのか先に確認すべし。
大抵はMTAの設定がおかしいと思うよ。
0035nobodyさん
03/04/17 23:41ID:???とりあえず$a = array("","","");などと書いているのですが出来れば要素の数を変数で与えたいのです
0036nobodyさん
03/04/17 23:51ID:???$c = " exclusive use";
$a[] = $b;
$a[] = $c;
とか?
固定にする必要もないと思うけど
0037nobodyさん
03/04/18 00:47ID:???近いところで、array_fill()とか
http://www.php.net/manual/ja/function.array-fill.php
PHPの配列の内部的な処理の仕方などから、
配列の添字を指定して宣言しても意味のないこと。
宣言の範囲外の場合エラー吐かせるとか、
(PHPでは出来ないけど)目的はそういうこと?
003835
03/04/18 02:16ID:???$a=array("","","");
$b=split(",",$input);
$result=mysql_query("select * from table where field in ('$b[0]','$b[1]','$b[2]')");
while($buf=mysql_fetch_array($result)){
$a[array_search($buf[field],$b)]="〜〜〜";
}
print join("<br>",$a);
上の様にin ('','','') という形式でSelectした上で、
$bの要素の順番で結果を出力する為の処理です。
$bの要素数は固定ではない為>>35の様な質問が生まれました。
でもとりあえず>>37のarray_fill()で目的は達することが出来そう。
どうもでした。
0039nobodyさん
03/04/18 04:35ID:???array_fill() 使うとレコード増えたときに負担になるのでは?
$a=array();
$keys=array();
$result=mysql_query("select * from table where field in ('$b[0]','$b[1]','$b[2]')");
while($buf=mysql_fetch_array($result)){
$key = array_search($buf[field],$b);
$a[$key]="〜〜〜";
array_push($keys, $key);
}
sort($keys);
foreach($keys AS $key) {
print $a[$key];
}
キーを別の配列に突っ込んで、その配列をソート。
ソートされたキーの順番(= $bの要素順)に出力ってのはどう?
004035
03/04/18 17:36ID:???なるほど、こっちの方が正攻法っぽいですね
まぁarray_fillについてはarray_fill(0,count($b),"");といった使い方で、
$bの要素数は最大でも10程度なのでこのまま行こうかと思います。
何はともあれレスしてくれた方々に感謝。
0041nobodyさん
03/04/20 02:37ID:HEporOFA今まで見たことが無かったのですが、これって何の設定が悪くて表示される
エラーなのでしょうか?
実際、fopen関数でのhttp接続やgethostbyaddr関数が機能してくれてない
様なのですが・・
0042動画直リン
03/04/20 03:41ID:dAQHn3gv0043山崎渉
03/04/20 05:57ID:???( ^^ )< ぬるぽ(^^)
0044nobodyさん
03/04/20 10:42ID:???dnsかresolveが動いてないんだろ。
004541
03/04/20 15:53ID:WLqti8CJ具体的には、何処をどう修正すればよろしいのでしょうか?
OSは"Red Hat Linux 8.0 Publisher's Edition"です。
0046nobodyさん
03/04/20 16:23ID:???そのまえにdnsが使えるかどうか確かめれ。nslookupなり何なり。
004741=45
03/04/20 17:33ID:hcwjywd7>nslookupなり何なり。
これ(以下)の表示がされれば良いという亊ですか?
[root@localhost root]# nslookup 64.62.146.66
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server: ***.***.***.***
Address: ***.***.***.***#53
Non-authoritative answer:
66.146.62.64.in-addr.arpa name = binbo8.he.net.
Authoritative answers can be found from:
146.62.64.in-addr.arpa nameserver = NS1.he.net.
146.62.64.in-addr.arpa nameserver = NS2.he.net.
146.62.64.in-addr.arpa nameserver = NS3.he.net.
NS1.he.net internet address = 216.218.130.2
NS2.he.net internet address = 216.218.131.2
NS3.he.net internet address = 216.218.132.2
0048nobodyさん
03/04/20 17:36ID:vG1w+uT1自分の場合、PHPで全く同じことでつまづいてます・・・(泣
(abcという文字列)+(「def」じゃない文字列)+(ghiという文字列)
を探したいんですけど、eregで正規表現の部分を abc[^def]ghi とすると
[^def]の部分がd、e、fを含まない文字列に解釈されてしまい、
defというひとかたまりの単語としてみてくれません
これをPHPの正規表現で書く場合は、どう書けばいいのでしょうか?
0049nobodyさん
03/04/20 17:42ID:???0050nobodyさん
03/04/20 18:00ID:???よろしければ教えてくださいm(__)m
0052nobodyさん
03/04/20 18:08ID:???LXXIX. PHP Options&Information
マニュアル読んだ ?
getenv -- Gets the value of an environment variable
phpinfo -- Outputs lots of PHP information
0053nobodyさん
03/04/20 18:24ID:vG1w+uT1[^(def)]でも、うまくいきません
[^ ]内で、ひとかたまりの単語を認識させるのは
不可能なのでしょうか?
0054nobodyさん
03/04/20 20:29ID:???0055nobodyさん
03/04/20 20:38ID:jImYkKLT何かブラウザ特有の問題があるのでしょうか。
IEでは勿論問題なく保存されます。
ヘッダを見てみるとcontent-typeの前にset-cookieのレスポンスが来ているのですが、
これが原因でしょうか…?。
0058nobodyさん
03/04/20 21:14ID:???因みにmetaタグやJavascriptでは問題無く保存されました。
なんでだろ…。
0062nobodyさん
03/04/21 16:36ID:AYv3e7ja0063nobodyさん
03/04/21 16:45ID:???一行づつ回して変数に入れてそれを保存は?
0064nobodyさん
03/04/21 16:53ID:AYv3e7jaすみません具体的なんですがプログラム的には・・・
0065nobodyさん
03/04/21 22:14ID:???$msg = fread($fd, 32000);
fclose($fd);
$msg を保存。でどうよ
シェルの出力を保存するなら
$msg = shell_exec("echo '<? phpinfo();?>'|php");
0066nobodyさん
03/04/21 22:43ID:hrj80n8W後、登録者のIPも
ご教授願います
0067nobodyさん
03/04/21 22:57ID:???ローカルなら、マニュアルのphpinfo()の説明にあるように、
ob_start〜ob_end_cleanで挟んで、ob_get_contentsで
バッファに溜まってるのを取る方法もあるな。
0068nobodyさん
03/04/21 23:06ID:???ほうほう。そういう方法もあるんだね
http://php3.de/manual/ja/function.phpinfo.php
これの一番上に書いてあるね
0069bloom
03/04/21 23:08ID:ukRLYPuy0070nobodyさん
03/04/22 02:47ID:qcHE+gS2PHPってメールを受信したりできるんですか?
.forwardでphpに転送してphpで動的なメール文作って
自動返信とか可能?
0071動画直リン
03/04/22 03:38ID:+bjLBjB/可能。
他に、imap関数を組み込んでimap,pop受信も出来るし、pearにも確かあったな。
007370
03/04/22 15:34ID:qcHE+gS2おお、できるのか。ありが�d
それって、メールきた時に勝手にphpが走ってくれるんで?
ずーっとphp走ってたら負荷になると思うし。
.forwardなどからなら当然勝手に走るよ。普通ならcli版を使うことになると思うけどね。
imap,pop受信ならcronで定期的にまわしてやるしかないかな。タイムラグが生じるけど。
007570
03/04/22 15:57ID:qcHE+gS2cli版?
ググってきます。ほんと、ありが�d
あぁ、余計なこと書いたかな。別にcgi版でもいいよ。
いざとなりゃ、モジュール版でも... って、やったことないけどなぁ。
0077nobodyさん
03/04/24 21:05ID:???どうしてますか?
SSLはほとんど対応してないみたいだし
クッキーも対応してない場合が多いみ
たいだし、apacheの認証モジュールも
然りです。
今のところはPHPで認証して、URLに
セッションIDを埋め込むのが無難ですか?
パスワードを平文で流すのはかなり
不安なんですが。。
第一線で働いてるあなたに聞いてみました。
0078nobodyさん
03/04/26 01:46ID:cOpB+yiK第一線でもなんでもないけど、無難にセッションIDのhidden埋め込みかな。
>パスワードを平文で流す
まあ、セッション最初の一度だけだし。
ケータイで端末固有IDが使える機種・キャリアがもうちっとあっても良いと思うんだが。
ケータイで喜んで"インターネットする"輩に、プライバシーとかどうでもいいじゃん(暴論)
#流石に昔みたいに電話番号そのままはマズイけど。
0079nobodyさん
03/04/26 02:01ID:94JUYZ66紹介した人が紹介した人、つまり孫だな。
そいつが広告メールもらっても1円。 メールは大体毎日一通くらい。
つまりな、自分が10人に紹介する(登録させる)
↓
そいつらが10人ずつ紹介する(登録させる)
↓
つまり、自分の子供と孫が110人になる。 んで広告メールが送られるたびに110円。
しかも子供と孫は半永久的に増え続ける。
一つわかってほしい。それは…怪しくない!
孫以下は収入にならない→つまりネズミ講じゃない。
メールもらって現金返還。このシステム知ってるだろ?
それのおいしい話だよ。
んじゃ、ここから登録してくれ。がんがれ。
http://www.we-love.to/paid/index.pl?id=kura0613
0081nobodyさん
03/04/26 04:40ID:XP2ZIx8iceil(-2/3)
ってやると、普通0を返してくると思うんですが、なぜかあるサーバーが
-0って返してきやがるんです。
設定とかでなんとかなるものなんでしょうか?
0082nobodyさん
03/04/26 22:33ID:???pg_close関数は当然効きませんし。
どなたかご教授願えますと幸いです。
なお、環境は
OS:RedHat8.0
PHP:4.3.2
Postgres:7.3.1
です。
>ケータイで端末固有IDが使える機種・キャリアがもうちっとあっても良いと思うんだが。
使えないのってJ-PHONEだけじゃ?
AU/TUKAはサブスクライバID拾えるし、
DoCoMoもutn(製造番号のようなもの)拾える。
ただし、こちらは相手に確認メッセージがでて、
そこで送信OKにしないと流れてこない。
FOMAの場合は移動機本体、FOMAカードそれぞれの
utnがとれるので、認証に使っても問題なさそう。
// 端末情報拾うクラス作ったけど、会社に行かないとない(苦笑
>>81
PHPのバージョンは?
バージョンが違うなら同じ動作するとは限らない。
というか、-0と返るのがバグで修正された可能性が。
0084nobodyさん
03/04/27 01:07ID:???よく調べてみたら今の端末だと勝手サイトでも固有ID結構拾えるんだね。
ケータイ持ってないくせにiアプリは作ってるという香具師なんで
余りにも古い知識で喋っててスマン。(言葉の意味どおりの"香具師"だな)
因みにJ-PHONEもパケット対応機は拾えるみたいです。
http://www.dp.j-phone.com/jsky/user.html
私の常用しているH"は「pdxfrom」で拾えます。
0086nobodyさん
03/04/27 17:56ID:???もうひとふんばり♪
0087nobodyさん
03/04/28 19:31ID:???1バイトと2バイトの文字が混ざった動的な文字列$unkoから、
substr()を使って$unkoの頭をヘッドラインみたいに切り取りたいのですが、
$unko = "abcdあいうえお";
$unko = substr($unko, 0, 7);
みたいに2バイトのところで1バイトでカットしちゃうと文字化けみたいな感じになってしまうのですよね。
これを上手く文字数ごとでカットしたいんですが、何とかならないですかね?
マルチバイトの宿命なのかな(´・ω・`)
0088nobodyさん
03/04/28 19:47ID:???0089nobodyさん
03/04/28 19:55ID:???( ゚д゚)ポポカーン
mb_hogehoge()ってマルチバイト関数だったんですな(´・ω・`)
mb_strsub()でいとも簡単に解決しますた(´・ω・`)
ありがとうございました、、精進しまつ(´・ω・`)ノ
0090>>88>>89
03/04/28 20:02ID:???mb_substr()
だ
0091nobodyさん
03/04/30 13:17ID:???■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ関連スレ及び注意事項等 >>2-4
0092nobodyさん
03/04/30 16:54ID:hVWaacez.、:'':::::::::::::::::``:...、
/::::::::::::::::::::::::::::::::::::::\
i::::::::::::::::::::::::::::::::::::::::::::::::::ヽ
!::::::::::::::::::::::;‐、:::::::::_::::::_::::';
|::::::::::::::::::::::| :: ̄ ``!
r''ヾ'::::::::::/ :: |
l r‐、\::/ _..、ii_;;_、 _...l、
ヽヾ〈 ::= -r:;;j_;、`/ :;'ィ;7
!:!_.、 :: ` ー : |: `´/
../ヽ | 、_ :: .: 'r' :i |: /
.../ `ヽ;_ i | ''、_:::__`:'‐'. /
/ ``'ー 、_\ ! `::` ̄''`チ`シ
/ー 、_ `\:、_ :: ` ̄/ なんかもう必死でしょ
/ ``ヽ、 ヽ`'7‐--'゛
/ `ヽ、 `/
00931
03/05/01 23:32ID:???0095nobodyさん
03/05/02 03:18ID:???でもどちらにしてもフレームワークと呼ぶようなものは無いような気がするな。
ライブラリとかはあるけど、型に填め込むようなのはね。
大体PHPで「パターン」というのも余り聞かないでしょ。
0096nobodyさん
03/05/02 09:17ID:???PHPではデザパタが適用できないと。そう言いたい?
この考え方はこの言語の中だけ。みたいな狭いこと考えてると設計能力のびないぞ。
0097nobodyさん
03/05/02 13:05ID:NXr20aw7享受できるのかと言えば微妙なところではあるが。
0098nobodyさん
03/05/03 14:12ID:???質問させてくんさい。
ezweb用のコンテンツをphpで出力したいんですが、
日本語上手く表示できません。
header("content-type: text/x-hdml;charser=shift_jis");
print <<<EOF
<hdml version="3.0" public="true" markable="true">
<display name="main" markable="true" title="テスト" bookmark="./index.php">
テスト
</display>
</hdml>
EOF;
0099nobodyさん
03/05/03 14:12ID:???httpd.confには
AddType text/x-hdml;charset=Shift_JIS .hdml
AddType text/x-hdml .hdml
AddType text/vnd.wap.wml;charset=Shift_JIS .wml
AddType application/x-pmd .pmd
AddType audio/vnd.qcelp .qcp
AddType application/x-smaf .mmf
を追加。SDK3.3.1ってやつでテストしてます。
http://developer.openwave.com/ja/download/331doc.html
文字化けはしてるものの、一応表示は出来てます。
あとテストとして http://ezseek.infoseek.co.jp/index.hdml
なんかは問題なく日本語表示出来ました。
長文失礼。
0100nobodyさん
03/05/03 21:56ID:???header("content-type: text/x-hdml;charser=shift_jis");
の「charser」はここへコピペする時のtypo?
0101nobodyさん
03/05/04 13:42ID:???PHPでゲーム作ろうかなって思っているものですが、
更新処理が多発するケースだと、MySQLとPostgreSQLとどっちがいいのでしょうか?
MySQLだと早いけど、更新時にテーブルロックをかけなければならず、結局速度が低下する可能性がありで、
PostgreSQLだと重いけど、更新時にレコードロックで済むので速度が一定に保てそうな予感です。
もしかして、DB系の話をしているスレに書くべきことかもしれませんが、だれか連続更新処理に適したものを教えてください。
■ このスレッドは過去ログ倉庫に格納されています