トップページ⇒php
1001コメント326KB

【PHP】質問スレッド Part7

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/02/06 05:56ID:???
■ 本家
 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-10あたりに
0486nobodyさん03/03/11 10:21ID:???
今、メール送信のスクリプト組んでるんですが、

mb_language("Japanese");
mb_send_mail($to,$subject,$body,$header);

でやってみると

「糖尿病の予\防や治療につながる可能\性があるという。」

になってしまいます
このバックスラッシュを外すにはどうしたらいいのでしょうか
EUC-JP使う以外に上手いこと出来る方法があれば・・・
0487nobodyさん03/03/11 10:23ID:???
>>486
splashなんちゃら
0488nobodyさん03/03/11 10:24ID:???
>>486
って言うかメールはJIS(ISO-2022)で送れや。
0489nobodyさん03/03/11 10:28ID:???
>>487
stripslashesでしょ
0490nobodyさん03/03/11 13:03ID:???
>>488
ヘッダー見ると
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
X-UIDL: 7e##!8YD"!??]"!gaA!!
になってますがいけないんでしょうか・・・

なんせ2日前に始めたばかりなもので
もうちょっと厨に付き合ってください

>>487 >>489
マニュアルで stripslashes見つけたので使ってみまつ
0491nobodyさん03/03/11 13:08ID:???
>>490
PHP初心者スレがちゃんとあるのだが、そっちにはいかんの?
http://pc2.2ch.net/test/read.cgi/php/1011550860/
0492nobodyさん03/03/11 15:52ID:adKq/xnz
配列データを固定長で保存したい場合の適当な関数ってありますか?
文字列だと空白で埋めたいのですが・・・
0493nobodyさん03/03/11 15:54ID:???
>>492
sprintf
0494nobodyさん03/03/11 16:01ID:adKq/xnz
>>493 レスありがとう御座います。
sprintfの関数で固定長のNULL「ASCII(0)」はどう表現すればいいのですか。
STR_PAD の連結のパターンもかんがえたのですが。
0495nobodyさん03/03/11 16:31ID:???
ちょうどsprintfの話題なんで質問でつ。
PHPの4.2.1なんだけど、

$str = 'test';printf("%010s\n", $str);
だと『000000test』ってちゃんと出てくるんだけど

$str = 'test';printf("% 10s\n", $str);
だと『test』のみ

本当はドットで埋めたいので
$str = 'test';printf("%.10s\n", $str);
だとやっぱり『test』のみ

アレ?なんか根本的に間違ってますか?
0496 ◆Kiss.FX29M 03/03/11 16:43ID:???
>>495
いろいろやり方があると思うが、
substr(str_repeat("."文字数).$str,-文字数);
で、どよ。
0497 ◆Kiss.FX29M 03/03/11 16:44ID:???
カンマ抜け
substr(str_repeat(".",文字数).$str,-文字数);
0498gn355my003/03/11 16:48ID:???
>>495
そこでなぜ
10.10
に頭がまわらない?
0499nobodyさん03/03/11 16:57ID:???
>>496>>497
レスサンクです。できそうです。

>>498
10.10・・・?まだそこまで頭がまわってないす。逝。
0500nobodyさん03/03/11 18:15ID:???
$str = "test";
printf ("% 10s\n", $str);
printf ("%'.10s\n", $str);
手元の4.3.1(Win版)ならこれで
      test
......test
になったよ
ttp://www.php.net/manual/ja/function.sprintf.php
0501nobodyさん03/03/11 19:55ID:???
>>500
できる?!うーーん。
とりあえず>>496さんのsubstrで切り抜けますた。
0502 ◆AngelH/kMI 03/03/11 21:04ID:???
ちと困ったので質問。
preg_replace_callbackってclassの中で
第二引数(replaceするルールを作る関数を指定)に
classのメソッドを指定する方法って無い?

何をしたいかというと、
ルール作る関数に正規表現でひっかかった以外の
値を持たせたいんだけど、globalにする以外の方法
無いかなぁ・・・と思って。
0503 ◆Kiss.FX29M 03/03/11 21:18ID:???
>>502
マニュアルのNotesに
preg_replace_callback(pattern, array($this, 'method_name'), subject)
ってあるけど、これじゃダメの?
0504 ◆AngelH/kMI 03/03/11 21:28ID:???
>503
うわ、見落としてた。
助かりました。

PHPBuilderで同じ事を聞いてる人がいるなぁ
と、変なところばかり探してWeb版マニュアル見てなかったよ。

