【PHP】ID出さなくても質問OKなスレ【初心者歓迎】

このエントリーをはてなブックマークに追加
952nobodyさん:2009/09/09(水) 07:33:21 ID:???
953nobodyさん:2009/09/09(水) 11:31:03 ID:???
class MyClass {
private $width;
public function __construct(){ 中身 }
public function __destruct(){ 中身 }
public function get_width(){return $this->width;} //@
}

ちょっと色々と省略していますが、このthisはいったい何を意味しているのでしょうか?
というよりも、@の部分はwidthプロパティを取得しているとの事らしいのですが、 $this->widthの部分が何をしているのかが分かりません
すみませんが教えていただきたく質問させてもらいました

954nobodyさん:2009/09/09(水) 11:38:37 ID:???
//$tihsは自分自身。
$foo=mew MyClass();
$foo->get_width();
//ならget_width()の$thisは$fooだし
$boo=mew MyClass();
$boo->get_width();
//なら$boo。
955nobodyさん:2009/09/09(水) 11:40:58 ID:???
>>953
$thisは自身を指す変数
->はアロー演算子と呼ばれるものでオブジェクトのメンバを参照するときに使う
http://www.shigeweb.jp/php/project_p/?page=class§ion=first
なんかを読むと良い
956nobodyさん:2009/09/09(水) 11:51:58 ID:???
いや公式マニュアル使えよ
957nobodyさん:2009/09/09(水) 14:39:09 ID:???
>>954-955
ありがとうございます
958nobodyさん:2009/09/09(水) 15:57:59 ID:???
PHPで、関数呼び出しをトレースする機能はありますか。
あるアプリケーションをメンテナンスすることになったのですが、動作がわからず困ってます。
せめて
・どのファイルが読み込まれたのか
・どの関数が呼び出されたのか
を知ることができたらと思い、質問させていただきました。
よろしくお願いします。
959nobodyさん:2009/09/09(水) 16:20:16 ID:???
960nobodyさん:2009/09/09(水) 18:01:48 ID:???
>>959
backtraceはちょっと求めるものとは違いました。
debug_backtrace()を使うには、すでに呼び出されることがわかっているコードの中で呼び出す必要がありますが、
どのコードが呼び出されるのかまるでわかってない場合には使いづらいです。

