【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/
0577nobodyさん
2009/10/12(月) 23:51:40ID:???ありがとうございました
>>576
プログラミングメインではないのでいけたのかと思います。
本来はプログラマー募集でもなかったですし
0578nobodyさん
2009/10/13(火) 00:15:16ID:???デザイナーがプログラムまでやらされるような残念な会社か・・・
大変そうだがガンガレ
0579nobodyさん
2009/10/13(火) 00:18:05ID:???PHPエディタ で、
F2押して出すマニュアルで、
マニュアル自体は起動するんだけど、
「無効なWEBの検索」
とかって出て、左側のフレームは
とかって出てるんだけど、
右側のフレームには、
そのprintの内容(関数の説明とか)が
でてこなくて、対処、URLを再入力する、
とかって出てきてしまうのですが、
できてる人いますか?
0581nobodyさん
2009/10/13(火) 10:14:20ID:???0582580
2009/10/13(火) 10:22:54ID:???あれ?ここって公式じゃないの?
http://www.php.net/download-docs.php
0583nobodyさん
2009/10/13(火) 10:29:04ID:???0584nobodyさん
2009/10/13(火) 10:34:56ID:???日本語の検索が出来ない
0585nobodyさん
2009/10/13(火) 10:38:57ID:???でも俺のは文字化けしないな
と思ったらいつも俺はchmをリコンパイルしてたんだったわ
0586580
2009/10/13(火) 10:45:27ID:???「php_manual_ja.chm」で検索するとリコンパイル方法が色々でてくる。
俺は誰かがリコンパイルしてくれた奴を過去に落としたが、今は無いみたいだ。
ということで、今リコンパイルしてみたが
KeyToolsでデコンパイルして、HTML Help Work Shopでリコンパイルすれば文字化け解消するよ
その際に、特にエディタで書換える必要も無かった。
0587nobodyさん
2009/10/13(火) 11:57:08ID:???まじでわからん
0588nobodyさん
2009/10/13(火) 16:45:52ID:???ひとつのディレクトリにセッションファイルを書いていったとして、だいたいどのくらいの数まで実用的に動作しますか。
たとえばLinuxなら/var/tmp以下に1万個ぐらい作ってもへっちゃらとか、10万ぐらいで遅くなったとか、
そういう経験談があれば教えてください。
なおOSはLinuxで、ファイルシステムはext2かext3です。
0589nobodyさん
2009/10/13(火) 17:09:18ID:???0590nobodyさん
2009/10/13(火) 17:38:40ID:???0591nobodyさん
2009/10/13(火) 18:52:50ID:???0592nobodyさん
2009/10/14(水) 13:18:33ID:???memcache とか使えばいいのに
0593nobodyさん
2009/10/14(水) 14:42:06ID:???てっきりwarn()とかいう関数が標準であるのかと思ったらありませんでした。
0594nobodyさん
2009/10/14(水) 14:43:20ID:???0595nobodyさん
2009/10/14(水) 15:15:53ID:???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");
■ このスレッドは過去ログ倉庫に格納されています