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

【PHP】下らねぇ質問はここに書き込みやがれ 46

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/05/12(土) 16:43:57ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0412nobodyさん2007/05/17(木) 18:05:14ID:???
>>410
ワーキングディレクトリの取得なら
getcwd( );
0413nobodyさん2007/05/17(木) 18:32:08ID:LNZtxJHm
>>412
>>411

すみません、記述不足でした。
カレントディレクトリ名とは別に、
一階層上のディレクトリ名も取得できるようにしたいのですが、
それも含めて方法はありませんか?
0414nobodyさん2007/05/17(木) 18:38:41ID:???
>>413
dirname(getcwd());
ということではないのかな
04154032007/05/17(木) 18:42:59ID:M9OeXCs3
>>404-407
ありがとうございました
[0] => Category Object ( [_cid:private] => 120 [_cname:private] => 読書 [_parent:private] => [_img:private] => c120.gif )
は配列じゃないんですね オブジェクトになるんですね。理解できてない点がわかって良かったです。
あと、>>406-407 さんのやり方で変数にアクセスする方法もわかりました。
とても助かりました。ありがとう!
0416nobodyさん2007/05/17(木) 19:00:52ID:???
incされたhoge.phpファイルのディレクトリをhoge.phpだけで知りたいってこと?
だとしたら無理じゃないか?includeは文字列とってきてevalしてるだけだと思うし

chdir("mydir");
include(."hoge.php");
//hoge.phpでdirname(getcwd());
chdir("../");
0417nobodyさん2007/05/17(木) 19:18:57ID:LNZtxJHm
>>416
getcwd( );がまったく初見でしたので、
これについてもう少し勉強してから来ます。
ググッた感じでは何とかなりそうです。
ありがとうございました。
0418nobodyさん2007/05/17(木) 19:52:40ID:LNZtxJHm
すみません、やはり予想の結果と違いました。

あくまでディレクトリ名のみを抽出したいのです。
例えば
ttp://www2.2ch.net/test/2ch.html
で test というディレクトリ名のみを抽出するにはどうしたら良いでしょうか?

現時点で思いつく方法は
dirname(getcwd()); で抽出した
ttp://www2.2ch.net/testを
explodeを使い「/」指定で削り取るというものですが、
これが最も簡潔な方法でしょうか?
0419nobodyさん2007/05/17(木) 20:04:26ID:???
なぜファイルパスとURLをごっちゃにしてるのか不明
0420nobodyさん2007/05/17(木) 20:15:27ID:???
>>418
getcwd()だと
/DocumentRoot/test
が得られる
0421nobodyさん2007/05/17(木) 20:31:51ID:???
か、どうかは別だろ。script実行時のカレントディレクトリだから。
0422nobodyさん2007/05/17(木) 20:40:48ID:Yw1DLo3E
PHP開発についての質問なんですが、
PHPエディタでプロジェクトでの開発って、秀丸などのような開発に比べて
どんなメリットがあるのでしょうか?
0423nobodyさん2007/05/17(木) 20:59:30ID:???
>>422
適当なプロジェクトで使って見れば?
小規模のスクリプトはPHPエディタ使ってるけど、
シンプルでそこそこ使いやすいよ。
0424nobodyさん2007/05/17(木) 21:45:37ID:???
>>422

最強のPHPエディタはなに?
http://pc11.2ch.net/test/read.cgi/php/1133785416/561

561 名前:nobodyさん[sage] 投稿日:2007/05/17(木) 20:34:54 ID:???
補完はタイプの速度とか面倒だからって言う意味じゃなくて、
タイポを防ぐために使うって感じかな。

vim、emacsと比較した時の秀丸の優位性ってなに?
秀丸ってデフォでPHP色分けとか補完って出来る?

0425nobodyさん2007/05/17(木) 22:23:58ID:Yw1DLo3E
>>423
とりあえずそうしてみることにします

>>424
よくわからないレスです・・・
0426nobodyさん2007/05/18(金) 03:02:03ID:ZEXAtg4A
PHPの変数の大きさについての質問です。

