【PHP】質問スレッドpart24【php】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
04/11/01 04:09:15ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-4
0810nobodyさん
04/11/18 15:55:34ID:???preg_match_all の方を使おうとしてるのを考慮すると、>>809の可能性も。。。
0811nobodyさん
04/11/18 17:12:40ID:???countとsizeof関数は、何か違うのでしょうか?
マニュアルには、sizeofはcountのエイリアスとしか記載されていませんでしたが
使い分ける必要等はあるのでしょうか?
0812nobodyさん
04/11/18 17:40:40ID:???0815nobodyさん
04/11/18 18:03:03ID:???ごっちゃになるからだけだと思う。
sizeof導入も、C書きの人がすんなり入りやすいためだけだろう
多分。
0816nobodyさん
04/11/18 18:03:29ID:???使わない方が無難
0817軟式PHP
04/11/18 18:07:36ID:???0818nobodyさん
04/11/18 18:18:24ID:8nQGI/2aそこで質問なのですが、
ASPでのresponse.endに該当する記述は、PHPだと何になるのでしょうか?
具体的にはフォームから送られた内容を確認するために、
受け取った変数の中身をechoで表示したところで、1度スクリプトを停止させたいのです。
基本的な事で申し訳ありませんが、よろしくお願いします。
0819nobodyさん
04/11/18 18:22:11ID:???0820nobodyさん
04/11/18 18:58:04ID:???0821nobodyさん
04/11/18 19:05:33ID:bps4zhVUたまに変換されずになることがあります。
変換内容はュ→ユのように小文字を大文字に直すだけなんですが
何か原因があるのでしょうか?
また、str_replace()とか使った方がいいですか?あまり違いがわからなくて・・。
0823822
04/11/18 19:13:29ID:???そういう処理はマルチバイトを考慮しない関数は使わない方がいい。
色々ググってみ。
0824nobodyさん
04/11/18 19:29:34ID:???php_openssl.dllが見つかりませんというエラーになります。
extension_dirをフルパスに設定しても./(ドットスラ)にしても
見つからないらしいです。
他にも何か設定を変える必要があるんでしょうか?
0825nobodyさん
04/11/18 19:39:34ID:???2. 違うphp.iniを変更している。
0826nobodyさん
04/11/18 19:53:52ID:???1. きちんとあります。それらしきところ(system32配下やカレントディレクトリなど)に
いろいろ配置してみましたがダメでした。見つからないらしいです。
2. extension=php_openssl.dll の行をコメントアウトして再起動するとエラーが消えるので
php.ini自体は正しいと思われです。
0828nobodyさん
04/11/18 20:45:57ID:???http://php.s3.to/man/ref.openssl.html
>Win32ユーザへの注意: このモジュールをWindows環境で使用するには、PHP/Win32バイナリパッケー ジのDLLフォルダからlibeay32.dllを使用する WindowsマシンのSYSTEM32フォルダ(例: C:\WINNT\SYSTEM32または C:\WINDOWS\SYSTEM32)にコピーする必要があります。
これではないのか?
0829nobodyさん
04/11/18 20:49:13ID:???libeay32.dllをsystem32フォルダにコピー
環境変数OPENSSL_CONFを新規作成してopenssl.cnfのパスを指定
0830nobodyさん
04/11/18 20:51:20ID:???編集する場合はエディタから開くで指定する。
0831nobodyさん
04/11/18 22:14:30ID:VOS+8K87のように、オブジェクトを返すメソッドから直接そのメソッドを呼ぶことは、
許されてないのでしょうか?
パースエラーになります。
PHP4です。
0832nobodyさん
04/11/18 22:27:31ID:XCBl1M85PHPで一番得意なのはどういう処理ですか?
(DB操作や文字列処理、数値計算など)
0834nobodyさん
04/11/18 22:40:25ID:???マニュアルより。
PHPを使用する上で最も優れている点は、初心者に対しては非常に分かり 易いと同時に、
プロフェッショナルのプログラマに対しては多くの進んだ機能を提供している点です。
PHPの機能を羅列した長い一覧表を読まなければならないのかと心配する必要はありません。
PHPはすぐに始められますし、数時間の内に簡単なスクリプトが書けるようになります。
0836nobodyさん
04/11/18 22:55:21ID:???0838nobodyさん
04/11/18 23:01:18ID:???他言語との速度比較をする際に参考にしようと思って質問しただけです
>>834
なるほど。
ということは処理的な特徴は特にないのですか?
(私はPHPを使った開発はしてません)
>>835
なぜ?
>>836
Java書けますけど
私もそう思います
0840nobodyさん
04/11/18 23:07:11ID:???それなら最初から速度に関して質問すればいいでしょ
全体的な処理の速さなら他の言語と違いあるだろうし、規模にもよるんだって回答もあるでしょう。
文字列処理だけ特別に早かったり、数値計算がなぜかすごく遅かったりなんていう言語はあるとは思えん。
0841831
04/11/18 23:13:11ID:???それだと、自分の中で、「PHPつかえねー」って結論になってしまいます。
それだとさみしいな。
0842832
04/11/18 23:16:13ID:???全体的な速度とかは求めてません。
あくまでもPHPとして得意な処理ってなんなの?っていう件でお答えしていただきたかったのです
ちなみに特別に早いとか遅いはないですけど
得意・不得意は絶対にありますよ
特に数値計算は苦手な言語が多いので差が出やすいと思います
0843nobodyさん
04/11/18 23:17:07ID:???そういう方面に使いやすい
0844nobodyさん
04/11/18 23:21:08ID:???0845832
04/11/18 23:22:15ID:???マニュアルでも確認できましたし
やはりそういう得意分野は処理ではなく開発(特に初心者向け)のほうで1歩前に出てるということですね
ありがとうございました。
0848nobodyさん
04/11/18 23:27:05ID:???そう、初心者向けに開発しやすい
お約束が少ない
まぁ玄人(?)でも簡単に書けてすぐ動く。
速さを求めるなら、他のをどうぞ
0850nobodyさん
04/11/18 23:42:50ID:???鯖に易しい
0851nobodyさん
04/11/19 00:03:18ID:OG1nPnpo0852nobodyさん
04/11/19 00:17:02ID:???スクリプトの実行終了と同時に閉じられます。
http://jp2.php.net/manual/ja/function.mysql-connect.php
mysql_pconnect()は、二つの点を除いて mysql_connect()と全く同様に動作します。
1.すでにオープンされていないかどうかを調べます。
それがみつかった場合、新規の接続をオープンする代わりに
そのリンクのIDが返されます。
2、SQLサーバーへの接続がスクリプトの実行終了時にも 閉じられないということです
0853nobodyさん
04/11/19 00:23:33ID:???MySQLサーバ側のタイムアウトで切断する。
あとPHPで普通の接続(永続的接続でない)した場合は、
スクリプト実行の終了時にPHPが自動的に切断処理を行う。
勿論自分でcloseするのも可。
0854nobodyさん
04/11/19 00:43:00ID:???web系の事なら何をするにしても関数が用意されてる。
ただ、急に名前変わったり過去の関数をずっと引きずるのはいただけない。
ずっと68Kを引きずったMacのようだ。と元マカーの俺。
0855nobodyさん
04/11/19 01:04:32ID:???ダメ。マニュアルのどっかに書かれていたのを読んだ記憶があるんだがみつからねー
()-> で検索できればエラー例が一発で出るんだけど仕様上無理なんだよなぁ
0856nobodyさん
04/11/19 01:35:35ID:???同じく探したが見つからなかった…
0857nobodyさん
04/11/19 02:15:29ID:???変換するにはどう変更すればいいんでしょうか?
if ($autolink) { $comment = auto_link($comment); }
になっているのですが・・・
0859nobodyさん
04/11/19 02:42:56ID:???# URLの自動リンク (0=no 1=yes)
$autolink = 1;
掲示板なんですがコメントにURLが張られるとそのままURLの文字にリンクが張られるので
こちら、って文字に置き換えてリンクを張りたいのです。
定義の意味がよくわからないので見当はずれだったらすみません;
0860nobodyさん
04/11/19 02:49:13ID:???見当外れだ。auto_link 関数の定義があるでしょ。
どうせ http から始まる文字列を <a href="http**">http***</a> に replace してるんだろうから
それを <a href="http**">こちら</a> に変更すればいい。
0862nobodyさん
04/11/19 05:57:46ID:???あんなに共有サーバの設定しにくい代物でサーバにやさしいのか?
サーバ管理者泣かせだと思うよ
モジュール追加する作業も面倒だし
たまに他のApacheモジュールと競合するときあるのよね
どうしたもんかね
まぁサーバにやさしいというか>>848が言ってるように
初心者にやさしいだけ
標準でいっぱい入れてるから遅いってのもあるけどね
0863nobodyさん
04/11/19 06:28:08ID:???\/
人
/ ̄  ̄ ̄\
( 人____)
|./ ー◎-◎-)
(6 (_ _) )
| .∴ ノ 3 ノ ______
ゝ ノ .| | ̄ ̄\ \
/ \__ | | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄
0864nobodyさん
04/11/19 08:15:55ID:???\/
人
/ ̄  ̄ ̄\
( 人____)
|./ ー◎-◎-)
(6 (_ _) )
| .∴ ノ 3 ノ ______
ゝ ノ .| | ̄ ̄\ \
/ \__ | | | ̄ ̄|
/ \___ | | |__|
| \ |つ |__|__/ /
/  ̄ ̄ | ̄ ̄ ̄ ̄| 〔 ̄ ̄
0865nobodyさん
04/11/19 09:26:48ID:???どのようにしたらよいのでしょうか?
0867nobodyさん
04/11/19 10:17:24ID:???0868nobodyさん
04/11/19 10:48:57ID:???0869nobodyさん
04/11/19 11:01:01ID:???使えるならユーザ側でかなりの工夫しないとDBのパスワードとか盗まれるぞ。
safe_modeになってないのは論外。
0872nobodyさん
04/11/19 15:56:12ID:???そもそも設定が面倒とか言ってるヘタレ共有鯖管のトコ使わんけどな。
しまいにゃセキュリティホール塞ぐの面倒とか言い出しそうだ。
0873nobodyさん
04/11/19 17:35:26ID:???何使えばいい?
mysql_select_db?
0874nobodyさん
04/11/19 17:59:52ID:???phpのflock()の信頼性はどうなのでしょうか?
flockを使用せずmkdir()を用いた方が良いのでしょうか?
0875nobodyさん
04/11/19 18:20:18ID:???0876nobodyさん
04/11/19 18:26:18ID:???0877nobodyさん
04/11/19 19:04:08ID:???0878nobodyさん
04/11/19 19:30:42ID:???↓PHPマニュアルには
http://jp2.php.net/manual/ja/ref.mbstring.php
>configureスクリプトでモジュールを有効にする必要があります。
>詳細は、インストールの節を参照して下さい。
と書いてありますが、指定されたインストールのページには
詳細どころか configureスクリプト の文字すら無く、弱っております。
0880素人
04/11/19 20:44:15ID:/iwixYaKApache バージョン 2.0.40
PHP Version 4.3.9
簡単なファイルアップロードのプログラムを動かすと
なぜかファイルサイズが倍(正確には倍より少しちいさい)ぐらいになってしまいます。
当然、中身もおかしいので画像ファイルだとずれた画像になってしまいます。
ftpだとうまくいきます。
プログラムは
http://www.pat.hi-ho.ne.jp/dimension/sample/sample_others_upload.shtml
のとおりなのですが、、、
どなたかお心当たりはありませんでしょうか。
0882カポコン
04/11/19 21:38:18ID:???Linuxはエナブルで追加、
Windowsは、php**.dllを置いた所に拡張モジュールを置いて
リスタート
0884nobodyさん
04/11/19 23:07:45ID:???0885nobodyさん
04/11/19 23:27:14ID:???0886nobodyさん
04/11/19 23:33:25ID:???0888nobodyさん
04/11/20 00:03:07ID:???0889nobodyさん
04/11/20 00:16:24ID:???0890nobodyさん
04/11/20 00:23:38ID:???↓次の質問いってみようか
0891nobodyさん
04/11/20 00:29:02ID:???whileループ使うよりfor使えばいいのに
0892nobodyさん
04/11/20 02:03:29ID:lZ7mI+hyプログラム経験まったくない初心者で今日からPHPを勉強し始めました。
まだ本当の初心なのですが、
$x = 1;
$a = 2;
$b = $a + 3 * $x;
print("計算結果は".$a+3*$x."です<br>");
print("計算結果は".$b."です<br>");
としたときに
3です
計算結果は5です
と表示されるのはなぜなのでしょうか?
いろいろ調べてみたのですがわかりません。
教えていただけないでしょうか?
0893nobodyさん
04/11/20 02:16:08ID:???http://jp.php.net/manual/ja/language.operators.php#language.operators.precedence
これ見ると、「.」と「+」の演算子の優先順位は同じだよな。
どういう順番で演算されてそういう結果になったと思う?
0894nobodyさん
04/11/20 02:34:35ID:lZ7mI+hyこれを2時間くらい考えていて眠れなかったんです。
3*$xが先に計算されて3ですよね
その後に”計算結果は.$b”というありえない数字が足されたために無視されたので
3です
になったんでしょうか?
0895nobodyさん
04/11/20 02:43:18ID:???"計算結果は".$a+3."です<br>"
"計算結果は2" +3."です<br>"
3. "です<br>"
"3です<br>"
0897nobodyさん
04/11/20 02:48:59ID:???少しもちつけ。
「"計算結果は".$a+3*$x."です<br>"」の演算について話してる時に$bは出てこないだろう。
「"計算結果は".$a」の部分の結果が "計算結果は.$a" となるわけでも無い。
落ち着いたら、さっきのリンクしたページから文字列演算子について調べてみよう。
英文かもしれないが答えは見つかるはずだ。
0898nobodyさん
04/11/20 02:50:17ID:???深夜なのにどうもすみませんでした
なかなか奥が深いのですね。
試料を探すだけじゃなくていろいろやりながら勉強してみます。
ありがとうございました。
0899894
04/11/20 03:06:00ID:???えっと…
$a+3*$xだと(2+(3*1))になるから5ですよね
前の""の文字列は0で認識されるんですよね
"計算結果は".$a+3*$x.だと0.2+3に…
だと変だな
余計にこんがらがってきたw
0900nobodyさん
04/11/20 03:07:23ID:???perlで言うと@{[ ****** ]}みたいな…
0901nobodyさん
04/11/20 03:28:05ID:???ってのは、もうウンザリ。
0902nobodyさん
04/11/20 03:37:37ID:???これで最後にしてくれ
>"計算結果は".$a+3*$x.だと0.2+3に…
"計算結果は".$a+3*$x
"計算結果は".$a+3
//文字列と数値を . (ドット)で演算すると、数値は文字列に変換されてくっつく
"計算結果は2" +3
//文字列と数値を + (プラス)で演算すると、文字列はゼロに変換されて加算される
0 +3
0903nobodyさん
04/11/20 03:42:02ID:???もちつけ。>>902が既に書いているが念の為
1. まず、「*」演算子が一番優先度が高いのでそこが評価される。
→ "演算結果は".$a+3*1."です<br>" → "計算結果は".$a+3."です<br>"
2. 「.」演算子と「+」演算子は優先度は同じ。左から順番に評価される。
3. "計算結果は".$a の部分。演算子の両側を文字列として扱うので、
$a の値である 2 は "2" と変換される。
→ "計算結果は"."2"+3."です<br>" → "計算結果は2"+3."です<br>"
4. "計算結果は2"+3 の部分。演算子の両側を数値として扱うが、
数値で始まっていない文字列 "計算結果は2" は 0 に変換される。
→ 0+3."です<br>" → 3."です<br>"
5. 3 は "3" に変換される。
→ "3"."です<br>" → "3です<br>"
0904nobodyさん
04/11/20 04:16:37ID:???print("1. 計算結果は".$a+3*$x."です<br>");
print("2. 計算結果は".$b."です<br>");
これも行っときますか。
0905nobodyさん
04/11/20 05:38:05ID:???"1. 計算結果は" が 1.0 に変換されるというパターンか。
釣られてはみたものの、単に「マニュアル読め」、「試せ」で終わらせたい気もする。
http://jp.php.net/manual/ja/language.types.type-juggling.php
0907905
04/11/20 05:55:12ID:???>>903 でも "演算結果は" とかヤっちゃってるし、吊って来る…
0908nobodyさん
04/11/20 09:12:17ID:???print("計算結果は".($a+3*$x)."です<br>");
レス数が900を超えています。1000を超えると表示できなくなるよ。