【PHP】ID出さんでも質問OKなスレ【初心者歓迎】2
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/09/10(木) 22:52:33ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
姉妹スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
0597nobodyさん
2009/10/14(水) 16:46:14ID:???てっきりこっちかと思った。
ttp://php.net/manual/ja/errorfunc.configuration.php
・error_reporting
・display_errors
>>596
そう思うんなら、いちいち反応するなよ。
0600nobodyさん
2009/10/14(水) 18:46:32ID:???0601nobodyさん
2009/10/15(木) 11:27:15ID:IJjjUaJiそしてそのCentOS上でLighttpdとPostgreSQLとPHP5.3を動かしています。
NetBeans6.7.1ではSFTPを使いCentOS上に*.phpファイル保存時に自動的に書き込むようにしています。CentOS上のphp.iniではXdebugの設定をしたのでNetbeansを用いてPHPのコードを一行一行実行して行く事ができるようになりました。
ここまでは上手く行きました。NetBeansのメニューで「プロジェクトのデバッグ」を選択するとブラウザーが立ち上がり、ブレークポイントを付けた行で停止して1行ずつコードを実行して行けます。
しかし、NetBeansのメニューで「プロジェクトの実行」を選択するとブラウザーが立ち上がる所までは同じですが、その後それ以上何も進展しない状況になります。(ブラウザーは「読み込み中」と表示されたままです。)
これって正常でしょうか?
0603nobodyさん
2009/10/15(木) 17:04:49ID:???class Foo {
function f1() {
// ここで Foo という名前を取得したい
}
}
Foo::f1()
0604nobodyさん
2009/10/15(木) 17:08:40ID:???0606nobodyさん
2009/10/15(木) 18:25:13ID:???バンバンバンバンバンバンバンバンバン゙ン
バンバン /⌒ヽ バンバンバンバンバン
バンバン∩#^ω^)動けお
/_ミつ / ̄ ̄ ̄/__
\/___/
ドゴォォォォン!!
; ' ;
\,,(' ⌒`;;)
(;; (´・:;⌒)/
/⌒ヽ(;. (´⌒` ,;) ) ’
Σ(;^ω^)((´:,(’ ,; ;'),`
⊂ ⊂ / ̄ ̄ ̄/__
\/___/
0607nobodyさん
2009/10/15(木) 18:29:06ID:???ID出すほうで質問したらちゃんと俺が答えてやったが
ここは管轄外なのでスルーさせていただくよ
0608nobodyさん
2009/10/15(木) 18:37:31ID:???自己レスです。
継承しないならget_class()または__CLASS__でうまくいったのですが、継承があるとだめでした。
class Foo {
function f1() {
echo get_class(), "¥n";
echo __CLASS__, "¥n";
}
}
class Bar extends Foo {
}
Bar::f1(); // Foo Foo
継承したときのクラス名(この例ならBar)をとってこれないでしょうか。
0610nobodyさん
2009/10/15(木) 18:53:51ID:???さすが低レベルなスレだな
0611nobodyさん
2009/10/15(木) 20:04:40ID:???http://jp.php.net/manual/ja/language.oop5.late-static-bindings.php
0612nobodyさん
2009/10/15(木) 22:53:54ID:???5.3からの新機能で可能ということですね(つまりそれ以前のバージョンでは不可能)。
ありがとうございました。
0614nobodyさん
2009/10/16(金) 01:42:29ID:???PHP入門講座、はじめたよー
0615nobodyさん
2009/10/16(金) 02:28:04ID:???ていうか最初と最後に文字いれしてるんだから
わざわざタイプで時間使わないで文字いれしろよ
そうすりゃこんな意味のない動画を3分も見せ続けられなくてすむし
CM1本分ぐらいに収まるだろ
0616nobodyさん
2009/10/16(金) 02:43:44ID:???えらそうに、、、
0617nobodyさん
2009/10/16(金) 02:45:06ID:???あんな無駄なものを3分も見せられるほうの気持ちも考えろ
0618nobodyさん
2009/10/16(金) 10:42:03ID:???$array = array();
はしたくないので
foreach (array_keys($array) as $key) { unset($array[$key]); }
としているんですが、
array_clear($array);
みたいなのが標準であれば教えてください。
ぐぐったら $array = array() ばかりが出てくるんですけど、array_clear()みたいなのはないんでしょうか。
0619nobodyさん
2009/10/16(金) 10:43:00ID:???0621nobodyさん
2009/10/16(金) 10:52:22ID:???何これ?連想配列?
まぁただの配列にしても連想配列にしてもunsetやれば全部NULLになるでしょ
$a = array(1, 2, 3, 4);
unset($a);
var_dump($a); //NULL
$b['foo'] = 1;
$b['bar'] = 2;
unset($b);
var_dump($b); //NULL
0622621
2009/10/16(金) 10:55:18ID:???嗚呼・・・クリアってそういうことか
変数割り当てをクリアじゃなく配列の値をクリアするってことね
>>621は無視してちょうだい
0623nobodyさん
2009/10/16(金) 11:15:42ID:???ありがとうございます。array_splice()で出来ました。
ただ、これって連想配列でも動作が保証されているのでしょうか。
連想配列ではない通常の配列でなら、array_splice()でいいと思いますが、連想配列でも動作が保証されているのか、マニュアルを読んでも分からなかったので、もしご存知なら教えてください。
0624nobodyさん
2009/10/16(金) 11:17:00ID:???kyomo-iitenki-1.2.3.exe
というファイルがあって1.2.3がバージョンになります。
バージョンだけ取り出したいんですがまず
$test_val = "kyomo-iitenki-1.2.3.exe";
$test_num = strrpos($test_val, "-");
$hogera = str_split($test_val, $test_num+1);
$hogera = ereg_replace(".mid", "", $hogera[1]);
こんな感じで1個ずつやってみたのですが、何かもっと効率よさそうな方法がありそうな気がします。
PHP始めたばかりなので最初から効率を求めるわけではないのですが、後学のためにこれをもっと
効率よくする書き方があれば教えてください。
0625624
2009/10/16(金) 11:46:37ID:???テストでmidiファイルとかやってたので最後の行が.midになってました。
正確には.exeの間違いです。
0626nobodyさん
2009/10/16(金) 11:51:28ID:???PHPのarrayは配列も連想配列も同じ順序付きハッシュだから動く
つうか array_splice($array, 0) も内部で $array = array() と同じ事やってんだが、これでいいのか?
>>624
正規表現がまさにそういう用途のためにある
http://jp.php.net/manual/ja/function.preg-match.php
$test_val = "kyomo-iitenki-1.2.3.exe";
preg_match('/([^\-]+)\.[^.]+\z/', $test_val, $matches);
echo $matches[1];
0627nobodyさん
2009/10/16(金) 11:52:29ID:???正規表現をうまく使えればもっとシンプルにできるよ
俺はあまり正規表現は得意じゃないんでもっと最適なものがあるとは思うけど
$test_val = "kyomo-iitenki-1.2.3.exe";
echo preg_replace("/[^0-9]+[^0-9]/", "\\1", $test_val);
0628624
2009/10/16(金) 11:55:18ID:???正規表現ですか。
まだ本当に記号の羅列にしか見えないですね。
でも正規表現使えればあの汚いものがこんなにシンプルな1行になるわけですね。
ちょっと正規表現勉強してみます。
ありがとうございます。
0629nobodyさん
2009/10/16(金) 12:05:20ID:???preg_match("![0-9][\._-0-9]*!",$str,$match);
print_r($match);
0631nobodyさん
2009/10/16(金) 12:20:37ID:???0634nobodyさん
2009/10/17(土) 13:36:36ID:???\n のような特殊な文字(エスケーッぷ?)の一覧を教えて。
あと、\nが CR+LFになるのかLFになるのかを
プログラム中から知る手段も教えてほしい。
0635634
2009/10/17(土) 13:43:17ID:???0636nobodyさん
2009/10/17(土) 20:14:28ID:???調べてみたのですが、「クライアント電話番号」と書かれている部分だけ分かりません。
どのように取得すれば良いかご存知の方がいらっしゃれば、ご教授いただけないでしょうか。
以下は、他の欄に使われていると思われる変数です。
--------------------------------------------------
情報を取得した時間:date("Y年\nm月\nd日\n A \nH時 i分\n s秒\n")
現在接続しているホスト名:$_SERVER['SERVER_NAME']
現在接続している場所(現IP):$_SERVER['REMOTE_ADDR']
現在接続している場所(元IP):$_SERVER['FORWARDED_FOR']
クライアント電話番号:不明
プロバイダー名:gethostbyaddr($_SERVER['REMOTE_ADDR'])
サポート言語:$_SERVER['HTTP_ACCEPT_LANGUAGE']
ポート番号:$_SERVER['REMOTE_PORT']
クライアントの場所:$_SERVER['HTTP_FORWARDED']
クライアントID:$_SERVER['REMOTE_USER']
ユーザ名:$_SERVER['REMOTE_IDENT']
クッキー:$_SERVER['HTTP_COOKIE']
使用ブラウザ:$_SERVER['HTTP_USER_AGENT']
どこのURLから来たか:$_SERVER['HTTP_REFERER']
proxyのバージョン等:$_SERVER['HTTP_VIA']
proxyの効果:$_SERVER['HTTP_PROXY_CONNECTION']
FORMの情報:$_SERVER['REQUEST_METHOD']
FORMのタイプ:$_FILES[...]['type'] ← 自信無し
FORMのバイト数:$_FILES[...]['size'] ← 自信無し
HTTP_X_LOCKING:$_SERVER['HTTP_X_LOCKING']
HTTP_FROM:$_SERVER['HTTP_FROM']
データ取得の手段:$_SERVER['REQUEST_METHOD']
エンコードの仕様:$_SERVER['HTTP_ACCEPT_ENCODING']
MIMEの仕様:$_SERVER['HTTP_ACCEPT']
--------------------------------------------------
0637nobodyさん
2009/10/17(土) 20:54:10ID:???0638nobodyさん
2009/10/17(土) 23:00:26ID:???「php whole」などで検索してみたのですが、どういうことか分かりません…。
もう少し詳しく教えていただけないでしょうか。
0640nobodyさん
2009/10/17(土) 23:42:00ID:???0641636
2009/10/17(土) 23:47:19ID:???解決したありがとう
0644nobodyさん
2009/10/18(日) 00:25:07ID:???「phone」と言う項目がありました。
これは、
PCの場合、登録に関する連絡の担当者(もしくは技術的な連絡の担当者)の電話番号
携帯電話の場合、クライアントの電話番号(使用者の電話番号)
になると考えて良いのでしょうか。
0645nobodyさん
2009/10/18(日) 09:38:00ID:???0648nobodyさん
2009/10/18(日) 10:20:56ID:???0649nobodyさん
2009/10/18(日) 10:24:15ID:???641から642
レス早いだろ
0651nobodyさん
2009/10/18(日) 10:45:08ID:???だから、番号を通知する設定にするとリクエストに番号が載るキャリアがあるんじゃね?
もしくはダイアルアップの場合のみ、とか。
0652nobodyさん
2009/10/18(日) 10:53:44ID:???0653nobodyさん
2009/10/18(日) 14:26:46ID:???サブスクライバIDとか、UIDとか、端末識別暗号とかEZ番号とか、
呼び方は色々だけど、つまりはそういうことです。
0654636
2009/10/18(日) 16:52:42ID:???つまり、「クライアント電話番号」というのは、携帯の電話番号というわけではなく、
「携帯端末ごとに決められているユニークな番号」という意味だったんですね。
ようやく理解することができました。
最後に、>>653さんの単語から検索した結果、色々な情報が出てきたので、まとめておきたいと思います。
--------------------------------------------------
・ドコモの場合
個体識別情報:<a>タグや<form>タグに「utn」という文字を入れると、$_SERVER[’HTTP_USER_AGENT’]の後ろに付加される
iモードID:GETやPOSTで引数に「guid=ON」を入れると、$_SERVER['HTTP_X_DCMGUID']から取得できる
・auの場合
個体識別情報(=EZ番号=サブスクライバID):auは固体識別子を毎回送信しているので、$_SERVER['HTTP_X_UP_SUBNO']から取得できる
・ソフトバンクの場合
個体識別情報:ソフトバンクの固体識別番号は、常にユーザーエージェントに含まれているので、$_SERVER[’HTTP_USER_AGENT’]から取得できる
個体識別情報:httpのページからhttpsへ遷移するようなケースであれば、$_SERVER['HTTP_X_JPHONE_UID']からも取得可能
・イーモバイルの場合
個体識別情報:HTTPリクエストヘッダの「x-em-uid」($_SERVER[’HTTP_X_EM_UID’]?)から取得できる
・ウィルコムの場合
現時点では取得不可能?
--------------------------------------------------
長い間、レスを使ってしまい申し訳ありません。とても勉強になりました。
答えてくださった方、本当にありがとうございます。
0655nobodyさん
2009/10/18(日) 17:06:22ID:???0656nobodyさん
2009/10/18(日) 17:49:47ID:mL8oRkmgプレースホルダに設定する値が数値"0"のとき、
空文字に自動変換されてしまって困ってます。
解決策わかる型いらっしゃいませんか?
環境は
DB:MySQL5.0.45
PHP:php5.2.8
PEAR:1.9.0
です。
0657nobodyさん
2009/10/18(日) 18:11:30ID:mL8oRkmg自己解決しました。
自動変換によるものではなく、
変換メソッドが悪さをしていたようです。
0659nobodyさん
2009/10/18(日) 19:27:11ID:???ネットショップ立ち上げのために先日oscommerceをインストールしてみたのですが
しょっぱなからちゃんと動作しないなどの不具合が。
oscommerceはデータベースサーバなどと連携している分、不具合やエラーが出やすいかなと
思い、perl言語のみのルミーズカートcgiに興味を持ちました。
以前、perl言語のクイズ作成cgiを設置して何のトラブルもなくずっと使えていたのでcgi単独だと
安定して使えるのかなというイメージがあります。
ずばりルミーズカートならoscommerceよりも安定して管理できるでしょうか?
多少機能が劣っていてもシンプルな構成でトラブルが少なく扱いやすい物が一番と考えております。
個々の環境にもよるとは思いますが一般論でお答えいただければ幸いです。
0660nobodyさん
2009/10/18(日) 19:30:45ID:???0661nobodyさん
2009/10/18(日) 20:28:40ID:???phpなんかよりperl使うべきですね。
0662nobodyさん
2009/10/18(日) 20:38:15ID:???0663nobodyさん
2009/10/18(日) 20:52:19ID:???そして己が人に教える時のことも考えてもコストが安い
0664nobodyさん
2009/10/18(日) 20:55:30ID:???軽量FWもたくさんでてるし時代遅れって事は無いと思う
0665nobodyさん
2009/10/18(日) 21:08:54ID:???まだまだPerlはUnixなんかのシステムにはよくつかわれてるんだぜ
0666nobodyさん
2009/10/18(日) 21:13:10ID:???0667nobodyさん
2009/10/19(月) 11:22:19ID:???条件分岐を $hogehoge == "" としててもうまく機能せず $hogehoge == "NULL" とするとうまくいくのでどうなのかな?と。
CとかVBは数年使ってたのでプログラム自体は素人ではないのですがPHPは使い始めて1週間です。
0668nobodyさん
2009/10/19(月) 11:24:56ID:???0669nobodyさん
2009/10/19(月) 11:42:48ID:???とPHPを初めて1ヶ月の俺が適当に答えてみるテスト
0670nobodyさん
2009/10/19(月) 11:44:28ID:???と呼び出しているphpに、呼び出し時に値を一緒に渡したいのですがどうすればいいでしょうか?
0671nobodyさん
2009/10/19(月) 12:05:24ID:???本当にただのNullの場合、緩い比較である==演算子を使っても文字列としては通らない。
よって$hogehoge == "NULL";で通るということはNULLという文字列が入っていると考えられる。
ためしに$hogehoge == "null;"と小文字にして確かめてみるとよい。
0672nobodyさん
2009/10/19(月) 12:50:51ID:6KYWXDe7何が危ないのでしょうか?
0673nobodyさん
2009/10/19(月) 12:55:31ID:???0675nobodyさん
2009/10/19(月) 13:04:20ID:???var_dump(0 == "NULL");
0677nobodyさん
2009/10/19(月) 13:39:05ID:???何がいいたいかわからん
ていうかvar_dumpをそんな使い方してる人ははじめてみたな
$a = null;
var_dump($a);
if ($a == "null") {
echo 1; //nullはStringではないので表示されない
}
0680nobodyさん
2009/10/19(月) 14:01:26ID:???empty()でチェックしたり、intval()とかで変換したりしろ
0681nobodyさん
2009/10/19(月) 14:22:30ID:???だから・・
言ったやつがどういう意図で言ったか根拠を本人に聞いてないとここで答えようがないだろつってんだよ
0682680
2009/10/19(月) 14:26:31ID:???>>668で終わりなんだけどね
http://jp.php.net/manual/ja/reserved.variables.files.php
ファイルが送られなくても$_FILESは空にはならない
$hogehogeはそれが何なのかわからないのでなんとも
http://jp.php.net/manual/ja/language.operators.comparison.php
>>674
boolとstringとの比較なのでboolに変換され、true == true
>>675
numberとstringとの比較なので数値に変換され 0 == 0
>>677
nullとstringとの比較なので""に変換され "" == "null"
0683nobodyさん
2009/10/19(月) 14:40:52ID:???http://www.php.net/manual/ja/reserved.variables.argv.php
0685nobodyさん
2009/10/19(月) 17:55:34ID:???この$hogeの中身を1文字ずつずらしてbcdとしたいのですが1文字ずらすのはどうすればいいんでしょうか?
文字コード拾ってきて1個ずらすとかでしょうか?
0686nobodyさん
2009/10/19(月) 18:18:28ID:???$hoge = "abc";
foreach (str_split($hoge) as $eachVar ) {
print ( chr ( ord( $eachVar ) + 1 ) );
}
0687nobodyさん
2009/10/19(月) 19:08:07ID:???$hoge = "abc";
foreach (str_split($hoge) as $eachVar ) {
print (++$eachVar);
}
0689nobodyさん
2009/10/19(月) 20:11:26ID:???$hoge = "abc";
$hoge = ++$hoge;
echo $hoge // bcd;
0691nobodyさん
2009/10/19(月) 20:16:01ID:???$hoge = --$hoge;
$hoge = $hoge + 1;
echo $hoge // bcd;
0694nobodyさん
2009/10/19(月) 20:20:33ID:???0695nobodyさん
2009/10/19(月) 20:33:24ID:???自分自身を消した後に指定アドレスにlocationするという事をしたいです。
ore.php
include_once("hogehoge.php");
いろんな処理〜
exec("rm -rf ore.php");
header("Location: yahoo.co.jp");
このような事なのですがlocationする前に消しているせいか、locationしてくれません。(当たり前ですが)
かと言ってlocationを先にするとファイルが消されません。
ファイルを消してなおかつlocationするにはどうすればいいのでしょうか?
馬鹿な私に知恵をお貸し下さい。
0696nobodyさん
2009/10/19(月) 20:46:53ID:???ファイルが使用中だから消せないとか?分からんけど。
別な方法としてはGETやリファラでファイル名を渡して遷移先で消すとか。あるいは間に1ページ挟むとか。
■ このスレッドは過去ログ倉庫に格納されています