ある変数が何バイトか調べたい場合には何を使えばよいのでしょうか?
マニュアルによるとPHPでsizeof()ってcount()のエイリアスと書かれていたので。。。
0427nobodyさん2007/05/18(金) 03:03:50ID:???
>>426
「変数の大きさ」とは?
文字列の長さなら、strlenでバイト数を出せるけど。
0428nobodyさん2007/05/18(金) 03:05:05ID:???
>>427
変数が具体的に何バイトかです。
0429nobodyさん2007/05/18(金) 03:10:36ID:???
うああ、そうでした、半角英数字ならちょうど一文字で1バイトでしたね。。。
解決しました。ありがとうございました
0430nobodyさん2007/05/18(金) 03:10:51ID:???
>>428って馬鹿だな
strlenでいいんだよハゲ
それとID消すな
0431nobodyさん2007/05/18(金) 03:21:22ID:???
>>430
426 = 428 = 429ですが
IDの付け方がわからないです…
0432nobodyさん2007/05/18(金) 03:25:07ID:???
ID出したら負け
0433nobodyさん2007/05/18(金) 03:49:33ID:???
ID出さない奴に回答したら負けかなと思ってる
0434nobodyさん2007/05/18(金) 04:44:42ID:???
>>431
メール欄の入力を消せ。
なんで426でできてんのに分からなくなるんだ。
0435nobodyさん2007/05/18(金) 04:50:45ID:???
もうすこし泳がしてから言えばよかったのにww
つまんね
0436nobodyさん2007/05/18(金) 10:37:34ID:???
>>431
>IDの付け方がわからないです…

phpの前に自己能力あげろよ
0437nobodyさん2007/05/18(金) 13:12:16ID:+e1CHg4F
フレームワークってライブラリが違うだけ?
0438nobodyさん2007/05/18(金) 13:15:25ID:???
え?
0439nobodyさん2007/05/18(金) 13:17:47ID:???
>>437に質問する
(2ちゃんねるの)板ってレスの内容が違うだけ?
0440nobodyさん2007/05/18(金) 13:21:54ID:???
なにがおきたの?
0441nobodyさん2007/05/18(金) 14:06:16ID:eSvvOlXE
htmlspecialcharsで変換した特殊文字(”など)を
表示するページでは元に戻す方法ってありませんかね?
0442nobodyさん2007/05/18(金) 14:13:39ID:???
>>441
htmlspecialcharsで変換した文字を元に戻したい文字を指定して置換できる関数を使う
ほかにもっと簡単なやりかたが文字列関数にあるけど関数リファレンス読めばここで質問しないはずなんだけどなぁ
0443nobodyさん2007/05/18(金) 14:17:35ID:???
htmlspecialchars_decodeですね。ありがとうございました。
0444nobodyさん2007/05/18(金) 16:07:43ID:oLfZwhqN
メール鯖に接続して、どこから対象のアドレスにメールするとかできたっけ?
04454442007/05/18(金) 16:21:39ID:oLfZwhqN
PHP.iniで外部鯖に設定してmb_send_mailでできるみたいですね。

ですが、送信しようとしたらエラーが発生しました・・・

Failed to connect to mailserver at "sd006.just-size.net" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()

PHP.iniの変更箇所は、SMTP、smtp_port、sendmail_fromだけで良いのでしょうか?
0446nobodyさん2007/05/18(金) 16:41:26ID:???
その外部のSMTPに蹴られてんじゃないの
0447nobodyさん2007/05/18(金) 16:51:38ID:oLfZwhqN
>>446
かもしれないです。
smtp.mail.yahoo.co.jpで試してみてもダメでした。
アカウントとパスワードを設定する項目がないのですが、どういう風に設定すれば良いのでしょうか?
0448nobodyさん2007/05/18(金) 16:57:10ID:???
>>447
けられて当然。
メールサーバぐらい自鯖で構築しましょうよ
0449nobodyさん2007/05/18(金) 17:08:39ID:GewnQXcH
アカウントもパスワードも設定せずにスクリプト書いた時点で気づこうか
だが、何事も出来ることを確認してからスレに書き込む姿勢は良いと思う
0450nobodyさん2007/05/18(金) 17:17:55ID:oLfZwhqN
SMTPの前にPOP3で認証させなくてはいけないみたいです。
imap_openでメール鯖にアクセスしようと思ったのですが、
Couldn't open stream {pop.mail.yahoo.co.jp:25/pop3}INBOX
とエラーが返ってきます。
SSL認証とかそういうのが必要なのでしょうか?
0451nobodyさん2007/05/18(金) 17:28:26ID:???
> pop.mail.yahoo.co.jp:25/pop3

