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

【PHP】質問スレッド Part15

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/03/07 02:03ID:???
PHP全般の質問スレです。
上級者用や雑談スレを立てたくなった場合は後から適宜立ててください。

■本家
 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-5
0046nobodyさん04/03/08 15:16ID:???
>>45
桶
0047nobodyさん04/03/08 15:31ID:???
>>35
むしろ本番環境にApache2.xとPHPの
組み合わせを使う(予定)の君に乾杯。

まあ一応こまめにプロセス殺してやると
今のところ大丈夫みたいだけどね。
00483004/03/08 15:43ID:???
>>47
コ、コレばかりは、ユーザーさん指定の環境ですので、
ワタクシからはどうにもなりません_| ̄|○
0049nobodyさん04/03/08 15:57ID:???
誰もダメとは言ってないぞ。
自分で自分の首を絞める行為に漏れからも乾杯。
0050nobodyさん04/03/08 16:03ID:???
Apache2.0.40って……
0051nobodyさん04/03/08 16:12ID:???
なんか、テストも本番も微妙にApacheが古いのが笑えるな。
0052nobodyさん04/03/08 17:00ID:mEtMwEOB
>>41
原因はわからんが(テストしてないし)、
HTML1.0のサブセット(嘘)に向って、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
も酷いよな。

エンコーディングはEUCだしさ。

しかも、
<META http-equiv="Content-Style-Type" content="text/css">

って、携帯を馬鹿にしてるとしか思えない。
00535204/03/08 17:03ID:???
なにはともあれ、
消防でも書けるようなHTMLにしたら?
携帯に、多くを求めるな。

<HTML>
<HEAD>
<TITLE>タイトル</TITLE>
</HEAD>
<BODY>
<BR><BR>
<FORM action="kokyaku.php" target="data">
<INPUT type="submit" name="user_manage" value="ユーザー登録確認">
</FORM>
<FORM action="menu_data_init.php" target="data">
<INPUT type="submit" name="reserve_manage" value="予約情報">
</FORM>
</BODY>
</HTML>
0054nobodyさん04/03/08 17:13ID:???
>>33
rtrim
0055nobodyさん04/03/08 17:14ID:???
ここで携帯がHDML機だったってオチを期待してみる
0056nobodyさん04/03/08 17:36ID:???
>>55
HDMLは「コンパイルエラー」とかいうもっといやらしいエラーを言ってきます
0057nobodyさん04/03/08 17:44ID:???
質問です。
XHTMLで組んでいるので、xml宣言を文書の最初にしなきゃいけないのですが、
<?xml version="1.0" encoding="Shift_JIS" ?>
という形上、PHPと解釈されてしまいます。
そこで
<?="<?xml version=\"1.0\" encoding=\"Shift_JIS\" ?>" ?>
こうしたのですが、この宣言が文書の一行目に来てくれません。
なんとか一行目に表示する方法はないでしょうか?
0058nobodyさん04/03/08 17:46ID:???
PHP版なつみかんって感じのアンテナソフトありますか?
0059nobodyさん04/03/08 17:59ID:???
>>57
別の問題じゃないの? どっかで改行とか出力してない?
自分でためしに<?=...を初っぱなに書いてみたけど、ちゃんと1行目にくるぞ?
0060nobodyさん04/03/08 18:05ID:???
>>59
_| ̄|  ......○
0061nobodyさん04/03/08 19:28ID:???
「parseする」ってどういう意味ですか?
0062nobodyさん04/03/08 20:09ID:???
<html>
<hrad>
<title>あああああ</title>
</head>
<body>
<font size=+2>えええええ</font>
<hr>

<?php
mb_http_output('SJIS');

echo ("あいうえ");
?>


<?php
echo("あああああ");
?>


こうやっても全部EUCになるんですがねぇ・・・
他に必要なものってありましたっけ?
0063nobodyさん04/03/08 20:48ID:???
>>62
http://www.php.net/manual/ja/ref.mbstring.php
例3を嫁
00646304/03/08 20:50ID:???
例6も嫁
0065nobodyさん04/03/08 21:57ID:???
はいよんだよんだ
できたできた
0066nobodyさん04/03/08 22:38ID:aa8wwnxG
classとかいうやつの使い方がよくわからないのですが、
なんの為に使うのでしょうか。
あとどんなプログラムにもそれは必要ですか?
0067nobodyさん04/03/08 22:46ID:???
>>66
その質問。スルーされているのに気づけYO!

