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

【PHP】質問スレッドpart30【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/10/25(火) 06:50:06ID:Q4oGlTH3
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0756nobodyさん2005/11/20(日) 09:19:02ID:???
>>755
ちゃんと嫁。
レベル別に分けろって書いてるの
0757nobodyさん2005/11/20(日) 09:35:01ID:???
レベルはどのように分けるの?
レベル別に分けるというなら細かく規定しないと意味ないよ。
0758nobodyさん2005/11/20(日) 10:16:23ID:???
>>736はどうよ?
0759nobodyさん2005/11/20(日) 12:57:52ID:???
なんかもう完全に質問者側の立場そっちのけだな
0760nobodyさん2005/11/20(日) 14:00:32ID:???
別にこのスレは質問者側のものでも回答者側のものでもないのでルールさえ守れば何を書いても自由だよ
0761nobodyさん2005/11/20(日) 14:46:31ID:???
レベル、レベルと言ってる奴ほど、実はたいしたレベルではないという罠
0762nobodyさん2005/11/20(日) 16:28:55ID:Tn2gjfrX
phpでそのディレクトリのファイルを拡張子順にソートするにはどうすればいいんですか?
0763nobodyさん2005/11/20(日) 16:36:15ID:???
>>762
いろいろとやり方があると思うが、
・拡張子別に配列(s)に取り込む。
・それぞれの配列に対してソートをかける。
つーのが直感的に分かり易くていいんジャマイカ?
0764nobodyさん2005/11/21(月) 00:41:50ID:???
>>762
効率的じゃないけど短く書くなら
$files = ファイル名の配列
$tmp = array();
foreach ($files as $file) $tmp[$file] = strrchr($file, ".");
asort($tmp);
$files = array_keys($tmp);
0765nobodyさん2005/11/21(月) 01:42:09ID:???
>>761
みんな低いなりに頑張ってるんだよ
0766nobodyさん2005/11/21(月) 17:02:24ID:???
そうだよ、誰だって通る道なんだよ。
0767nobodyさん2005/11/21(月) 21:08:48ID:???
http://www.php.net/manual/ja/language.oop.newref.php
(PHP 4以降ではリファレンスカウンティングを使用しているため、)参
照ではなくコピーを返すことで性能が低下することはありません。逆に
多くの場合、参照を使うよりも単純にコピーを使った方が良い結果とな
ります。これは、参照の作成には時間がかかりますが、コピーの作成に
は理想的には時間が全くかからないからです。(ただし、大きな配列ま
たはオブジェクトでその一つが変更されると、次々に参照先の他の要素
に参照先に波及するといった場合を除きます)

newする時&=はしない方が良いのでしょうか?
0768nobodyさん2005/11/21(月) 22:26:54ID:???
phpを利用して、フォームに入力した内容を
mailto アンカーのbodyに送るにはどうしたらいいですか?
0769nobodyさん2005/11/21(月) 22:32:52ID:???
>>768
PHPは鯖で動くもので、mailtoスキーマはブラウザ側で動くもの。
web制作板に誘導したい所だけど、もうちょっと詳しく書かないと罵倒されて終わりと思われ。
0770nobodyさん2005/11/21(月) 22:34:03ID:???
<form action="mailto:">
だったかな?
PHPで出来るわけない。
07717682005/11/21(月) 22:45:56ID:???
言葉足らずで申し訳ございません。
現在、sendmailを使ってメールフォームを作っているのですが、

フォームに記入した文字をメーラーにて送信
1.フォームに記入して、画面下の送信ボタンを押してもらう。
2.1の内容を画面表示する確認画面。
3.2の画面の送信ボタンを”mail to” のボタンに変更
 <a href="mailto:[email protected] ?Subject=無題&body=[なにがし](引数)[なにがし]">メールを送る</a>

のようなことをできると知人から聞いたのですが、
詳しいやり方が分かりません。
今は、知人に聞くこともできず、
いろいろ調べていたところです。