ありがとー。
0505nobodyさん03/03/12 10:26ID:h4TV2949
Win2000とApache1.3.27とPHP4.3.1(CGI版じゃない方)で、
たとえばクライアントが
直接www.hoge.com/hoge.phpにアクセスできなくして、
www.hoge.com/indexというURLにアクセスすると
内部的にwww.hoge.com/hoge.phpにアクセスするようには
どうすればよいのでしょうか。

Tomcatならばweb.xmlでマッピングができたのですが。。。
0506nobodyさん03/03/12 11:36ID:???
>505
どっちかというと、それはapacheの設定。シンボリックリンクでやる手も。
phpでhoge.phpでリダイレクトかけて云々という方法が取れなくもないが、
hoge.phpもindexも実体がいるし、hoge.phpにアクセスしないと駄目だしね。
hoge.phpからの出力はHTTPヘッダのリダイレクションだけだとしても。
0507nobodyさん03/03/12 11:51ID:h4TV2949
う〜ん、ちょっとしたことなんですけどねぇ。。。

レンタルの専用鯖だとapacheの設定いじれるんでしょうか…。

あと2chで気になるのはread.cgi/phpとなっていることろです。
read.cgi?phpじゃないんですね。

これどうやってるんでせう…
0508nobodyさん03/03/12 11:57ID:63/Zc0OA
PHPでUUID取得したいんですが、
何か方法は無いですか?
linuxRedHat+Apatch+PHP3
0509nobodyさん03/03/12 13:42ID:Spo6B9sQ
Parse error: parse error, unexpected '<' in /home/apache/XXXXXXX.com/index.php on line 94398

こんなサイトあったんですが、ネタですかね。
1ファイルで9万行も・・・ ソース拝見したい。。
0510nobodyさん03/03/12 13:57ID:???
素晴らしく美しいソースなんだろうな。

じゃないとメンテナンスできないだろ, 9万行超のソースなんか。
0511nobodyさん03/03/12 15:21ID:???
>>506に便乗質問
仮に様々なキャリアを対象とした携帯のコンテンツがあって
なるべくURLは短くしたいのでhttp://hoge.com/i/にしたいと
しる。でもドキュメントルート配下からはCGIの実行は出来な
い。
で、/i/index.htmlを/cgi-bin/keitai.phpのシンボリックリ
ンクにする。

http://hoge.com/i/にアクセスすると/cgi-bin/keitai.phpが
実行される。

と言うことが出来るという事なのか?
あまりPHPな話じゃないからsage。
0512nobodyさん03/03/12 15:35ID:???
>>511
そんなことできたらドキュメントルートなんてバカらしい概念な訳で。
0513nobodyさん03/03/12 20:11ID:???
phpをcgiとして使用した場合は
phpのメリットは無いんでしょうか?
0514nobodyさん03/03/12 20:12ID:???
>>509
関数もオブジェクトも変数もループも知らずに書いた
0515nobodyさん03/03/12 20:17ID:???
>>513
Perlより楽。
0516nobodyさん03/03/12 20:19ID:???
phpをcgiとして使用した場合は

・Perl/CGIと比較して処理速度の高速化
・サーバー負荷の低減

これらのメリットは無くなるということですか?
0517 ◆Kiss.FX29M 03/03/12 20:29ID:???
>>507
apacheならmod_rewriteが組み込まれていたらできる。

>>511
alias設定で出来るんじゃなかな。やったことないけど。

詳しくはapacheスレで聞いてくれ。
0518 ◆Kiss.FX29M 03/03/12 20:35ID:???
>>516
cgiとした場合のオーバヘッドが気になるような人気サイトを構築
出来た時点で考えればいいじゃん。
051950803/03/13 09:21ID:???
どなたか>>508を…
お願いします。
0520nobodyさん03/03/13 13:41ID:???
>>508
Linuxなら、e2fsprogs入れてPECL::uuidで使う。
http://cvs.php.net/cvs.php/pear/PECL/uuid
uuidgenをPHPから読んで使っても良いかもしれないけど。
WindowsならMicrosoftのSDKに入ってる、uuidgen.exeを使う。
他のプラットフォームは知りません。多分似たようなもん。