急いであれこれできるようになろうとせずに、もっと少しずつ覚えていけばいいと思うよ。
0452nobodyさん2007/05/18(金) 17:31:32ID:???
pop3のportは25じゃないんじゃないか
プロバイダのSMTPを使おうとあれこれ悩むより
自前でSMTP立てた方がいいと思う
0453nobodyさん2007/05/18(金) 17:31:55ID:???
>>450
POP before SMTP PHPあたりでググって学習してから質問しなおしたほうがいいと思う。
0454nobodyさん2007/05/18(金) 17:32:02ID:oLfZwhqN
すまん、110だ、間違えたorz
0455nobodyさん2007/05/18(金) 17:38:15ID:oLfZwhqN
自メール鯖推奨されてるけど、
IPが固定じゃないから外部とメールのやり取りができない・・・
0456nobodyさん2007/05/18(金) 18:06:21ID:???
>>455
そこでDDNSじゃねぇの?
0457nobodyさん2007/05/18(金) 18:09:02ID:oLfZwhqN
>>456
それでもlocal外での送受信はできませんでした
0458nobodyさん2007/05/18(金) 18:20:17ID:???
>>457
許可してるDDNSなら出来ると思うんだけど…
原因は?
0459nobodyさん2007/05/18(金) 18:34:40ID:???
>>457
つ[チェックリスト]
・DDNSが対応してない => 対応したところに移れ
・ルーターのポート設定がわからん => とりあえずDMZで設定してテスト
・メル鯖の設定がわからん => メール関連のスレヘ…
・メール飛ばしてもエラー番号がついて戻ってくる => おそらくメル鯖設定が悪い番号ググれ
以上
0460nobodyさん2007/05/18(金) 18:38:38ID:oLfZwhqN
>>458-459
前に聞いたときはプロパイダの問題といわれたんだが・・・
とりあえずもう一度調べてきます
有難う御座いました
0461nobodyさん2007/05/18(金) 19:04:28ID:???
つOutbound Port25 Blocking
0462nobodyさん2007/05/18(金) 19:26:05ID:???
uploaderを作ってるんですが、特定のサーバのみうまく動きません。
Apache/2.0.52
PHP 5.1.6

なぜか
input type="file"
のPOSTデータだけが渡らないのです。他のPOSTデータは渡ります。
他のいくつかのサーバで試したところ、問題なく動いてるのでApacheの
設定だと思うのですが、どなたかお知恵貸してください。
0463nobodyさん2007/05/18(金) 19:30:00ID:???
>>462
ヒント:$_FILES
04644412007/05/18(金) 19:36:44ID:eSvvOlXE
昼に相談させていただいた>>441ですが、自分の利用しているサーバは
PHP4なので、htmlspecialchars_decodeが使えない事が分かりました・・。

PHP4のサーバで使えて、htmlspecialcharsで変換する前の状態に戻す
方法はありませんでしょうか?
0465nobodyさん2007/05/18(金) 19:39:18ID:???
>>464
htmlspecialcharsで変換する前のデータを保存しとけばよくね?
0466nobodyさん2007/05/18(金) 19:45:01ID:???
>>464
http://jp.php.net/htmlspecialchars-decode
のUser Contributed Notesにコードそのものが書いてある
0467nobodyさん2007/05/18(金) 19:58:35ID:???
>>463
それが・・・・

Array
(
[name] => test.gif
[type] =>
[tmp_name] =>
[error] => 7
[size] => 0
)

なんですわ。。。error 7って・・・
0468nobodyさん2007/05/18(金) 20:04:00ID:???
>>466
おお、通りすがりだがあんさんは良いお人や
0469nobodyさん2007/05/18(金) 20:04:48ID:???
エラー7について見ればいいじゃん
0470nobodyさん2007/05/18(金) 20:06:59ID:???
>>467
http://jp.php.net/manual/ja/features.file-upload.errors.php
0471nobodyさん2007/05/18(金) 20:12:18ID:???
$_FILES['userfile']['error'] の「7」は5.1.0からかぁ。。。