このような方法は、無理なのでしょうか?
よろしくお願いします。
0772nobodyさん2005/11/21(月) 22:49:08ID:???
>>771
言葉足らずというよりも知恵足らず…
もう少し、頭は使ったほうがいい。
というより、まずはフォームに入力したものを画面に表示するところから。
(ってか、それが出来れば問い自体が終了か…)
07737682005/11/21(月) 22:52:48ID:???
>772
有り難うございます。
ただ、現在、sendmailを使ったメール送信は機能しております。
それを、mailtoを使ったものに変更したいんです。
フォームに入力したものを画面に表示することはできています。
0774nobodyさん2005/11/21(月) 22:54:29ID:???
>>771
"<a href="mailto:...略" を echo で出力してやるだけのことなんだが…
"フォームから入力" → "確認画面" → "送信" でメーラーが開いてユーザーが送信するって変ぢゃまいか?
メール送信フォームとして、ホントに正しいのか?
07757622005/11/21(月) 23:22:32ID:Aq1woluR
>>763-764
おくれましたがとってもありがとうございました。
0776nobodyさん2005/11/21(月) 23:24:29ID:???
こういう感じにしたいんじゃないかな。

フォーム表示 form.html bodyを入力

確認画面 confirm.php
<form method="mailto:〜">
<input type="hidden" name="body" value="<?= $_POST['body'] ?>">
<input type="submit">
</form>
んでも、できないね。コレ。
0777nobodyさん2005/11/21(月) 23:31:13ID:???
>>773
いみわかんねぇな…
フォームの入力内容を画面に表示できるのなら、
<a href="mailto:[email protected] ?Subject=無題&body=[なにがし](引数)[なにがし]">
の「なにがし」をその内容にすれば良いだけだろうに。
・・・まてよ?ひょっとして「urlencode」が知りたいのか?
それとも釣りか?
0778nobodyさん2005/11/21(月) 23:39:42ID:???
>>767
コンストラクタで何してるか判らないクラスは
与り知らない場所で勝手にコピーされると問題になるかもね。
コンストラクタ内で register_shutdown_function してる時とか。
しっかり参照で受け取っておきましょう。
0779nobodyさん2005/11/22(火) 03:42:47ID:???
>>777
さすがにそこまでエスパーしなくていいのでは?
もしかすると、文字列結合とかができないんじゃないの?
0780nobodyさん2005/11/22(火) 04:37:13ID:S56rw+w2
スレタイに「エスパー常駐」とか「トンデモ質問箱」とか書いて隔離したほうがとオモタ。
07817732005/11/22(火) 09:41:40ID:???
いろいろ有り難うございます。
一応、

<form action="mailto:[email protected]?Subject=ああ&body=
<?php
foreach($_POST as $key=>$var) {
echo($key." --- ".$var."\n");
}
?>
" method="POST">
以下略

という形で、一応希望の動作にはなりました。
ただ、メーラーに送る際、\nが認識されずに
改行がうまくいきません。
どうしたらいいでしょうか?
07827732005/11/22(火) 09:51:16ID:???
解決しました。
0783nobodyさん2005/11/22(火) 10:01:00ID:???
ひょっとしてmailtoで開くメーラの本文に、フォーム上で編集した本文を入れた状態で立ち上げたいとか
0784nobodyさん2005/11/22(火) 10:01:39ID:???
>>781
PHPの話じゃなくてhtmlの話なんで、そっちを勉強なさい。
つ[RFC2368,RFC1738]

