【PHP】質問スレッドpart28【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/05/05(木) 17:17:11ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
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辺り
0411nobodyさん
2005/06/09(木) 00:18:42ID:???0412nobodyさん
2005/06/09(木) 00:51:26ID:???・cURL関数を使う
・PEARのHTTPエージェント(だっけ?)ライブラリを使う。
0413nobodyさん
2005/06/09(木) 14:58:57ID:RW1olHwC0415nobodyさん
2005/06/09(木) 15:08:57ID:yRdQnuICfopenでファイル名を指定すればコードwで自動作成されるのかな?
0417nobodyさん
2005/06/09(木) 15:17:20ID:Ni6QuDwq0418nobodyさん
2005/06/09(木) 15:17:55ID:Ni6QuDwq0420nobodyさん
2005/06/09(木) 17:08:52ID:yZsyb8/90421nobodyさん
2005/06/09(木) 17:24:05ID:???0422nobodyさん
2005/06/09(木) 17:24:51ID:???0423nobodyさん
2005/06/09(木) 17:37:57ID:???0424nobodyさん
2005/06/09(木) 17:57:28ID:???0425nobodyさん
2005/06/09(木) 19:23:06ID:zoe0L2G9のしたHPを紹介して今の会社おとついはいりました。
いきなり検索システムをつくってくだささいといわれまったくなにを
したらいいかわかりません・・・・どうなってるといわても
すみません設定がまだといいつつ二日になりました・・・
もう言い訳できそうにありません・・検索システムって初心者の
僕がつくるにはどうしたらいいでしょうか?
PHPの文法もまったくわかりません・・・
どこかにまるまるコピできるやつで短めで簡単ぽいのおしえてください
お願いしますTT
0426nobodyさん
2005/06/09(木) 19:27:17ID:???のしたHPを紹介して今の会社おとついはいりました。
いきなり検索システムをつくってくだささいといわれまったくなにを
したらいいかわかりません・・・・どうなってるといわても
すみません設定がまだといいつつ二日になりました・・・
もう言い訳できそうにありません・・検索システムって初心者の
僕がつくるにはどうしたらいいでしょうか?
PHPの文法もまったくわかりません・・・
どこかにまるまるコピできるやつで短めで簡単ぽいのおしえてください
お願いしますTT
0427nobodyさん
2005/06/09(木) 19:36:01ID:???$point = $_GET['pos'];
$word1 = array("N","E");
$word2 = array(".",".");
$point = str_replace($word1,$word2,$point);
list($dummy,$N1,$N2,$N3,$N4,$E1,$E2,$E3,$E4) = split( ".",$point);
という文を組み立てたんだが
ハイラねえ(´A`;)
$point = str_replace($word1,$word2,$point);
の時点で
.32.29.77.366.134.85.11.384
が$pointに格納されていたんだが
list($dummy,$N1,$N2,$N3,$N4,$E1,$E2,$E3,$E4) = split( ".",$point);
で各変数に格納できない・・・
なぜだ・・・
>>426
釣りか?
0428nobodyさん
2005/06/09(木) 19:47:11ID:???多分、想いっきり勘違いしてる
↓splitのマニュアル
>pattern は正規表現であることに注意して下さ い。
explodeを使うべきかと
0429nobodyさん
2005/06/09(木) 19:51:05ID:???split( string regex, string source )
正規表現で . は任意の文字列。つまり全てにマッチしてる。
explode() のが動作早いし目的に合ってるからそっち使え。
0430427
2005/06/09(木) 19:59:43ID:???正常に動いたよ(・∀・)b
0431自動返信
2005/06/09(木) 21:58:57ID:jH9aJbMCユーザーに空メールをおくってもらい、そのメールアドレスをとりだしデータベースに登
録するというサンプルを作りたいんですがどうしたらいいでしょうか?
qmailだとメールが届いたら特定のスクリプトを実行というものがあるようですが、今の
Postfix+Dovecotの環境でメールが届いたらデータベース登録のPHPスクリプトを読み出
すという形にしたく悩んでいます。
PostfixはMaildir/形式にしてあります。
最終手段として定期的に/home/(user)/Maildir/の中をチェックという方法しかないかと
思っていますがもし何か解決策ご存知でしたら教えてください。
PHPとは直接は関係ないかもしれませんが、メールを受信したかどうかをどう取得するか。
0432nobodyさん
2005/06/09(木) 22:05:40ID:???/etc/aliasesに
hoge: "/path/to/php -f hoge.php"
で、ええんちゃうの?
0433nobodyさん
2005/06/09(木) 22:06:43ID:???hoge: "| /path/to/php -f hoge.php"
ね。
0434(3-1)
2005/06/09(木) 22:36:09ID:???思う動作をしてくれなくて困ってます。
何か手がかりを教えて下さい。
uploader.html
<html>
<head>
<title>File Uploade</title>
<META http-equiv="Content-Type" content="text/html; charset=x-sjis">
</head>
<body>
<form method="post" enctype="multipart/form-data" action="uploader.php">
<input type ="file" name="upfile">
<input type ="submit" value="uploadする">
</form>
</body>
</head>
0435(3-2)
2005/06/09(木) 22:36:47ID:???<html>
<head>
<title>File Uploarder</title>
<META http-equiv="Content-Type" content="text/html; charset=x-sjis">
</head>
<body>
<p> file uploader </p>
<?php
$updir = "./upload/";
$filename = $_FILES['upfile']['name'];
if (move_uploaded_file($_FILES['upfile']['tmp_name'],$updir.$filename) == FALSE){
print("Upload failed...");
print($_FILES['upfile']['error']);
}else {
print("<b>" . $filename . "</b> uploaded!");
}
?>
</body>
</html>
0436自動返信
2005/06/09(木) 22:37:42ID:jH9aJbMCありがとうございます!
↓参考にして調べたところこんな情報ページがありました
http://www.itmedia.co.jp/help/tips/linux/l0349.html
もう少し勉強して実験してみますね!
0437(3-3)
2005/06/09(木) 22:39:26ID:???適当にファイルを選択後送信してみても
file uploader
Upload failed...
だけしか表示されず旨くいきません。
自分の環境はローカルでPHPをテストする為だけの環境なので
WindowsXP+Xamppです。
0439(3-3)
2005/06/09(木) 22:47:36ID:???ありがとうです。
でも結果は変わらずでした。
打ち間違いは無いと思うのですが(何度も確認したので)
参考書の誤字か、私の環境が悪いのかと疑っています
ソース的には問題はないのでしょうか?
0441(3-3)
2005/06/09(木) 22:59:02ID:???もちろんです。
ただ、環境はWindowsですのでアクセス権の設定はしていません。(出来ないのかな?)
それが問題でしょうか?
0442nobodyさん
2005/06/09(木) 23:11:01ID:???スクリプト的には問題なさそうだから
error_reporting(E_ALL);
をuploader.phpの<?phpの次の行に追加してみたら。
0443nobodyさん
2005/06/09(木) 23:19:42ID:???0444(3-3)
2005/06/09(木) 23:20:32ID:???むむ!?
なにやら沢山出てきました。
グーグル先生に聞いてきます。
みなさん有難うございました。
file uploader
Notice: Undefined index: upfile in C:\apachefriends\xampp\htdocs\project\upp\uploader.php on line 11
Notice: Undefined index: upfile in C:\apachefriends\xampp\htdocs\project\upp\uploader.php on line 12
Upload failed...
Notice: Undefined index: upfile in C:\apachefriends\xampp\htdocs\project\upp\uploader.php on line 14
0445nobodyさん
2005/06/09(木) 23:21:25ID:???買おうかどうか悩んでるんだけど、レビューしてる人見かけないし・・・。
地雷かな?
Eclipseもいいけど、色んなの使ってみたいなとも思ってて。
0447nobodyさん
2005/06/09(木) 23:46:51ID:???よほど大規模な開発にはよさげだけどね
でもかなりの部分はEclipseでも賄えちゃうしなあ
俺はまず使うこと無いな
0448自動返信
2005/06/10(金) 00:08:58ID:gLWzFcyIこれは成功したんですけど、送信されてきたメールアドレスをこのPHPスクリプトに渡したいんですが、まずメールアドレスの取得方法は何かありませんか?
0449nobodyさん
2005/06/10(金) 00:52:21ID:???ぉぃぉぃ。
qmailだと実行できるとか、Maildir/を見るしかないとかを>>431で書いておきながら、
実は何も知りませんてか。
エンベローブFromは取れないが、Mailヘッダも含めて標準入力から来てるだろ。
0450自動返信
2005/06/10(金) 00:58:44ID:gLWzFcyIすみません…そのとおり何も知らないんでどうしようもなく質問させていただきました。
qmailだと実行できるというのはそういう一言情報が調べたときにありましたが、という意味で書きました。
Maildir/については、メール内容などがどういう風に書き込まれてるかを調べていけば読み出すことでできるかもしれないという自分なりの考えを述べたつもりです。
こんな/etc/aliasesというものをまったく知らなかったので。
標準入力からきているというヒントでも正直よくわかりません…。
どこでどう取得すればいいんでしょうか?
0451nobodyさん
2005/06/10(金) 01:08:30ID:???$mail = file_get_contents('php://stdin');
これで、メールの内容(ヘッダ込)が全て$mailに入るから、
適当なファイルに書き出して、どのような中身になっているか見てみるがいい。
後は、マニュアルのmailparse関数等を参考に。
0452nobodyさん
2005/06/10(金) 01:13:11ID:???mailparse関数を使えって意味じゃなくて、そこに書いてある内容を参考にって意味だったんだが、
何も書いてないよなw
RFC822とか、その他いろいろググってってことで。
0453自動返信
2005/06/10(金) 01:44:05ID:gLWzFcyIありがとうございます。
PHPのCLI版はさっきいれたところで、このような形で標準入力を取得できるとは知りませんでした。
標準入力を取得し、それをファイルに書き出すまでは成功してるんですが、いざ、メールの内容取得となると取得できていません。
現時点まででしたことをまとめると
/etc/aliasesにroot:"|/usr/bin/php /home/sample.php"を追記
/home/sample.phpに以下のコードを記述
$mail = file_get_contents("php://stdin");
$fp = fopen("mailh.txt","w");
fwrite($fp,$mail);
fclose($fp);
まだ何か勘違いしているのでしょうか?
RFC822の情報はありがとうございます。
メールヘッダの形式もあいまいだったのでこの機会に習得しておきたいと思います。
0455nobodyさん
2005/06/10(金) 01:53:30ID:???一度も使ったことがないなら、登録してFree Evaluation(英語版)で試してみなよ。
バージョンが上がる度に良くなってる点は評価できるけど、
Java使ってて動作がもっさりだなと思わないこともない。Eclipseもいっしょだが。
まあ、今時のマシンだと気にするほどじゃないけどね。
0456自動返信
2005/06/10(金) 01:54:08ID:gLWzFcyI遅くまですみません、でも何か解決策が見えると思います。
がんばってみます。
昼4時から取り組んで悩んでいたので解決に光が見えてきて本当に嬉しいです。
本当にありがとうございます。
自分もこういう質問に答えられるくらいになるようもっと勉強します。
0457自動返信
2005/06/10(金) 02:12:27ID:gLWzFcyIできました!
きちんと$mail=file_get_contents("php://stdin");で$mailに入っていました。
まずそもそもrootに対してメールが送られたときにファイル書込みができているのだろうかと思い適当な文字をファイル書込みしようとしました。
すると適当な文字aaaとかにもかかわらずファイル書込みがされませんでした。
じゃあこのスクリプトを呼び出していないのかというとそうでもなく、mail関数などは正常に動作していて、きちんとスクリプトを呼んでいることがわかりました。
そこでmail関数を使用して、$mailで取得したヘッダ内容を自分の携帯電話へ送ってみたところ正常に動作しました。
なぜファイル書込みができなかったかを考えたところ、おそらくこのスクリプトを実行しているのがメールサーバーだからだろうと思い/homeを777にして書き込み権限を与えました。
すると成功しました。
長かったですがやっと成功できました。
本当にありがとうございました。
本当にいくら感謝してもしきれません。
もっとPHP単体だけでなく他プログラムとのかかわりも含め勉強を重ねていきます。
0458nobodyさん
2005/06/10(金) 02:12:30ID:???>>453のmailh.txtを書き出すには、postfixが動いている権限で書き出せるように
パーミッションの設定が必要。
後は、本当にsample.phpに渡っているかmailログ等で確認汁。
今度こそ寝るw
0459nobodyさん
2005/06/10(金) 02:13:49ID:???まぁ、よかったな。
0460自動返信
2005/06/10(金) 02:14:13ID:gLWzFcyIそのとおりです。
そこまで見通せるの本当に凄いです、ありがとうございました。
0462nobodyさん
2005/06/10(金) 17:17:39ID:???dblは表示できるんだけど、jpgがどうしても上手くイカン・・・
0463nobodyさん
2005/06/10(金) 20:55:18ID:???これを、なんとか呼ぶことが出来ないものでしょうか…。
2回目にクラスを呼ぶ時点で、前に呼んだクラスはもう必要が無くなるので、未定義状態に出来ればいいのですが
そんな都合がいいことは出来ないでしょうかね・・・?
0464nobodyさん
2005/06/10(金) 21:09:27ID:???0466nobodyさん
2005/06/10(金) 21:15:17ID:???0468nobodyさん
2005/06/10(金) 23:09:41ID:???結局includeeされたファイルはただそのまま読み込まれているだけだから、
同じファイルに同じクラス名のクラスを2つ書いてることになるだろ。
それを別のものとして宣言ってのは無理だろ。
だいたい同じクラス名を使うなって。
0469468
2005/06/10(金) 23:13:45ID:???>>455
どうも使用期限が付いてるものをインストールするのは嫌なんだよね〜・・・。
ゴミが溜まりそうなので。
だからCeleron600MHz、メモリ128Mの使ってない端末に入れてみた->評価版。
ん〜・・・、すげーもっさりしてるね動作が・・・。当たり前か。
まぁでも良い感じかなぁとは思った。今月末に購入するよ。
0470nobodyさん
2005/06/11(土) 00:04:11ID:???---- Test.class.php ----
<?php
class Test {
}
?>
----------------------
---- main.php -----
<?php
require_once('Test.class.php');
require_once('Test.class.php'); // これはエラーにならない
$obj =& new Test();
?>
------------------
こういう話じゃないってこと?
0471nobodyさん
2005/06/11(土) 00:12:41ID:???特定のディレクトリ内に一番最後に格納されたファイル
(または過去n個以内の複数のファイル)のファイル名情報を取得して、
.php内に表示させる方法ってないでしょうか?
イメージとしては、
<?php echo date('m/d', filemtime('./upload/') ) ?>
↑の指定ディレクトリの更新日時を取得して表示する、の
名前取得版みたいな感じで動作させたいんですが...。
0472nobodyさん
2005/06/11(土) 00:27:43ID:???・アップロード時にテキストファイルにファイル名を書き込む
・表示させる時にディレクトリ関数・ファイルシステム関数を使ってデータ取得
etc.
0473nobodyさん
2005/06/11(土) 00:57:32ID:???本来はどれか一個しか読み込まないんですが、全てのプロパティを比較したかったんです。
---- a.php -----
class test
{
var $name = 'a';
}
---- b.php -----
class test
{
var $name = 'b';
}
通常は、どれかを選択して使用するのですが
a.phpやb.phpをリスト化したいと思ったのです。。
<li>a.php : name = a</li>
<li>b.php : name = b</li>
のような感じで。
0475nobodyさん
2005/06/11(土) 01:14:38ID:???0476nobodyさん
2005/06/11(土) 01:24:14ID:???0478nobodyさん
2005/06/11(土) 01:27:11ID:???0479nobodyさん
2005/06/11(土) 01:35:39ID:???0480nobodyさん
2005/06/11(土) 01:52:11ID:???0481nobodyさん
2005/06/11(土) 22:30:08ID:JxmTPzAIショッピングカーとぐらい、本とかみないでも
1からスクリプトかけるのか?
俺ショッピングモールいまつくってるけど、仕事で
ぶっちゃけ本みながらやってるんだけど・・・
おまえらどうなの?
0483nobodyさん
2005/06/11(土) 23:02:59ID:???見ないでも書けるけど、本見て仕事がスムーズに進むなら
別に見ても構わんと思うぞ。教科書持ち込み不可のテストでもないんだから。
リファレンスマニュアルは、手元に置いてるな。データと紙の両方。
0484nobodyさん
2005/06/11(土) 23:04:57ID:???そんなことやってたらコスト的に勿体無いから。
0485nobodyさん
2005/06/11(土) 23:14:38ID:???よくスペルとか忘れるから、マニュアル片手にやってるよ。
あと、自分で作った既存のスクリプトからコピペしたりよくやってる。
正直、関数のうろ覚えが多いんでマニュアルないとゼロから100まで作るのは無理かも。
0486nobodyさん
2005/06/11(土) 23:18:47ID:???どっちに配列だっけ…と迷う事がよくある。
0487nobodyさん
2005/06/11(土) 23:22:04ID:???それと、本を見ながら作業ってのは、余りしないな。
ネット上で探した方がコピペも出来るし作業的には楽。
0489nobodyさん
2005/06/12(日) 02:21:46ID:???0490mbstring
2005/06/12(日) 02:40:25ID:???PHPのソースを展開し
./configure --enable-mbstring
make
su
make install
何かいけないこと考えられますか?
php-cli.iniの[mbstring]設定もしました、といってもそもそもUndefinedFunctionとなるのでそれ以前の問題なんです
0492nobodyさん
2005/06/12(日) 05:32:11ID:T3M2BgYkサーバサイドで実行してくれるPHPスクリプトってどっかにありませんかね。
ご存知の方がいたらよろしくです。
一応、最初は自作しようと思ってpearのhttp_requestとか使って
まずlivedoorBLOGで試したんですが、いきなりログインまわりの
セッション保持で挫折です。cookieの送受信はきちんとやっているつもりなんですが、
どうやらそう簡単にはいかないらしく。
0493nobodyさん
2005/06/12(日) 10:24:17ID:???を
2005年06月12日 01時28分43秒
に整形したいのですが、できませんか?
0494掲示板のperlですが
2005/06/12(日) 10:37:05ID:CxMhZf98(略)
if($mail eq "fusianasan"){
$body = "$host";
}
この場合メル欄に「fusianasan」と入れると、メル欄にホストが晒される
ことになると思いますが、たとえば「俺はfusianasan」「fusianasanだよ」のように
「fusianasan」という文字列を含む場合は全てhostを晒したいという時、
$mail eq のあたりをどう書き換えればいいですか。
どうか先輩方教えて下さい。<(_ _)>
0495掲示板のperlですが
2005/06/12(日) 10:39:29ID:???$body = "$host";
}
じゃなく
$mail = "$host";
}
でした。逝ってきます。
0496nobodyさん
2005/06/12(日) 10:42:34ID:???Date関数のマニュアルをよく読む。
date("Y年m月d日 h時i分s秒")
という風に出力する形式(フォーマット)を指定できる。
0497掲示板のperlですが
2005/06/12(日) 10:42:42ID:???逝ってきます。すみません。
0498nobodyさん
2005/06/12(日) 10:56:58ID:???date("Y年m月d日 h時i分s秒") は知っています。
2005-06-12T01:28:43+09:00
を
2005年06月12日 01時28分43秒
に整形したいんです。できませんか?
0499nobodyさん
2005/06/12(日) 11:00:17ID:???0502nobodyさん
2005/06/12(日) 12:02:42ID:???正規表現使うまでもないでしょ。
形が決まってるんだから。
>>481
PHPのマニュアルはかなり優秀だと思う。
〜やりたい時はどうすればいいのだろう?
と思ったときは、まず最初にマニュアルを見る。
大概答えが書いてあるよ。
0503nobodyさん
2005/06/12(日) 14:29:13ID:???同じような挙動を取る関数を作成することは可能でしょうか。
とりあえず、PHP4の時は以下のようにしてファイルを読み込むようにしているのですが、
これだとページによっては不要なファイルも読み込んでしまいますよね。
if (PHP_VERSION < "5.0.0") {
foreach (gleb("./class/*.inc") as $classfile) {
require_once($classfile);
}
}
0504503
2005/06/12(日) 14:31:35ID:???gleb→globです。
0505nobodyさん
2005/06/12(日) 14:39:15ID:???readdirでディレクトリの中にあるファイルを全部表示させたのはいいんですけど
で、ファイルがこんな感じで表示されてるんですが
↓↓↓
〜.jpg [ファイルサイズ] 削除
〜.txt [ファイルサイズ] 削除
〜.zip [ファイルサイズ] 削除
この削除ボタンを押すと対応したファイルが消えるようにしたいんですけど
どんなスクリプト組めばいいのかいまいちわかりません。
誰か俺に教えてくださいorz
0507nobodyさん
2005/06/12(日) 15:08:44ID:???どのあたりが分からんのか説明が欲しいところだけど、
やることは簡単なので処理の流れを書いてみる。
<a href="delete.php?filename=〜.jpg">削除</a> で、削除スクリプトを呼び出すボタンを作成。
delete.phpは適切に入力チェック後、unlink()を使ってファイルを削除。
0508nobodyさん
2005/06/12(日) 15:18:11ID:???�dクス
強引に一つのスクリプトでやろうとしてたからいけなかったのかorz
0509nobodyさん
2005/06/12(日) 16:54:54ID:???いつもそうやってきたんだが
デスクトップ上で動かすことってできねえか?
■ このスレッドは過去ログ倉庫に格納されています