ディスクが一杯だったよ。
管理者ぬっころしたくなってきた。
ログたまりまくりんぐ。
パーティーションの切り方が悪すぎ。
0472nobodyさん2007/05/18(金) 20:21:25ID:d/lAW2v7
DBで、enum型を使って、boolのフィールドを作る時、
その値リストはどうしてますか?
'FALSE'と'TRUE'だと、
デフォルトでそういう定数がありそうなので
ちょっと紛らわしいような気がします。
0473nobodyさん2007/05/18(金) 20:45:05ID:???
>>461
ググッタダケ素人乙
0474nobodyさん2007/05/18(金) 20:59:30ID:???
新しい組み込み関数についていけない
0475nobodyさん2007/05/18(金) 21:06:56ID:???
class hoge {
static $moge = 'boke';
static $fuga = self::$moge;
}

こうするとエラーになるんだけど
staticなプロパティーに
staticなプロパティーを代入することって出来ないの?
0476nobodyさん2007/05/18(金) 21:20:21ID:???
その設計はおかしいW
0477nobodyさん2007/05/18(金) 21:43:20ID:???
なんでエラーになるかを教えて
0478nobodyさん2007/05/18(金) 21:49:30ID:???
文法が間違ってるからじゃね
0479nobodyさん2007/05/18(金) 22:28:18ID:ySJdsQiL
>>475
間違ってることはわかる
でもどう間違ってるか具体的に説明できん俺・・・・・
0480nobodyさん2007/05/18(金) 22:49:32ID:???
staticかどうかというより、
メンバー変数に、定数以外のもので初期化代入できるかどうかが
マニュアル的に、はっきりしない。

ttp://www.php.net/manual/ja/language.oop.php
この説明(class Cart)を見ると
<?php
class Cart{
var $name = $firstname;
}
?>
なんていうのは、あたかもphp5なら動きそうなのに、実はphp4と同様動かない。
0481nobodyさん2007/05/18(金) 22:51:53ID:???
>>475
プロパティの初期化には定数値しか使えない
0482nobodyさん2007/05/18(金) 22:55:47ID:???
>>480
確かにそのページの「PHP4では動作しない」っていう
書き方だけを見ると誤解しそうな書き方ではあるが、
PHP5の説明のページにも明示的にプロパティの初期化には
定数しか扱えないと書いてある
http://jp.php.net/manual/ja/language.oop5.basic.php
0483nobodyさん2007/05/18(金) 22:55:48ID:???
クラス定義中に自クラスのメンバを参照できるわけない。
staticか非staticかに関わらず、メンバの初期値は定数のみ。
他の言語でも大体同じ。
PHPでデフォルト値を共通化したいなら、オブジェクト定数とか使う。

じゃだめなのか?
0484nobodyさん2007/05/18(金) 22:55:58ID:???
↑根拠なしで書くんじゃないよ
04854802007/05/18(金) 22:57:55ID:???
>>482
なるほど。これか。
>デフォルト値は定数でなければなりません。(たとえば) 変数、クラスのメンバあるいは関数コールなどは使用できません。
勉強になった。さんきゅ。
0486nobodyさん2007/05/18(金) 22:58:22ID:???
根拠って何だ?マニュアルのことか?
そんなのはっきりムリって書いてあんだろ。
もっと論理的な根拠を求めてんのかと思った。
0487nobodyさん2007/05/18(金) 23:05:19ID:???
このスレはマニュアル読めない人が他の人に読んでもらうスレですよ。
04884752007/05/18(金) 23:18:31ID:???
プロパティーの初期化は定数じゃないと駄目だったのか…
�dクス
0489nobodyさん2007/05/19(土) 00:32:14ID:/rdI7UAA
>>486
なぜ定数しか使えないかというと
メモリに確保されるタイミングによるんだよ。
メモリにない物は参照できないので代入できない・・・・

後は任せた>>490
0490nobodyさん2007/05/19(土) 00:36:48ID:???
>>500
0491nobodyさん2007/05/19(土) 01:09:35ID:???
ロングパスw
0492nobodyさん2007/05/19(土) 01:56:41ID:???
>>464