ま、RFCに準拠した動作をしないソフトはMS製に限らず多くある訳だが
0785nobodyさん2005/11/22(火) 14:26:59ID:NrH69ETF
PHP5でnamespaceが却下された理由ってどなたかご存知ですか?
実用上の話題ではなく興味上の話題で申し訳ないのですが。
Web上でソースを見つけることができなかったので教えていただけると幸いです。
0786nobodyさん2005/11/22(火) 14:42:53ID:???
>>785
php.internalsの過去ログを漁れば見つかると思うけど、確かZeevの鶴の一声で却下。
6での導入が再検討されてるみたいね。
http://news.php.net/php.internals
0787nobodyさん2005/11/22(火) 14:46:06ID:???
確かパフォーマンスが著しく悪化したからとか何とかだった希ガス
0788nobodyさん2005/11/22(火) 15:24:10ID:???
そうそう、で今のCVS HEADでは改善されてるんだっけ?
07897852005/11/22(火) 15:37:58ID:NrH69ETF
>>786-788
レスどうもありがとうございます。
とりあえず>>786さんのリンクを漁ってみます。
量が膨大ですね(^^;
namespaceでパフォーマンス悪化ですか。
それよりも実装を優先して欲しかったですね。
PHPのパフォーマンスってコンパイル時よりも実行時の方がウェイトが高そうですし。
(測ったことないですが・・・)
PHP6で実装されることを切に願うばかりですね。
0790nobodyさん2005/11/22(火) 15:44:05ID:S56rw+w2
大規模サーバではパフォーマンスの方が大事だろうよ。
PHPなんて採用されてなんぼだし。
0791nobodyさん2005/11/22(火) 15:57:58ID:???
>>789
スクリプト言語だし。
0792nobodyさん2005/11/22(火) 17:50:59ID:???
>>790
namespace導入でPHP採用をやめるとこがあるほどパフォーマンス落ちするものですかな?
それなりにOOできるんだしnamespaceくらいあってほすぃ
0793nobodyさん2005/11/22(火) 19:40:06ID:???
環境(すべて/usr/local配下にinstall)
OSX10.4.3
PHP.5.0.5
Apache2.0.55
sqlite3.2.7

初心者お約束の郵便番号データをsqliteコマンドから
流し込んでdbを作成して

define('DB', '/path/to/zip_db');
$db = sqlite_open(DB, 0666) or die(DB . " DBが開けません!¥n");

としたんですが

PHP Warning: sqlite_open(): file is encrypted or is not a database

と怒られちゃいました。zip_dbのファイルは確かにpathの位置にあります。
PHPは--with-eqliteと--enable-sqlite-utf8をつけてコンパイルしてます。
どーしてこうなってしまうのでしょうか?

phpからsqlite_open()で動的に作成したdbがsqliteコマンドからは
encryptedと言われるのは判りましたが、同じ仕様だとphpからsqliteを
使う場合は常に動的に作成しないとダメということでしょうか?
0794nobodyさん2005/11/22(火) 19:47:28ID:???
>>793
PHP5はSQLite Ver2系にしか対応していないので、Ver2系をインストールして
データベースを再作成する。
または、PDOではVer3系に対応しているので、PDOをインストートルして
PDO経由でデータベースを扱う。
0795nobodyさん2005/11/22(火) 19:55:38ID:???
>>794
ぬおっ!?そうだったのですか…勉強不足でした。
勉強してきます。ありがとうございました
0796nobodyさん2005/11/22(火) 22:07:48ID:4gN/7PSO
MagpieRSSを使って、自分のブログのRSSをPHPで別サイトに表示しているのですが、
現在は、見出し・概要・本文を表示しているのですが
これを
見出し・概要・「本文の画像」のみ
という風に表示したいのですが、
だれかコード書いてくれませんか?
0797nobodyさん2005/11/22(火) 22:57:04ID:???
>>796
いくら出す?
0798nobodyさん2005/11/22(火) 23:08:09ID:???
>>796
このスレは、こんなカスのカキコもOKなのか…
0799nobodyさん2005/11/22(火) 23:13:20ID:???
なんでも有りだな。このスレ。
くだスレと分ける必要もないんじゃね?
0800nobodyさん2005/11/22(火) 23:34:38ID:4gN/7PSO
だからコード書いてくれよ
0801nobodyさん2005/11/23(水) 00:15:29ID:???
もう二度とコードが書かれることはあるまい
0802nobodyさん2005/11/23(水) 00:37:33ID:???
自演乙
0803nobodyさん2005/11/23(水) 02:40:35ID:???
>>800

>>797
0804nobodyさん2005/11/23(水) 06:16:23ID:???
20万までなら出す
0805nobodyさん2005/11/23(水) 06:18:26ID:???
そしてすかさず引っ込める
0806nobodyさん2005/11/23(水) 07:08:11ID:???
>>804-805
・・・何?ワロスとか書いたらいいの?

最近、馬鹿が多いから俺みたいにネタ
にレスつけんのやめような
0807nobodyさん2005/11/23(水) 07:36:08ID:???
まあ俺は続けるんだけどなw
0808nobodyさん2005/11/23(水) 10:31:32ID:???
朝ご飯何食った?
0809nobodyさん2005/11/23(水) 10:38:03ID:???
ナットースト
0810nobodyさん2005/11/23(水) 11:35:16ID:???
ハニートースト
0811nobodyさん2005/11/23(水) 12:25:23ID:???
ジャムマーガリン
0812メール送信したい2005/11/23(水) 12:50:40ID:???
こんにちは、いまサイトを自分で作成しているのですが、メール送信のところが
うまくいきません。
検索サイトで見つけたメールフォームから送信までのテンプレを3種類ほど試しましたが、
ひっかかっている箇所の修正ができません。
テスト環境はアパッチ2・php5です、メールフォームの必要事項は氏名・メルアド・件名・
本文の四項目です。
いいテンプレございましたら教えて下さい。
できれば携帯で使えるものがいいです。
0813nobodyさん2005/11/23(水) 12:53:24ID:???
>>812
うまくいかないってのは具体的にどういうことなんだ?
0814nobodyさん2005/11/23(水) 12:55:26ID:???
>>812
オマエみたいな質問の仕方も知らん奴はくだすれに行けよ
0815nobodyさん2005/11/23(水) 12:56:05ID:???
>>796
【 スクリプト改造依頼スレ 】(丸投げ) part4
http://pc8.2ch.net/test/read.cgi/php/1127916965/
0816nobodyさん2005/11/23(水) 12:57:26ID:???
>>812
つ[<a href="mailto:[email protected]">メール送信</a>]
0817nobodyさん2005/11/23(水) 14:35:19ID:???
Array
(
[0] => abc
[1] => def
[2] => ghi
)
で、array[$i]に g が含まれている、いないの場合分けってどうやればいいんですか???
0818nobodyさん2005/11/23(水) 14:47:25ID:???
>>817
forで回してereg_match
0819nobodyさん2005/11/23(水) 14:54:23ID:???
含まれるか含まれないかで処理を変えたいだけなら foreach の中で if すりゃいいわけだけど
そうではなくて、こういうこと?
$a = array("abc", "def", "ghi", "jkl", "mno");
$b = preg_grep("/^[^g]+\$/", $a);
var_dump($a, $b, array_diff(array_keys($a), array_keys($b)));
0820nobodyさん2005/11/23(水) 15:07:03ID:n7W1uJ4U
あふぉな質問かもしれないです、
exec()でsshで操作させようと思うのですが、
ssh許可されているサーバでしかもちろん使えませんよね?
あふぉですまそ。
exec()でコマンドなんかは呼び出せるからどうなのかなと思いまして。
0821nobodyさん2005/11/23(水) 15:09:35ID:???
>>820
アフォなのは良くわかったからもう少し文章を整理してくれないか
0822nobodyさん2005/11/23(水) 15:11:29ID:???
>あふぉな質問かもしれないです
いえ、あふぉ、そのものです
PHPの勉強の前に日本語学校に通ってください
0823かにたま ◆kani39TDoc 2005/11/23(水) 15:36:38ID:qoUPjdNn
http://pc8.2ch.net/test/read.cgi/hack/1132327777/122
0824nobodyさん2005/11/23(水) 16:05:55ID:???
filemtime()を使ってファイルが最後に変更された時間を表示させてます。
他のサーバーでは正しく動いたんですが、自鯖では上手くいきません。
ディレクトリは正しい時刻が取れるんですがファイルの時刻が、
1970/01/01 09:00:00になってしまいます。
php.iniの設定かと思うんですが、何処を変更したらいいでしょうか。
0825nobodyさん2005/11/23(水) 16:13:32ID:???
本当ならどういう時刻が表示される筈なの?
0826nobodyさん2005/11/23(水) 16:16:52ID:???
>>824
バーカバーカw
死んでしまえwwww
0827nobodyさん2005/11/23(水) 16:30:24ID:???
>>820
うん。

>>824
まず環境書かないと。あとエラーは何も表示されてないの?
0828nobodyさん2005/11/23(水) 18:00:07ID:???
ftp_connect() とかを使いたいのですが、
セキュリティの関係上SSLを通したいと考えています。
この場合どのような方法をとれば良いでしょうか?
そのphpをSSL通して動かしただけではftp部分はセキュアには
なりませんよね?
0829nobodyさん2005/11/23(水) 19:14:24ID:???
>>828
ポートフォワーディング
0830nobodyさん2005/11/23(水) 19:32:28ID:???
>>826
>>828
ごごめんなさい。表示したいディレクトリのパスが間違ってましたごめんなさい。
08318282005/11/23(水) 21:58:12ID:???
>>829

レスありがとうございます、
phpでポートフォワーディングを実現することは可能なのでしょうか?
かなり難解そうな気がしますが・・・
0832nobodyさん2005/11/23(水) 22:43:19ID:???
>>830
おまいは俺の知り合いのような気がする。
0833nobodyさん2005/11/24(木) 00:54:16ID:1FyGYiu1
>>828
peclでssl2ライブラリがある。
PHPマニュアルにも載ってるよ。
漏れは挫折した・・・

ポートフォワーディングはルータでやればいいのではないかと・・・
0834nobodyさん2005/11/24(木) 03:52:03ID:???
すいません質問があります。

PSQLのtimestamp型の列を扱う
標準関数ってありますか?

2005-11-11 10:00:00
と
2005-11-12 11:00:00
の時間を比較して差を出したり
他にもそういう関係の関数ってありませんでしょうか

自分で作るしかありませんか?
08358342005/11/24(木) 03:52:40ID:???
上はPHPのでの話です
0836nobodyさん2005/11/24(木) 05:35:36ID:???
>>834
つ strtotime
0837nobodyさん2005/11/24(木) 06:10:16ID:???
いや、DBでやれよ
0838nobodyさん2005/11/24(木) 08:25:39ID:oCc1MCAs
いちいちDBでやってたら遅いPHPがますます遅いよ(w
0839nobodyさん2005/11/24(木) 12:44:27ID:???
もしかしてDBにどうやって日付が格納されてるのか知らないのかこの馬鹿
0840nobodyさん2005/11/24(木) 12:56:22ID:???
DBでやった方が遅いのか。。。。初めて知ったぞ

よければ遅くなる根拠となる資料さらしてくれませんか?
0841nobodyさん2005/11/24(木) 13:58:57ID:???
>840
なんにも知らないんだなw
0842nobodyさん2005/11/24(木) 14:24:01ID:???
>>841
レス番が間違ってるようだが?
0843nobodyさん2005/11/24(木) 14:53:18ID:???
もう後に引けなくなっちゃったんだね。カワイソス。
0844nobodyさん2005/11/24(木) 15:07:38ID:???
>>836
ありがとうございます。
解決しました。
0845nobodyさん2005/11/24(木) 15:35:44ID:???
解決するなよw
0846nobodyさん2005/11/24(木) 15:58:11ID:oCc1MCAs
>>840
よければPHPで処理した方が遅くなる根拠となる資料さらしてくれませんか?
0847nobodyさん2005/11/24(木) 16:00:01ID:???
>>846
日本語わかる?
08488412005/11/24(木) 16:07:44ID:???
>846
ほんとですよね。

馬鹿の一つ覚えでDBで実行ですかw
ワロスワロス
0849nobodyさん2005/11/24(木) 16:52:06ID:???
Select文で引っ張るときに変換するのが早いんじゃないのか?
0850nobodyさん2005/11/24(木) 19:32:49ID:???
PostgreSQLのDBのオープンからクローズまでの
排他制御って保障されていますか?

DBのオープン
  ↓
テーブルから値をロード
  ↓
インクリメント
  ↓
テーブルに保存しなおす
  ↓
DBのクローズ

この間に別プロセスが割り込むような事はありますか?
0851nobodyさん2005/11/24(木) 19:44:24ID:???
んなもんトランザクションかければええやん
0852nobodyさん2005/11/24(木) 20:45:03ID:???
少しつつかれた位でなさけない奴だな
0853nobodyさん2005/11/25(金) 07:55:34ID:???
特定のidをふったURL
http://xxx.xxx/index.php?no=1のうようなもの
をクリックして飛んできたかどうかをチェックして、
ログに残すにはどうしたらいいですか?
0854nobodyさん2005/11/25(金) 08:30:25ID:???
URLが規定通りかチェック
 ↓
IDを取得
 ↓
ログに書き出し
こんな感じかしら?
0855nobodyさん2005/11/25(金) 09:23:04ID:???
>>854
それだとURL直叩きでもカウントしちゃうんでない?
■ このスレッドは過去ログ倉庫に格納されています