Xdebugについては知りませんでしたので、調べてみます。
ありがとうございました。
961nobodyさん:2009/09/09(水) 20:19:12 ID:???
calltreeが欲しいのかな?
962nobodyさん:2009/09/10(木) 10:14:01 ID:???
gtags やまともなエディタだったりして
963nobodyさん:2009/09/10(木) 15:21:24 ID:???
<?php
$to='メールアドレス@hotmail.co.jp';
$subject='テストメール';
$body='こんにちは、世界!';
if(mb_send_mail($to,$subject,$body)){
print('メール送信に成功しました。');} else {print('メール送信に失敗しました。');
}
?>
と書いたら、Fatal error: Call to undefined function mb_send_mail() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\chap4\sendmail.php on line 5 と出てきました
php.iniの設定もSMTP、sendmail_fromともにちゃんと設定したつもりなのですが、何故メールを送れず構文エラーが出るのでしょうか?
ちなみにこの構文は参考書のコピーなのですが
964nobodyさん:2009/09/10(木) 15:29:16 ID:???
mb_string.dllをロードしてないんじゃ?
965nobodyさん:2009/09/10(木) 15:32:36 ID:???
php_mbstring.dllだった
966nobodyさん:2009/09/10(木) 15:35:20 ID:???
>>964
php.iniのextension=php_mbstring.dllの事でしょうか?
もしそれならばちゃんと設定してあります
967nobodyさん:2009/09/10(木) 15:40:07 ID:???
その環境で、mb_系の関数動くか、簡単に試してみよう
968nobodyさん:2009/09/10(木) 15:41:29 ID:???
>>966
Apache再起動だ
969nobodyさん:2009/09/10(木) 15:42:47 ID:???
>>963
phpinfoにmbstringが有効になってるか確認してください
970nobodyさん:2009/09/10(木) 15:43:44 ID:???
>>967さん、>>968さん
mb_系、全部動きませんでした
何が悪かったのでしょうか・・・
971970:2009/09/10(木) 15:46:49 ID:???
あっ、バージョンはphp-5.2.10-Win32.zipとapache_2.2.13-win32-x86-openssl-0.9.8k.msiの組み合わせです
972969:2009/09/10(木) 15:47:41 ID:???
なぜスルーされたんだ・・・
973970:2009/09/10(木) 15:51:06 ID:???
>>972さん
あっ、ごめんなさい今確認しているところです・・・すみません
974970:2009/09/10(木) 15:56:42 ID:???
すみません、phpinfoで確認してみたのですが、mbstringの欄が見当たりません
F4機能でも文字検索してみたのですが、ありませんでした・・・orz
975970:2009/09/10(木) 16:38:53 ID:???
その後、ネットで検索して問題解決に努めたのですが、
Configure Command で
cscript /nologo configure.js "--enable-snapshot-build" "--enable-debug-pack"
"--with-snapshot-template=d:\php-sdk\snap_5_2\vc6\x86\template" "--with-php-build=d:\php-sdk\snap_5_2\vc6\x86\php_build"
"--with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared"
と書いていて、mb_stringは入っていないようでした
で、色々と実験してみたのですが、やっぱり解決しませんでした
この場合どのようにすればいいのでしょうか?
一度アンインストールとかして最初からした方がいいのでしょうか?
976nobodyさん:2009/09/10(木) 16:43:36 ID:???
--enable-mbstringでビルドすればいいじゃない
977970:2009/09/10(木) 17:08:16 ID:???
>>976さん
すみません、ギブっす・・・
--enable-mbstringのビルドの仕方というものが自分には皆目分かりません
以下のようにネットで色々と調べてみたのですが、理解が出来ません
libmbflライブラリというものも何で、どこで入手し、どこに入れればいいのかも分かりませんし、
configure のオプションに、--enable-mbstring を追加という記述も、いったいどこに追加すればいいのかも分かりませんでした

http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_mbstring.html#compile
http://php.plus-server.net/mbstring.installation.html
http://www.php.net/manual/ja/mbstring.installation.php

申し訳ございませんがご教授願いたいと思います
先ほどからすみません
978nobodyさん:2009/09/10(木) 17:35:04 ID:???
>>977
コンパイル済みのバイナリじゃなくて自分でコンパイルしなさいよってことじゃないかと
979970:2009/09/10(木) 17:47:15 ID:???
>>978さん
PHPは筆記で今までやってきてそこそこ出来るようになったのですが、こういう設定の方はまだまだサッパリの初心者です
http://www.aconus.com/~oyaji/www/apache_linux_php.htm
こういうサイトを見つけたのですが、僕の問題の場合、Apacheの設定をしなければならないのでしょうか?
自分で--enable-mbstringを入れると言っても、いったい何のどこに加えればいいのかが分かりません
そもそも、このcongirureというものが良く分かりません
上記のサイトのPHPをインストールって箇所の黒い枠の部分に辿り着く方法がそもそも分からないのです
980nobodyさん:2009/09/10(木) 17:49:07 ID:???
>>979
http://www.php.net/manual/ja/install.unix.php
信頼性の低い個人サイトより公式マニュアル見たほうがいいよ
981nobodyさん:2009/09/10(木) 17:58:23 ID:???
>>979
windows環境でしょ?linuxの解説みて混乱しないでね。
phpのインストールはどこにした?

php.iniのextension_dirにphp_mbstring.dllある?
982nobodyさん:2009/09/10(木) 18:02:19 ID:???
http://2php.jp/php/install_php_windows.html

ここを見て入れなおしてもいいんじゃないかな。
php_mbstring.dll の有効化もガイドしてるから。
983nobodyさん:2009/09/10(木) 18:02:39 ID:???
984970:2009/09/10(木) 18:15:14 ID:???
>>981さん
あ、linuxでしたね、すみませんw