>>442
0493nobodyさん2007/05/19(土) 02:21:28ID:5dZMG2UG
includeで、1MBもあるfunctionのファイル読み込んだら重くなる?
0494nobodyさん2007/05/19(土) 02:35:05ID:???
>>493
まずは自分の環境でやってみよう
お兄さんとのやくそくだよ!
0495nobodyさん2007/05/19(土) 02:43:17ID:???
何をそんなに詰め込んでるんだ
0496nobodyさん2007/05/19(土) 03:30:54ID:???
遠まわしに人柱をおねがいしますってことですね
0497nobodyさん2007/05/19(土) 06:29:26ID:MWMv22M6
すいません、質問させてください。
当方、夢もなにもない25歳です。
こんな私ですがいままで徹夜してマニュアル読んでコード書いてPHPを学習してました。
PHPは夢を作る道具になれますか?
0498nobodyさん2007/05/19(土) 07:29:44ID:???
むしろPHPは夢だけは簡単に作れる道具です。
精進してください。
0499nobodyさん2007/05/19(土) 07:35:15ID:MWMv22M6
あなたのレスがみれてよかったです。
ありがとうございます。
0500nobodyさん2007/05/19(土) 07:48:29ID:zLRg1KJ9
sqlからwhere句を抜き出そうとしています
正規表現でWHEREを目印にして抜き出すとすると、
その前にSET HOGE='WHERE POGA'
等があった時にもヒットしてしまいます。
いわば「地の文」のWHEREだけがヒットするようにしたいのですが
いい方法があれば教えてください
0501nobodyさん2007/05/19(土) 07:52:44ID:???
ソースはなんも書いてないの?
0502nobodyさん2007/05/19(土) 08:02:51ID:G8ONhPg2
1〜18までの番号を出力して、重複値は表示させない。
と言うのを作っています。ソースは以下の通りです。

$array=array();
for($i=0;$i<5;$i++){
$number = rand(1,18);
if(array_search("$number",$array)){
}else{
$array[] = $number;
echo $number."<br />";
}
}

一度表示した数字を配列に入れて同じ数字が出たら出力しない
と言ったイメージなのですが、どうも上手く行きません。
ソースの指摘・アドバイスをしていただけないでしょうか?
0503nobodyさん2007/05/19(土) 08:05:50ID:???
>>502
なんかifの書き方が気に入らない。あと3分まってろ
0504nobodyさん2007/05/19(土) 08:19:33ID:???
//乱数生成

for ($i=0; $i<5; $i++) {

$rand[] = rand(1, 3)
;


}

//出力

$ary = array();

foreach($rand as $v) {

if (!in_array($v, $ary)) {

echo "<p>$v</p>";
} else {

echo "重複<br />";

}
$ary[] = $v;

}

あとはじぶんで改造しろ
05055022007/05/19(土) 08:23:24ID:???
>>504
ありがとうございます。つまり、乱数生成と出力を分けた方が良いって
事ですね。

ちょっとやってみます。ありがとうございました。
0506nobodyさん2007/05/19(土) 08:25:00ID:???
処理がわかりやすいようにわけてみたが
まあ書き方はいくらでもある。
ちなみにarray_searchを使うのはまちがえ

(PHP 4 >= 4.0.5, PHP 5)

array_search -- 指定した値を配列で検索し、見つかった場合に対応するキーを返す
0507nobodyさん2007/05/19(土) 10:04:49ID:vtcxjqU8
センスのある質問と回答が多いな
0508nobodyさん2007/05/19(土) 10:30:02ID:???
>>500
質問がPHPと関係ない

sqlの構文解析は以外と面倒だぞ
0509nobodyさん2007/05/19(土) 10:47:01ID:???
>>500
でも引用符とコメントだけ排除すればいいだけなら、ちょっとした字句解析でできそうではある。
whereの場所が特定できたら、構文は無視してorder byみたいな別のキーワードのとこまでを抜き出しちゃえばいいのかな。
これくらいの処理なら、PHPで書いてもそんなに重くはならないはず。
0510nobodyさん2007/05/19(土) 11:47:04ID:???
>>505
suffleしてarray_shiftかarray_pop使えばいいんでないの
0511nobodyさん2007/05/19(土) 11:52:10ID:???
なんで乱数つくってシャッフルする必要があるのかと
■ このスレッドは過去ログ倉庫に格納されています