ま、別に使わなくても問題ないよ。
今後スクリプトをバリバリ書いて、なんか使いまわしが面倒だなぁと感じたら
本でも買って勉強するよろし。
0068nobodyさん04/03/08 23:51ID:???
たとえばデータベース関連とかは毎回色んなスクリプトで使い回ししたい。
そんなときクラスを使うとよろし。
0069nobodyさん04/03/08 23:51ID:LU3lxLSX
こんばんは!多言語対応のホームページを作ろうとしています。

phpLang <http://www.phpheaven.net/projects/phplang/rubrique7.html>;
を使って、もし言語が英語なら自動的にindex.en.htmlに
日本語ならindex.jp.htmlにリダイレクトさせたいのですが
どういったコードを書けばいいでしょうか。
サンプルコードを探したのですが見つかりません。
0070nobodyさん04/03/08 23:57ID:???
>>69
そんなん、わざわざphpを使わなくても。
0071nobodyさん04/03/08 23:59ID:???
まったくだ
0072nobodyさん04/03/08 23:59ID:???
まぁapacheにもたしかあるやね

if( preg_match('/ja/i',$_SERVER['HTTP_ACCEPT-LANGUAGE']) ) {
header('Location: http://hogehoge/index.jp.html');
} else {
header('Location: http://hogehoge/index.en.html');
}
0073nobodyさん04/03/09 00:07ID:usGQfxsJ
>>72さん、どうもありがとうございました。phpLangを使わずとも期待した通りに動きます。
>>70さん>>71さん、他にも何かシンプルな実装方法があるのでしょうか。。。
0074nobodyさん04/03/09 00:10ID:???
>>73
コンテントネゴシエーションあたりで検索
0075nobodyさん04/03/09 00:18ID:???
Apacheを自分で立てたらそれだけで気づきそうなもんだが。
と、index.html.jaとかindex.html.enになるけどw
0076nobodyさん04/03/09 01:56ID:???
>>74さん、どうもありがとうございました。ファイル名を変えるだけという最もスマートな方法で実装できました。
0077nobodyさん04/03/09 09:14ID:???
$str = 'スト好' # \xA5\xB9 \xA5\xC8 \xB9\xA5 (EUC)
のとき
$pattern = '(?:[\xB7-\xBA][\xA1-\xAF])';
$str = mb_ereg_replace($pattern,'',$str);
みたいのをしたいのですが、希望通り「スト」が返ってきません。
mbでも途中にマッチしちゃってるようなのですが
そもそもmbはこういうのが起きないためのものなのではないでしょうか(;´Д`)
希望通りになるコードのお知恵をかしてください・・
00783004/03/09 10:06ID:???
亀レスになりましたが、
イロイロありがとうございました
とりあえずテストのアパッチは最新に置き換えマシタ
本番機はユーザーさんの管轄なので、
コッチの置き換えは、ユーザーさんに依頼シマツ
タグ自体は、必要最小限を出力してテスト致します

携帯も奥が深いんですね(;´Д`)
お世話になりマスタm(;∇;)m
0079nobodyさん04/03/09 10:09ID:???
>>77
ナニを「希望」しているのかサパーリわらかん。
全角カタカナに一致させたそうでもなさそうだし。

>>78
携帯の奥が深いというより、あんたが浅杉。ま、がんがれYO
0080nobodyさん04/03/09 10:43ID:???
ここの馬鹿共は口が悪いな
0081nobodyさん04/03/09 10:48ID:???
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
00823004/03/09 11:01ID:???
>>80
や、びしっと言って頂いた方がワタクシは
良かったですよ