php_mbstring.dllはありますし、
php.iniの設定で、extension=php_mbstring.dllとしていますし、
extension_dirの指定ファイル先に、php_mbstring.dlというものがありますl
985970:2009/09/10(木) 18:16:41 ID:???
>>982さん

やっぱ再インストールですかね?
再インストールの場合は、PHP、Apache、どちらを再インストールすればいいのでしょうか?

>>983さん
そのスレは見て、それと参考書を加えた設定でやりました
986nobodyさん:2009/09/10(木) 18:30:57 ID:???
読み込んでるphp.iniが違うんじゃないの?
987nobodyさん:2009/09/10(木) 21:22:39 ID:Wu0Ynk2e
処理がタイムアウトした場合に次の処理に移動する方法がわからないよーー

set_time_limit();だと処理に時間掛かりすぎるから
30秒待ったら次の処理に行きたいんだけど
無理なのかーー
988nobodyさん:2009/09/10(木) 21:35:58 ID:???
>>987
何をしたいのかわからんので外していると思うが
forkさせてpcntl_alarmでタイマーを作成とかなら昔やった。
php5.3ならpcntl_sigtimedwaitが使えそうだ。

PHP: PCNTL 関数 - Manual
http://jp.php.net/manual/ja/ref.pcntl.php

989970:2009/09/10(木) 22:23:35 ID:???
マジで出来ません・・・
もう7時間格闘しているのですが、mb_stringが出来ません
php、Apatchともに再インストールしたりしたのですが・・・
何故か--enable-mbstringが出てきません
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_mbstring.html#windows
configure のオプションに、--enable-mbstring を追加するとか書かれていますが、configureって何なんでしょうか?
もう流石に疲れてきました・・・・・・・・・・・・・・・・・・・・・
990nobodyさん:2009/09/10(木) 22:25:19 ID:???
おまいさんwindowsじゃなかったのけ?
991970:2009/09/10(木) 22:31:32 ID:???
>>990
Windows XPです
コレはphp.iniとかの問題じゃなく、自分のパソコンのOSの問題とかあるのでしょうか?
992nobodyさん:2009/09/10(木) 22:32:53 ID:???
mbstring を使用する方法
 a. 静的ライブラリとして組み込む方法
 b. 共有ライブラリとして使用する方法
 c. Windows 環境の場合

って書いてあるじゃないか・・・
993nobodyさん:2009/09/10(木) 22:33:42 ID:???
>>991
phpはzip解凍するだけ
apacheはmsiでインストール
あとはphh.iniとhttpd.confを確認するだけで平気なはずだが・・・

>>986でも書かれてるように、読み込んでいるphp.iniが違うというのはないのか?
994nobodyさん:2009/09/10(木) 22:35:15 ID:???
windowsは最近はインストーラの方向にシフトしてくみたいだけどね
995970:2009/09/10(木) 22:35:48 ID:???
>>992
では、a.とb.はLinuxなどの別のOS用のやり方なのでしょうか?
で、c.のやり方・・・

c. Windows 環境の場合
ダウンロードした PHP のパッケージの中に、php_mbstring.dll が含まれています。
php.ini で extension_dir と extension を設定します。
extension_dir = "C:/php/ext"
extension=php_mbstring.dll

ですけれど、それは既に何度も確認しています
996nobodyさん:2009/09/10(木) 22:37:34 ID:???
うん、で>>986
997970:2009/09/10(木) 22:37:50 ID:???
>>993
mb_string以外は .phpファイルは出来るのですが、mb_stringだけ出来ません

一応もう一度読み込むphp.iniを確認してみます
998970:2009/09/10(木) 22:42:12 ID:???
doc_root="C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"
extension_dir = "C:/php/ext"
はファイル先は合っていますし、
extension=php_mbstring.dll
もコメントは抜けています
でも出来ません・・・
999nobodyさん:2009/09/10(木) 22:44:25 ID:???
phpinfoで確認するんだよ
1000nobodyさん:2009/09/10(木) 22:44:42 ID:???
このスレは1000の風になりました
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。