くだすれPHP(超初心者用)4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/13(金) 20:32:36ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
前スレ: くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
0348nobodyさん
2008/09/23(火) 21:01:16ID:???0349nobodyさん
2008/09/23(火) 21:05:07ID:???並列処理を行うにはどうすればよいでしょうか?
というかPHPでそんなことするなってことでしょうか?
0352nobodyさん
2008/09/23(火) 22:13:13ID:???とりあえずその方向でググったりしてなんとかしてみます
ありがとうございました
0353nobodyさん
2008/09/24(水) 23:43:55ID:???$b=9;
$c=3;
「bが一番大きいです。」
と表示させたいのですが、maxだと数値しか返ってこないし・・・
教えていただけると幸いです。
0354nobodyさん
2008/09/25(木) 00:11:02ID:???変数名を取得することは出来ないから値の管理方法を変えよう
出来ないなら諦めるしかないと思う
例: 連想配列
$var = array(
'a' => 1,
'b' => 9,
'c' => 3,
);
0355nobodyさん
2008/09/25(木) 00:19:45ID:???0356nobodyさん
2008/09/25(木) 00:20:07ID:???0357nobodyさん
2008/09/25(木) 05:09:05ID:???連想配列の場合、
$var = array(
'a' => 1,
'b' => 9,
'c' => 3,
'd' => 9,
);
この場合、どうなるんだろ?
0358nobodyさん
2008/09/25(木) 05:29:20ID:???$var = array('a'=>1, 'b'=>9, 'c'=>3, 'd'=>9);
$keys = array_keys($var, max($var));
var_dump($keys);
0360nobodyさん
2008/09/25(木) 06:21:43ID:???0361テスト
2008/09/25(木) 23:34:41ID:???0362あ
2008/09/25(木) 23:39:24ID:???てすと
0363nobodyさん
2008/09/27(土) 20:36:51ID:Zle5Z5JOPHPのマニュアルを見てもさっぱりです
どなたかreturn文が詳しく書いてあるサイト知っていたら教えてください
0364nobodyさん
2008/09/27(土) 20:53:26ID:???returnについてなんてマニュアル以上のことが書いてあるサイトはないと思うぞ
何が分からなくて、何が知りたいんだ?言ってくれれば答えるが
0365nobodyさん
2008/09/27(土) 21:09:22ID:???0366nobodyさん
2008/09/27(土) 21:15:49ID:???0367nobodyさん
2008/09/27(土) 21:18:59ID:???0368nobodyさん
2008/09/27(土) 21:20:42ID:???0369nobodyさん
2008/09/27(土) 21:27:34ID:???0370nobodyさん
2008/09/27(土) 21:31:06ID:???0371nobodyさん
2008/09/28(日) 21:34:07ID:+UcDtbz0Not Found
The requested URL /phpinfo.php was not found on this server.
Apache/2.0.63 (Win32) PHP/5.2.6 Server at localhost Port 80
と出てしまいます。どなたか教えていただけませんか?
0372nobodyさん
2008/09/28(日) 21:37:11ID:???0374nobodyさん
2008/09/29(月) 20:16:12ID:???なにをDLしたらいいのかさっぱりぜよ・・・。
0375nobodyさん
2008/09/29(月) 20:39:55ID:???0376nobodyさん
2008/09/29(月) 22:54:33ID:ex4B3ZuI画面には<? phpinfo(); ?>
と出てしまいます。
明らかに間違いですが、何がおかしいと思いますか?
どなたか教えてください。
0377nobodyさん
2008/09/29(月) 23:01:53ID:???0381nobodyさん
2008/10/01(水) 05:38:30ID:ggjV1Mvyttp://www.php-labo.net/tutorial/class/pear.html
でgetMessage()が定義されてないのにエラー表示のときに表示するとありますが
どうしてなのでしょうか?
よろしくお願いします
0382nobodyさん
2008/10/01(水) 06:04:37ID:???してるから
0383nobodyさん
2008/10/01(水) 09:00:47ID:12eBxrbJこの辺のことだと思うのですが、質問させてください。
$a == $bのところで、日本語の文字を使うには、
$a == "日本語"のようにすると思うんですけど、
これは、「日本語」に等しいということですよね。
たとえば「日本」を含む文字列の条件を指定したいとき、
どうしたらいいでしょうか?
条件の分岐で、「日本語」も「日本人」も「日本古来」もその他も
一括して指定したい、という感じなのですが。よろしくお願いします。
的をはずしていたらごめんなさい。
0384nobodyさん
2008/10/01(水) 09:22:18ID:???0385nobodyさん
2008/10/01(水) 10:43:40ID:???もうひとつ合わせて質問なのですが、
完全に一致するものを、$a == "アメリカ"として
部分的に一致するのを、mb_ereg_match("[日本]",$a)として、
それぞれ処理をしようとしています。
else ifでつなげたほうがいいのですか?
別のifとして分けたほうがいいですか?
それとも、どっちでもいいですか?
0386nobodyさん
2008/10/01(水) 11:56:07ID:???分けるかどうかはやりたいことによって違うからなんともいえないけど、
今回の場合は分けなくていいでしょ。
分けちゃうと一回アメリカと完全一致したものをもう一回日本が含まれてるか
判定することになるから余計な処理になる。
0387nobodyさん
2008/10/01(水) 12:12:38ID:???では、どんどんつなげていくことにしますね。
よく判る説明で、助かりました。ありがとうございます!
0388nobodyさん
2008/10/01(水) 12:54:11ID:???注意
ヒント
ある文字列が他の文字列内に含まれているかどうかを調べるためだけに preg_match() を使うのは避けた方が良いでしょう。 strpos() か strstr() 関数を 使う方が速くなります。
http://jp.php.net/manual/ja/function.preg-match.php
0389nobodyさん
2008/10/01(水) 13:20:15ID:???$aに入る文字列は数十文字くらいの短いもので、それを見ています。
早さはそんなに変わらないと思うので、このままで大丈夫ですよね?
0390nobodyさん
2008/10/01(水) 22:32:30ID:HCEY5R1b基礎からのPHPorやさしいPHPを買おうか迷ってるのですが、
基礎からのPHPはアプリが動作しないと聞きました。
自分は、アプリの有無よりも文法やクラス(?)、データベースの基礎を学びたい
と思っているのですが、そのような場合はアプリの動作は気にしなくてもよいでしょうか?
その他の面(参考書としての面)では良いと聞くので。
書籍スレでの質問はナンセンスだと感じたのでこちらでさせて頂きました。
ご教授願います。
0391nobodyさん
2008/10/01(水) 22:49:30ID:???0392nobodyさん
2008/10/01(水) 22:56:32ID:???0393nobodyさん
2008/10/01(水) 23:58:01ID:???もしくは実践マスターか。
基礎からのPHPorやさしいPHPは意味がないと思います。
特に基礎からのPHPはアプリが動作しませんでした。
びっくりです。
これは捨てました。
アプリを改造していくといろいろスキルがあがってくるので、
ただ本見てもおもしろくないと思いますし。
アプリが動くやつがいいと思います。
では
0394nobodyさん
2008/10/02(木) 10:20:57ID:Qa3+G5H3<?php include('ini.php'); ?>
この、ini.phpを、別のサーバにおいて呼び出したいのですが、
<?php include('http://別のサーバ/ディレクトリ名/ini.php'); ?>
みたいにやっても、うまくいきません。
どこでつまづいていて、どうすればいいのか、教えてください。
0395nobodyさん
2008/10/02(木) 10:40:39ID:???基礎的な理解からつまづいてる
http://...をinclude = webサーバ経由でinclude
= ini.phpの「実行結果」をinclude
ini.phpの「内容」をincludeしたいなら、ftp経由にするとか、
ini.phpをincludeしたい内容の文字列を返すものにするとか。
0396nobodyさん
2008/10/02(木) 10:59:48ID:Qa3+G5H30397nobodyさん
2008/10/02(木) 18:21:25ID:???によって全く違う。
こういうのが「うまくいかない」しか書かない心理って何なの?
0398nobodyさん
2008/10/02(木) 18:25:19ID:???0399nobodyさん
2008/10/02(木) 20:57:18ID:JC9hPbTsありがとうございます。オライリーですか、参考にしてみます。
にしても、やさしいPHPのレビューってないですね。
あと基礎PHPとかはもう古いのかな‥
0400nobodyさん
2008/10/02(木) 21:31:32ID:PvYZxYkHmona.php
<?php
$a = 1;
include("giko.php");
include("fusa.php");
?>
giko.php
<?php
$b = 2+$a;
?>
ってあったときに$aがincludeされたファイル内でも利用だというのはわかったのですが
giko.phpの$bはmona.phpやfusa.phpで見れるのでしょうか?
ユーザー定義の関数の予定はないです。
0401nobodyさん
2008/10/02(木) 21:41:47ID:???0402nobodyさん
2008/10/02(木) 21:55:19ID:PvYZxYkHスコープの方を必死に検索かけてました
includeの方で調べればよかったんですね
ありがとうございます
0403nobodyさん
2008/10/06(月) 07:28:33ID:eMKnyKHTインストールの仕方が分かりません
ttp://www.php.net/manual/ja/install.phpには拡張モジュールしかないので
よく分かりませんでした
ttp://pear.php.net/manual/ja/installation.getting.php
に書いてあるように コマンドプロンプトを使えばいいのですが
コマンドプロンプトの使い方が分からないので
使い方を教えてください よろしくお願いします
0404nobodyさん
2008/10/06(月) 07:48:42ID:???> go-pear.php に保存します。そして次のコマンドを Windows のコマンドプロンプトで実行してください。
0405403
2008/10/06(月) 07:56:08ID:eMKnyKHT多分その上の行らへんでつまずいていると思います
>PHP をダウンロードしインストールが完了したら、
>バッチファイルを実行します。 というのはダブルクリックだけでいいんでしょうか?
するとコマンドプロンプトが出てくるだけですが
>インストールしたフォルダへのパスを
>PATH 環境変数に追加します。 手動で追加する
> (スタート > コントロールパネル > システム > 環境変数)
>以上で、Windows のコマンドプロンプトから pear コマンドを使い PEAR パッケージマネージャを実行できるようになります。
pealパッケージとは PHPをインストールした時点で使用できるわけではないと思うので
多分ここでつまずいてます
よろしくおねがいします
0406nobodyさん
2008/10/06(月) 08:05:35ID:???go-pearの方保存して実行すればおk
0407403
2008/10/06(月) 08:13:05ID:eMKnyKHT確認させてください
go-pear.phpというファイルを作ってそこに
http://pear.php.net/go-pearのソースをコピペ
そのあと保存先はC:\phpで
コマンドプロンプトで php go-pear.php
を実行するんですよね?
実行すると『内部コマンドや外部コマンド バッチファイルなどと認識されませんでした』
と表示されます
C:\PHP\PHP-pear.phpを実行しても
エディタが起動するだけでした
よろしくお願いします
0408nobodyさん
2008/10/06(月) 08:15:52ID:???0409nobodyさん
2008/10/06(月) 08:19:25ID:???C:\Documents and Settings\username>
で実行してるので php.exe が見つからないとかそういうオチなのかな。
0410403
2008/10/06(月) 08:38:03ID:eMKnyKHTその通りです。。。
もう少しコマンドプロンプトの使い方勉強してきます
今から学校なので ありがとうございました
0411nobodyさん
2008/10/07(火) 10:08:44ID:rx4j8OHYどっちもインスコ、php.iniを書き換えるがうまくいかない。
下のように、extensionだと、phpinfo()にxDebugの項目が現れるけど、
extension=php_xdebug-2.0.3-5.2.5.dll
下のようにzend_extension_tsの指定ではうまくいかない。
[xdebug]
zend_extension_ts = c:\php\ext\php_xdebug-2.0.3-5.2.5.dll
DebugBuildはnoで、ThreadSaftyはenabledだから、後者の書き方の筈なのだが。
で、まぁ前者で行くとして、問題は、[xdebug]の中に書いた設定が全然反映されない...orz
xdebug.remote_enable=true
とかやっても、phpinfo()で見ると、offになってる。
他の設定も同じ。
なので、eclipseでブレークポイントで止まってくれない...orz
誰かお助けを〜
0412nobodyさん
2008/10/07(火) 12:08:43ID:???0413nobodyさん
2008/10/07(火) 12:35:01ID:rx4j8OHYどうもありがとうございます〜。
0414nobodyさん
2008/10/07(火) 13:15:45ID:2lCZsXeTURIにコントローラやアクションを含めるような設計ってできるんでしょうか。
PHPのインスコ状況によるのかもしれませんが、どうも情報見つかりません。
0415nobodyさん
2008/10/07(火) 13:23:31ID:???コントローラーで$this->set('test', 10);と書くと
exception 'Zend_Controller_Action_Exception' with message 'Method "set" does not exist and was not trapped in __call()' 〜
とエラーがでてしまいます。
setを使うのに宣言か何かが必要かと思い、調べたのですが何処を見てもsetを使えばできるとしか書いていません。
コントローラーで$test;や$test=3;はエラーが出なく、エラー文を見てもsetに原因がある気がするのですが、何が原因なのでしょうか?
0416nobodyさん
2008/10/07(火) 13:41:47ID:???フレームワークのこと知らないので適当だけど、
メッセージを見るとsetが未定義で、call(多分ビルトインの)で
トラップ(多分、未定義のメソッドが呼ばれたときに適当なメソッドを割り当てる)もできないと言ってる。
多分$thisはControllerクラスのことだと思うので(多分ばっかですんまそ)
要するにControllerクラスにsetが定義されてないんじゃないかと思います。
クラス定義やメソッド一覧するメソッドがあると思うので、確認してみては?
ちなみに今気づいたんですが、フレームワークを使ってると>>414の質問の答えはYesでしょうか?
0417nobodyさん
2008/10/07(火) 14:12:15ID:???「?name=value」が嫌ならmod_rewrite(Apache)で出来る
>>415
コントローラにsetがないってことじゃないか?
$thisじゃなくてビューのオブジェクトのsetを呼べばいいような気がする
ZendFWは使ったことないが、普通はそうだと思うぞ
0419415
2008/10/07(火) 14:44:42ID:???ご指摘どおり、thisはコントローラーでsetがありませんでしたので、
中身のないsetを作ってみたところエラーは出なくなりましたが、変数の受け渡しはうまくいきませんでした(空なので当たり前ですね)
これでエラーそのもの原因は分かったので次は変数が受け渡せるように頑張ります。
>>417
確かにコントローラーに無いのでthisだと自分で処理を書くか、何処かからコピーしてこないといけないようです。
何処かからコピーしてくるんならそれを使えよって話なので、まずビューからそれらしいのがないか探して見ます。
>>418
キャメルケースが何なのか分からないのでぐぐってみましたが、命名規則(camelCaps?)の事でしょうか。
とりあえず命名規則はチェックしましたが大丈夫でした。
0420nobodyさん
2008/10/07(火) 14:48:06ID:???メソッド書いてないからメソッド無いと言われたっていう話ですか。(´Д`;)
0421416
2008/10/07(火) 15:26:57ID:???今、どんなかなと思って近所でZendの本(緑のやつ)見てきました。
それで思ったんですが、set(value,value)って
Controllerクラスじゃなくレジスタクラス(?)のメソッドじゃないかな?
コントローラで
require "Zend::Registry" <-これ正確じゃないです。これ的な名前。
regist = new Zend::Registry(); #レジスタオブジェクト
regist.set('test', 10);
じゃないかと思います。
ただ、これはアプリ全体で共有したい変数を記憶しておくクラスということなので
このメソッドで即ビューに値が渡るかは分かりません。
Controllerクラスには$this->setBody(value)的なメソッド群がある模様。
しかし、フレームワークでの制作をコピペ等でこなすのは逆にけっこうな大冒険なのでは・・・
0422416
2008/10/07(火) 15:32:59ID:???どもです。それ自分もやったことあります(CGIでw)
Apacheモジュールとして動作してるなら他といっしょかなと思ったのですが
経験者の方が耳にしたことないってことは、
少なくとも基本機能ではないってことですもんね。
参考になりました!
0423414
2008/10/07(火) 15:34:14ID:???0424403
2008/10/09(木) 04:27:43ID:???>>408-409さんの言ったとおりに
C:\>php\go-pear.phpを実行してみたのですが
go-pear.phpのエディタが出てきただけでした
それで完了されているとは思えないのですが
どこが間違っているのでしょうか?
よろしくお願いします
0425403
2008/10/09(木) 04:52:41ID:Sz+W15yD自分が持っている本ではgo-pear.batをコマンドプロンプトで実行すると
いくつかの質問が出てきて
最後にPHP.iniにパスを通す動作が出てくるようなのですが
それらしき質問もでません
よろしくお願いします
0426nobodyさん
2008/10/09(木) 05:13:45ID:???phpが動いてるか確認してな
0427403
2008/10/09(木) 05:21:50ID:Sz+W15yDレスありがとうございます
ドキュメントルートにアップして とはどういうことでしょうか?
ttp://always-pg.com/glossary/kana04_ta/document_root.htmlで調べたら
/で区切っているディレクトリのことだと思うのですが
PHPは動作してます
さっきまで簡単なソースをapacheでやっていました
0428nobodyさん
2008/10/09(木) 05:25:50ID:???0429nobodyさん
2008/10/09(木) 05:25:57ID:???先に基礎的な知識を身に付けてからのほうがいいと思うよ
0430403
2008/10/09(木) 05:30:32ID:Sz+W15yDそういう意味だったんですか
表示されました
go-pear.phpをapacheの中に入れたら
>>429さん
そのことは十分理解しております
ここで聞いてたときも何度も言われました
そのため基礎的な本を買ってこの様です
頑張りたいと思うのでよろしくお願いします
0432403
2008/10/10(金) 15:39:02ID:6TTacjjephp.iniを見てもパスが通っている気配がないです
コマンドプロンプトを使用してもエディタしか起動しない…
0433nobodyさん
2008/10/10(金) 16:16:49ID:???ブラウザでgo-pear.phpにアクセス出来たならその画面から操作するわけだが?
0434403
2008/10/10(金) 17:16:06ID:/lY+1YLGおお そんなことだったんですか
今やってみました
ですが最後のページのhttp://index.php/
が開けれないんですが
pearが導入されたことを確認する方法ってありますか?
またphp.iniにパスが通ってないようなのですが
勝手に書き込まれるわけではないのでしょうか?
よろしくお願いします
0435nobodyさん
2008/10/10(金) 19:00:50ID:???そりゃムリだろ
最初にgo-pear.phpにアクセスした際に環境設定するじゃん
そこにインストールされる
パスが通ってるかどうかはphp.ini次第だから、そんなのあとあと
まずはファイルが配置されたかを確認
0436403
2008/10/10(金) 21:45:20ID:/lY+1YLGレスサンクス
PHPの中のpearというフォルダにはたくさんファイルが入っていました
さらにその中のpearというフォルダにも入っていました
インストールは完了したっぽいです
これで最後にphp.iniにinclude_path=".;C:\php\pear"と最後に書いたら完了でしょうか?
0437nobodyさん
2008/10/10(金) 22:04:35ID:???どの辺が頑張ってんだ。
0438nobodyさん
2008/10/10(金) 22:40:00ID:???0439nobodyさん
2008/10/11(土) 07:38:32ID:???0440403
2008/10/11(土) 07:52:03ID:IbH29Qlbとりあえず環境設定でいつもつまずくので
環境設定だけ完了したいんでよろしくおねがいします
0441nobodyさん
2008/10/11(土) 08:05:52ID:???頑張れ。
0442403
2008/10/11(土) 10:04:59ID:IbH29QlbNotice: Use of undefined constant PEAR_CONFIG_SYSCONFDIR - assumed 'PEAR_CONFIG_SYSCONFDIR' in C:\Program Files\Apache Group\Apache2\htdocs\PEAR\pearfrontendweb.php on line 72
Warning: Can not find config file, please specify the $pear_user_config variable in /index.php
Error: the template directory (C:\php5\pear\data\PEAR_Frontend_Web\data\templates) is not a directory, or not readable. Make sure the 'data_dir' of your config file (C:\php5\pear\data) points to the correct location !
これはインストールされてないってことでしょうか?
0443nobodyさん
2008/10/11(土) 12:01:25ID:???警告: コンフィグがファイルであることを見つけることができないで、/index.phpの$洋梨_ユーザ_コンフィ
グ変数を指定してください。
誤り: テンプレートディレクトリ(C: \php5\洋梨\データ\PEAR_Frontend_ウェブ\データ\テンプレート)は、ディレクトリ、または読み込み可能です。 あなたのコンフィグファイル(C: \php5\洋梨\データ)の'データ_dir'が正しい位置を示すのを確実にしてください!
という意味だよ
0444nobodyさん
2008/10/11(土) 14:23:21ID:8EU/X1Q4print(mb_strwidth("※",'UTF-8'));
これををUTF-8でテキストとして保存して実行すると答えが1とでます。
なんとか正しく判定させて2と出させたいのですが、どうすればいいのでしょうか。
ちなみにSJISやEUCで試してもやはり1でした。
0445nobodyさん
2008/10/11(土) 14:39:07ID:???0446nobodyさん
2008/10/11(土) 20:36:15ID:mQFhChiahttp://www.vipper.org/vip951655.txt.html
のコードを動かしてみたんですが、
Parse error: syntax error, unexpected T_VARIABLE, expecting ';' in /virtual/boon/public_html/2ch/rss.php on line 28
が帰ってきます。。
よかったら、原因を教えて下さい。。
0447nobodyさん
2008/10/11(土) 20:44:39ID:???26: for ($i=0;$i
// 27:
// 28: $rss = fetch_rss($rssurl[$i]);
CGI設置について質問【Part3】
http://pc11.2ch.net/test/read.cgi/php/1176143582/
0448nobodyさん
2008/10/12(日) 09:51:36ID:???<h1>と</h1>
で囲まれた部分だけを抽出して配列に格納したいのですが、どのような方法があるでしょうか。
■ このスレッドは過去ログ倉庫に格納されています