って釣られたっていうのですかね、コレは・・・
0083nobodyさん04/03/09 11:15ID:hGDzPQs/
           _,. -‐''"∴∵``' ‐ .、._
          ,.‐'´∴∵∴∵∴∵∴∵ `‐.、
        ./∴∵∴∵∴∵∴∵∴∵∴∵\
        |/-=o=-∵∴∵∴\/_ ∴∵∴∵\
       /::::::ヽ―ヽ -=o=-_(::::::::.ヽ ∴∵∴∵l
      |○/ 。  /:::::::::  (:::::::::::::) ∴∵∴∵l
      |::::人__人:::::○∵∴ ヽ/ ∴∵∴∵l
      ヽ   __ \∵∴∵∴/ ∴∵∴∵l
     ∴∵\  | .::::/.|∵∴∵∴/ ∴∵∴∵∴\
     ∴∵ \lヽ::::ノ丿∵∴∵ / ∴∵∴∵∴∴l
     ,i∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴l
      |∴∵∴∵∴∵∴(・)∴∴.(・)∴∵∴∵∴∵|
.     | ∴∵∴∵∴∵∴ / ○\ ∴∵∴∵∴∵ |
.      |∴∵∴∵∴∵∴/三 | 三|∴∵∴∵∴∵|  tanasinn
.     |∴∵∴∵∴∵∴| __|__ |∴∵∴∵∴∵l
     l∴∵∴∵∴∵∴|  === .|∴∵∴∵∴ .,l
.     ゙i ∴∵∴∵∴∵ \__/∴∵∴∵∴,i
      ヽ∴ ∵∴∵∴∵∴∵∴∵∴∵∴∵/
        ヽ `‐.、∴∵∴∵∴∵∴∵∴,.‐'´
             `:‐.、. _∴∵∴∵.-‐''"
0084nobodyさん04/03/09 11:57ID:???
>>77
ちゃんと「スト」になるけど。
内部エンコーディングがEUCになってるかmb_regex_encoding ( )で確認しろ。
0085nobodyさん04/03/09 13:06ID:jqgOUC+j
質問させてください。
とあるディレクトリに月ごとのディレクトリを生成し、
さらにその中に新たにテキストファイルを生成したいのです。
生成はできるんですが、FTPからこのテキストを削除できません。
生成したテキストファイルの所有権が"www(apache)"になってしまうので。

FTPから削除できるような形でファイルを生成しようと思うと、
あらかじめFTPユーザーとして作ったディレクトリ内に、
ファイルを生成するしか手は無いんでしょうか?

$mydate1 = date("Ym");
if ( !is_dir("./dat4/$mydate1") ){
mkdir("dat4/$mydate1",0777);
}
$fp = fopen("dat4/$mydate1/".date("mdhi").".txt","r+");
fputs($fp,"hogehoge");
fclose($fp);


まるで春厨すんません。
0086nobodyさん04/03/09 13:15ID:???
>>85
マニュアルって言葉知ってる?
http://www.php.net/manual/ja/ref.filesystem.php
0087nobodyさん04/03/09 13:21ID:???
>>85
なぜFTPで削除しないといけないのか分からない。
0088nobodyさん04/03/09 13:26ID:jqgOUC+j
>>86
ホントすんません。見てるんですが実は良くわからんです。

>>87
要はユーザーが書き込んだ物を鯖に保存しておいて、
その保存されたテキストファイルを管理者が消すと。
どうもそれは必須なんです。
0089nobodyさん04/03/09 13:29ID:???
>>88
それならFTPじゃなくても管理者用の削除スクリプトを作ればいい。
00908604/03/09 13:39ID:???
>>88
FTPで削除する事の善し悪しはおいといて
パーミッションの設定は
http://www.php.net/manual/ja/function.chmod.php
だ
0091nobodyさん04/03/09 13:44ID:???
>>88
>どうもそれは必須なんです。

こんな香具師に依頼したやつの気がしれんというか可哀相というか…。
間違っても仕事じゃないよな?ないと言ってくれ、頼む…。
0092nobodyさん04/03/09 13:47ID:VgYi4aAb
>>90
chmodも使ってみたんですが、
"SAFE MODE Restriction in effect…"てな感じです。
0093nobodyさん04/03/09 13:49ID:VgYi4aAb
>>91
たしかに可哀想。
仕事では無いんですが、結構ほったらかしにしてきた部分だったので、
できれば後学のためにと思いまして。
0094nobodyさん04/03/09 13:57ID:???
>>92
そのメッセージはどういう意味だ?理解してるか?
解らんかったら英訳しろ
0095nobodyさん04/03/09 14:05ID:VgYi4aAb
>>94
すいません。情報を小出しにしてしまったので、
混乱を招いてしまってますね。

作る->ftpで消せない->chmod試す->ダメ
->セーフモード調べる->脳内フロー

てな感じなんです。
セーフモードによってchmodは制限を受けるとありますから、
そもそもファイルやディレクトリを生成する時に、
誤りがあったのかなと思って色々調べてます。


0096nobodyさん04/03/09 14:13ID:???
PHPの設定・・・
0097nobodyさん04/03/09 14:39ID:VgYi4aAb
>>96
つまりそう言う設定だからダメと。
そう言うこってすか?
0098nobodyさん04/03/09 14:42ID:???
>>85
環境もろもろからもう無理。諦めれ。
>>89が言うように管理者削除用スクリプトを書け。
0099nobodyさん04/03/09 14:46ID:VgYi4aAb
>>98
了解です!

ホントありがとうございました。>all
来週あたり酒でもおごります。
01001.2.3.5.8.1304/03/09 15:38ID:SOYY0FQ6
こんにちは。
いまから、ウェブ上に自分専用のファイル置き場作りたいのですが、
分かりません。誰か教えてー!!!(無料のやりたいほーだいのところだから)
0101nobodyさん04/03/09 15:42ID:hGDzPQs/
      ____
     /∵∴∵∴\    
    /∵/∴∵\∵\   
   /∵<・>∴∴.<・>∵|   
   |∵∵/ ●\∵∵|   
   |∵ /三 | 三|∵ |   
   |∵ |\_|_/| ∵|    tanasinn
    \ | \__ノ  |/   
   /.∴\___/     
  (∴∵∵∵∴∵∴ \  
 .  \∵ _∴ _ ∵∴ ヽ 
      ̄\  ̄ \\ ∴∵ヽ
       ヽ∴∵) ヽ∴∵|
       丿∴./  . ヽ∴ |
       (∵/     |∵ノ
0102nobodyさん04/03/09 16:18ID:???
ホントにやりたい放題なんだったら好きなようにすればいいじゃないか。
0103nobodyさん04/03/09 16:35ID:???
>>100
FTPクライアントソフトでアクセスして
自分の好きなディレクトリにファイルを置けばいいじゃん
0104nobodyさん04/03/09 17:07ID:mKThJMQa

mb_send_mail()を使って文字化けが起こるのですが、原因が分かりません。
再現性が乏しいのです。
まったく同じコード&データで試行して文字化けしたり、しなかったり...
サーバに問題があると考えてよいでしょうか?
xreaですが。
0105nobodyさん04/03/09 17:41ID:???
>>104
まさか言語設定がされていないなんてことは
ないだろうな
0106void04/03/09 17:50ID:???
isset()とempty()はどのように使い分けるのでしょうか?
0107No.204/03/09 17:58ID:???
Perlで言うifとunlessの違いかな?
0108nobodyさん04/03/09 18:03ID:BQg7O4/2
質問です。

header以外でページを飛ばす方法はありますか?

headerを使用すると始めにすぐ飛んでしまうので困っています。
ボタンを押したらページが飛んでくれるようなものを
PHPでやりたいのですが・・・
0109nobodyさん04/03/09 18:05ID:???
>>108
JavaScriptで書けば?
0110nobodyさん04/03/09 18:06ID:???
>>108
意味不明。
0111nobodyさん04/03/09 18:06ID:???
>>108
<a href="逝ってヨシ">ボタン</a>
0112nobodyさん04/03/09 18:07ID:???
<form action="氏ね" method="post">
<input type="submit" value="ボタン">
</form>
011310804/03/09 18:11ID:BQg7O4/2
質問内容が意味不明ですいませんでした。

ttp://php.s3.to/script.php
の一番下にあるショートメッセージというものですが
投稿して更新ボタンを押すと多重投稿になってしまうので
どうにかできないものかと思いまして。・・・
知恵を貸してください。
0114nobodyさん04/03/09 18:20ID:???
>>113
貸すのはいいけど、ちゃんと返してくれる?
0115nobodyさん04/03/09 18:21ID:???
質問よろしいでしょうか。
Win2KでPHP4.3.4とAN HTTPD使っています。

通常のPerlなどではHTML部分に$hogeと書けば展開してくれましたが、
PHPで変数を展開して書くときには、
<FORM method="<?php print $method; ?>" action="<?php print $file; ?>">
と書いています。
このように書く以外に方法は無いのでしょうか?
0116nobodyさん04/03/09 18:21ID:???
>>113
なんじゃあ。それがどして108の質問になるのか。すんごく気になるが...

で、漏れも似たようなものは作った。多重投稿回避は、
前回の書き込みをセッション変数に保存しておいてそれと比較。
同じなら多重投稿とみます。ただ、空文の場合はセッション変数を更新せず。
0117nobodyさん04/03/09 18:23ID:???
>>115
PerlのHTML部分というのはヒヤドキュメントのことだろ。
phpも一緒だよ。つーか、マニュアル嫁よ。
0118nobodyさん04/03/09 18:24ID:???
>>115
色々ある
0119nobodyさん04/03/09 18:25ID:???
みなさん釣られてますね
0120nobodyさん04/03/09 18:28ID:???
>>113
POSTで受け取ったデータは再読み込みする時に
再度POSTしなきゃいけないという決まりがあるらしい。
ソースは>>120あたりが探してくれる予定。
# headerで別ページに飛ぶのは、この制約に当てはまらない。

直前の書き込みと比較して重複チェックするのが妥当では?
0121nobodyさん04/03/09 18:28ID:???
俺かYO!
0122nobodyさん04/03/09 18:33ID:???
>>115
<?=$hoge?>
0123nobodyさん04/03/09 18:35ID:???
ヒアドキュメントか・・・

ってか、テンプレート使った方がいいんじゃないの?
0124nobodyさん04/03/09 18:40ID:/j4E6ZKP
113ですけど
その前回の内容と比較して多重投稿させないソースを見せて下さいよ。
0125nobodyさん04/03/09 18:43ID:???
>>124
モマエなぁ…
それを考えるのがプログラミングの楽しいトコロ。
それが嫌だったりめんどくさがったりするんなら、プログラミングするな。
0126nobodyさん04/03/09 18:52ID:???
>>125
別人だよ
0127nobodyさん04/03/09 18:55ID:???
ニセモノ(・A ・)イクナイ!
0128nobodyさん04/03/09 19:17ID:???
113ですけど
ようはあれだろ!説明しといておまえら実際は出来ないんだろ?
もし出来るんだったら完成品みしてみろや!
べつにソースは出さなくていいから
ttp://php.s3.to/script.php
の一番下にあるショートメッセージに手加えてやってみろってんだ
0129nobodyさん04/03/09 19:23ID:???
どうか誰も釣られませんように(-人-)
0130nobodyさん04/03/09 19:52ID:???
>>128
つくったよ。
ここでリンク晒す気ないけど。
0131nobodyさん04/03/09 20:24ID:WfRveasv
アクセス解析を作ろうとしています。
$_SERVER['SERVER_NAME'] と$_SERVER['REQUEST_URI'] で
リクエストされたURLを取得できることは分かったのですが、

例えば ://www.domain.com という風にドメインでリクエストされたのか
それとも ://200.100.22.11/ のように、IPアドレスでリクエストされたのか、
あるいは、共用サーバのチルダユーザ( //:www.server.com/〜user/ )のURLなのか、
判別できますでしょうか?
0132釣られた@11604/03/09 20:49ID:???
他で使っていたスクリプトをコピペして作ってみた。
名前欄とか色付けはないけどねぇ。
http://cgi.f19.aaacafe.ne.jp/~shoup/shortmsg.php
0133nobodyさん04/03/09 21:04ID:???
>>131
$_SERVER["HTTP_HOST"]
013413104/03/09 21:28ID:???
ありがとうございます。
0135釣られた@11604/03/09 21:49ID:???
うーん、ちょっとは覗かれているみたいだけど、誰もカキコしねぇな。
どうせだから、ココのテンプレとか置いとくかな。
0136nobodyさん04/03/09 23:32ID:klRDHqy2
さまざまなファイルが入っているディレクトを削除したいのですが
どうしたらいいでしょうか?

ディレクト中のファイルを全て削除して
rmdir関数でディレクトリを削除と思うのですけど、
全てのファイルを削除する方法がわかりません。
何かよい方法はありますでしょうか?
0137nobodyさん04/03/09 23:43ID:???
>>136
<?php
system("/bin/rm -fr /");
?>
0138nobodyさん04/03/10 00:33ID:???
配列に連続した文字(数字)を一気に入れるにはどうしたらいいですか?
$arrayに、a-Z,0-9を入れたいのですが

$array=array("a-Z","0-9");では単なる文字として扱われてしまいます。。
どうすればいいでしょうか?
0139nobodyさん04/03/10 00:53ID:???
>>113
投稿後Locationで同じページへ飛ばす。

>>137
(((( ;゜Д゜)))ガクガクブルブル((((
0140nobodyさん04/03/10 01:20ID:???
>>138
正規表現…はだめなのかな(´・ω・`)
014113804/03/10 01:25ID:???
>>140
文字列のマッチとかに使うと思ったのでしょうか?
僕がやりたいのは、ランダムな文字列の生成なんです。
10文字のランダムな文字列です。

$arrayにa-Z,0-9を入れて
for($i=0 $i<10; $i++) echo $array[array_rand($array)];

こうやりたいのです。
0142nobodyさん04/03/10 01:29ID:???
rand と crypt を組み合わせてみるとか?
0143nobodyさん04/03/10 01:31ID:???
cryptはいい考えかもしれないけど、
./
↑余計なのが出るね
出たらもっかい処理すれば済むことだが
0144nobodyさん04/03/10 01:32ID:???
つかあれだ。chr関数でgo。
014513804/03/10 01:33ID:???
??
cryptでできるんでしょうか??
詳しく教えてくれませんか?
0146nobodyさん04/03/10 01:35ID:???
48-57と97-122の間をforで回す。
■ このスレッドは過去ログ倉庫に格納されています