リモートの他のマシンからuuidを取得>折れ
0521nobodyさん03/03/13 15:06ID:???
うちのサーバは未だにPHP-4.1.2を使用しているのですが、
http://www.php.net/release_4_2_2.php
や
http://www.php.net/release_4_3_1.php
の問題はあるのでしょうか。額面通り読むと4.1.2にはこれらの
問題があるようには読めませんでした。
# もう古いからアナウンスすらされていないのでしょうか…
052250803/03/13 15:15ID:EJo9Pen2
>>520
ありがとうございます。
頑張ってみます。
0523nobodyさん03/03/13 15:34ID:2CD/32yZ
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
★その目で確認すべし!!★超おすすめ★
0524nobodyさん03/03/13 21:09ID:Am3iEG5g
mb_send_mailでヘッダーにFrom:を指定すると、
送られてくるメールの送信のメーアドに.ccがついてくるのはナゼ?
From :[email protected]だと
送信者: [email protected]になる。
0525nobodyさん03/03/13 21:21ID:???
Zend Optimazer 使うと速くなるってよく聞く。
けど、実行速度は速くなるけど、コンパイルに時間がかかるので
逆に遅くなる場合があると思うんだけど、どうかな?
0526nobodyさん03/03/13 21:26ID:P49/jdlZ
オロオロ(゚ロ゚;))((;゚ロ゚)オロオロ
http://hkwr.com/
http://hkwr.com/bbs
0527nobodyさん03/03/13 21:29ID:???
CCさくらの呪い
0528nobodyさん03/03/13 21:31ID:???
>>525
hai?
0529nobodyさん03/03/13 21:35ID:sXZYIvtY
こんばんわ、ちょいと本筋にははずれてるかもしれないけどお願いね
Emacs21.2.1でPHPのプログラムを書くのにphp-mode.elってのをみつけたんだけど
.emacsの設定が見当たらなくて探してます古いものなら出てくるんだけどだれか使える設定知ってたら教えて。
0530nobodyさん03/03/13 21:37ID:???
こんばんわ、ちょいと本筋にははずれてるかもしれないけどお願いねEmacs21.2.1でPHPのプログラムを書くのにphp-mode.elってのをみつけたんだけど.emacsの設定が見当たらなくて探してます古いものなら出てくるんだけどだれか使える設定知ってたら教えて。

句読点
0531nobodyさん03/03/13 21:56ID:BWH/3M/3
>>101
スクリプト(PHPファイル)をEUC+LFで保存し直してみるとか。
0532nobodyさん03/03/13 22:00ID:BWH/3M/3
すいません、誤爆です。
全読み出来ない時間帯なの忘れてたので最新投稿と勘違いしました。
0533 ◆Kiss.FX29M 03/03/13 22:30ID:???
>>524
そんなこたーない。
ソースコード晒せ。
053452503/03/13 23:12ID:???
http://www.zend.co.jp/aboutzend/
にある図でいえば、Optimizer で �D はたしかに速くなるけど
それ以上に�Cが遅くなれば、全体として遅くなる可能性はありませんか?
あんまり気にする必要ないのかな?
0535nobodyさん03/03/13 23:43ID:9xZX2ID2
<a href=hogehoge?KEY=hhh&ggg>hohoho</a>
で、$i = $_GET["KEY"];
などして受け取りたいのですが、うまくいきません。
どうやら、$i = hhhとなっているみたいです。
これを、$i = hhh&gggとするにはどのようにすればいいのでしょうか?

アドバイスなどいただけますと幸いです。
0536 ◆Kiss.FX29M 03/03/14 00:02ID:???
>>535
hhh%26ggg
http://jp.php.net/manual/ja/function.urlencode.php
0537nobodyさん03/03/14 00:03ID:???
>>535
register_globalsをいじる。いじれる権限なら。
0538nobodyさん03/03/14 00:10ID:boeLlmSC
早速のレス、有難うございます!
試してみます。
0539nobodyさん03/03/14 00:16ID:???
>>537
はずれ。
0540nobodyさん03/03/14 00:20ID:???
>>535
$str = $HTTP_RAW_GET_DATA;
0541sage03/03/14 23:23ID:FIrcVUHx
>>534
実際にやりとりをするのは�Eという罠(藁
0542nobodyさん03/03/15 01:19ID:???
なんで2chのPHPユーザーって狂信者が多いんでしょうか。
他の言語の話が出て来ると、けなしまくり。(特にPerlが天敵らしい)
マナーが悪いと言うか、なんと言うか…。
自分PHPユーザーなんで、見ててこっちが恥ずかしくなる。
0543nobodyさん03/03/15 07:26ID:???
>542
ま、余り気にするな。
「○○ vs ××」なんてスレ見てるから
そういうのが目に付くだけだから。

仕事でPerlを使わざるを得なかった愚痴とかかもね。
自分の肌に合う合わない言語というのは、やはりあるから。
0544nobodyさん03/03/15 23:23ID:SKWNhqCY
質問です。

for ($i = 0; $i < 100; $i++)
{
//ここに10や20などの10の倍数の時に処理をしたいのですが
}

どうしたらいいのでしょうか?よろしくお願いします。
0545nobodyさん03/03/15 23:25ID:???
>>544
$i++を$+=10にしちゃだめなのか?
だめならif(!($i%10))で。
054654403/03/15 23:26ID:???
×://ここに10や20などの10の倍数の時に処理をしたいのですが
○://ここに$iの値が10や20などの10の倍数の時に処理をしたいのですが
0547nobodyさん03/03/15 23:32ID:???
if(ereg("0$",$i)){echo"$i<br>";}
054854403/03/15 23:55ID:???
できました。
ありがとうございました。
0549の03/03/16 01:40ID:Vfoay5Mn
意味的/効率的には
if (($i%10)==0){echo"$i<br>";}
の方が吉でしょう。
0550nobodyさん03/03/16 01:44ID:???
すみません。質問です。
ファイルのアップロードが出来ません。
設定はこんな感じです。
register_globals Off
file_uploads On
upload_max_filesize 2M
post_max_size 8M

以下のようなスクリプトで確認してみたのですが、$_FILES["userfile"]["name"]とか全部空っぽです。
また、phpinfo()内に「$_FILES」に関するような項目がありません。

<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<?
echo "File name " . $_FILES["userfile"]["name"] . "<br> \n"
."File type " . $_FILES["userfile"]["type"] . "<br> \n"
."File tmp_name " . $_FILES["userfile"]["tmp_name"] . "<br> \n"
."File size " . $_FILES["userfile"]["size"] . "<br> \n";
phpinfo();
?>

register_globals Onにして $userfile_name とか見るようにしてもでもだめでした。
PHPのバージョンは4.3.1です。
いったいどうすれば…
0551nobodyさん03/03/16 02:01ID:hHXJleNM
javaの事についておながいします…。

あるリンクをクリックした時にウィンドウを開きたいのですが、
普通のウィンドウではなく、
ブラウザ機能のついていないウィンドウ(サブウィンドウ?)にしたいのです。
また、開くウィンドウには画像を表示させるのですが、
(リンクが)いくつもあるので、ターゲットの指定もさせたいです。

ご存知の方お願い致します。
0552nobodyさん03/03/16 02:07ID:???
java ? script ? スレチガイタチガイ だと思われます。
0553nobodyさん03/03/16 10:07ID:atBcCAsV
safe_modeがonのサーバで、BASIC認証ができなくなるのですが、バグですか?
offにするとちゃんと動きます。当方apache2+PHP4.3.1という環境です。
055455303/03/16 10:21ID:???
正確にはPHP内でBASIC認証による環境変数が受け取れないのです。
0555nobodyさん03/03/16 11:37ID:???
4.3.0のchangeに
Make PHP_AUTH_* variables not available in safe mode under Apache when an external basic auth mechanism is used.
って書いてあったから、できないんじゃないの?
4.3.1は4.3.0にCGI sapiのセキュリティパッチを付けたもの。

BASIC認証を使ってなくて良かった.....
というわけで、スクリプトの「バグ」ということになりますた
0556nobodyさん03/03/16 18:48ID:???
PHPでバイナリファイル読めますか?
0557nobodyさん03/03/16 18:57ID:???
>>556
思いっきり読めます。
0558nobodyさん03/03/16 19:29ID:???

AN HTTPDを使ってPHPの練習をしてるんですが、

$a = 10;

print "変数aの値は$aです";

これを実行すると、

Notice: Undefined variable: aです in C:\usr\local\sample.php on line 14

と表示されました。14行目はprint "変数aの値は$aです";なのですが
なにが間違っているのでしょうか?

print "$a";にするとちゃんと表示されるので'変数a'というのが
問題なのでしょうか?perlでは普通に表示されてたんですが。。
0559nobodyさん03/03/16 19:55ID:???
>>558
日本語が悪さをしてるんでしょうかね。素直に.で連結した方が良いかと。
0560nobodyさん03/03/16 20:11ID:???
>>559

ありがとうございました
0561nobodyさん03/03/16 22:17ID:atBcCAsV
>>>555
やっぱり。。。別の解決策を模索します。。
0562nobodyさん03/03/16 23:04ID:0EPmf9MB
>>555

てか、バグか??
もともとPHP_AUTHに入っていること自体が気持ち悪かったよ。
$_SERVER[REMOTE_USER]からとるべし。
056355803/03/16 23:16ID:???
>>559

やっぱり聞いておきたいんですが、この現象はどの環境でも起こることなんでしょうか?
それともたまたま自分の環境だとエラーがでただけなんでしょうか?
0564gn355my003/03/16 23:20ID:???
>>563
$です = "a";
print "$です";
0565nobodyさん03/03/16 23:36ID:???
>>558
わかんないって素直に聞いたほがいいよ。
$a = 10;
print "変数aの値は".$a."です"; .で連結ね。
056655803/03/17 00:03ID:???
>>564

それはなんなんでしょうか?

>>565

何を分からないって聞くのですか?連結の仕方は知ってます。
上のようなコードを書いた場合、どのような環境でもエラーがでるのか。
ということが知りたいのです。
0567nobodyさん03/03/17 00:19ID:???
少し英語が読めればこんなことにはならないのに。。
0568nobodyさん03/03/17 00:36ID:???
漏れの言いたい事は。
$a = 10;
print "変数aの値は{$a}です";
0569gn355my003/03/17 00:45ID:???
>>566
やってみ。
0570nobodyさん03/03/17 01:11ID:???
スレ違いかもしれませんが他に適当なところが
見あたらなかったのでここで質問させてください。
WEB上で動作する家計簿でオススメのものはありますか?
0571nobodyさん03/03/17 01:16ID:???
ネタですか?
0572nobodyさん03/03/17 01:20ID:???
>>566
連結があるわけだから・・・。
0573nobodyさん03/03/17 01:27ID:???
ネタじゃないですが・・・
ダウンロード板に行った方がいいのかな?
向こうに行って聞いてみます
0574nobodyさん03/03/17 01:30ID:???
http://pc2.2ch.net/test/read.cgi/php/1041564353/l50
このスレいけ
0575nobodyさん03/03/17 01:33ID:???
>>574
あ!
ありがとうございます!
057655803/03/17 06:46ID:???
あーなるほど。PHPの場合「変数の値は$aです」とやると「$aです」というように
「です」まで変数の名前と判断されてエラーが出てしまうということですね。

Perlではこのやり方でちゃんと$aだけを代入してくれたんですがPHPは判断してくれないんですか?
0577nobodyさん03/03/17 07:19ID:???
>>576
つか、エラーメッセージそうでてるやん。アフォか。
0578 ◆Kiss.FX29M 03/03/17 08:03ID:???
>>576
わがままちゅうか、頭が固いというか。
これはPHPの仕様。
[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
マニュアル嫁
0579gn355my003/03/17 08:23ID:???
>>576
そこまで言うとは思わなかった。

${a}です。

ぐらいは書けるやろ?PerlはPerl。PHPはPHP。
058055803/03/17 08:52ID:???
だからやり方は分かってるって。仕様か仕様じゃないかを聞いたの。
0581nobodyさん03/03/17 09:03ID:???
558は女か?
0582nobodyさん03/03/17 09:36ID:???
つまり、PHPでは日本語も変数名に使える。
0583nobodyさん03/03/17 11:20ID:???
「perlでは」とかいい加減なことを言ってるとそのうちはまるぞ。
0584nobodyさん03/03/17 15:33ID:???
ちわっす、PHPからメールクライアントって呼び出せますか?
今PHPとPstgreSQLでプログラム書いているんだけど
入力フォームで名前とかメールアドレスを記入してApache経由PostgreSQL
行で、データ登録までは出来たんだけど登録されたメールアドレスにメールを
送りたいんですがPHPからsendmailデーモンを起動したり操作できるんでしょうか教えてちょうだい。
0585nobodyさん03/03/17 15:53ID:???
>>558
こんな基本的な所で引っかかるのか?
やり方がわかって仕様が分かってるなら意味わかるだろ?
バカかPerl中毒症のどっちかだね。
おまえは素直になるかPerl使い続けたほうがいいよ。
0586nobodyさん03/03/17 15:55ID:htdRXdVF
誰か知恵を貸して下さい。

Web上で複数のIDとパスワードを設定ファイルに持たせておき
1つのIDとパスワードを入力して、プルダウンからサイトを選択すると
IDとパスワードが個々のサイトのものに変換され
ログインするプログラムを作成しています。

変換したIDとパスワードをPOSTするところまでは問題なく出来たのですが
POSTするのがブラウザではなく、プログラム側になるので
どうやらセッション関係でエラーが発生する感じになっています。

プログラムが送るPOST情報を、ユーザのブラウザが送ったように
見せかけるにはどのようにすればよいのでしょうか?

■ このスレッドは過去ログ倉庫に格納されています