【PHP】質問スレッドpart20【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/08/06 15:44ID:paJ4kjjQ・新規質問の方は上げてください。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
抜けているものがあったら補足願います
0605nobodyさん
04/08/19 11:26ID:???0606nobodyさん
04/08/19 11:43ID:???0608nobodyさん
04/08/19 12:02ID:???そもそもjcode.phpって必要
0609nobodyさん
04/08/19 12:03ID:???0610nobodyさん
04/08/19 12:26ID:???Warning: fputs(): supplied argument is not a valid stream resource in /usr/home/free/home/market/public_html/mmorpg/link/index.php on line 20
Warning: fclose(): supplied argument is not a valid stream resource in /usr/home/free/home/market/public_html/mmorpg/link/index.php on line 24
Warning: Cannot modify header information - headers already sent by (output started at /usr/home/free/home/market/public_html/mmorpg/link/index.php:19) in /usr/home/free/home/market/public_html/mmorpg/link/index.php on line 28
もうだめぽ_| ̄|○
0611nobodyさん
04/08/19 13:06ID:???とはどういう意味でしょうか?
0613Imo ◆.jC7ANgFY.
04/08/19 13:23ID:???文法エラー
文法上の誤りがあります。
本来、case(T_CASE)またはdefault(T_DEFAULT)または}であるべき
ところが文字列(T_STRING)になっています。
0615611
04/08/19 13:27ID:???case1:$a = "q";break;
case2:$a = "w";break;
case3:$a = "s";break;
case4:$a = "x";break;
}
って間違ってるのかな〜
0616nobodyさん
04/08/19 13:33ID:???0619軟式PHP
04/08/19 14:39ID:???case 2
case 3
case 4
だろ。
0620nobodyさん
04/08/19 14:43ID:HVGJn52bが167にならないのって一体どういう事だ?
おかげで徹夜しますた。
0621Imo ◆.jC7ANgFY.
04/08/19 14:59ID:???注意: 引数の値が 2 つの整数の中間にある場合の ROUND() の動作は、
C ライブラリの実装に応じて決まる。
実装に応じて、最も近い偶数に丸められる場合と、
常に切り上げまたは切り下げられる場合、
あるいは常にゼロ方向に丸められる場合がある。
特定の丸め方法を必要とする場合は、この関数ではなく、
TRUNCATE() や FLOOR() などの明確に定義された関数を使用するようにする。
0624軟式PHP
04/08/19 15:13ID:???あと俺はcase処理を1行で書くのは嫌いだな。
619のようなやつだったら配列処理でいいし。
0625620
04/08/19 15:15ID:HVGJn52bなんか>>621の文言が言い訳にしか聞こえない(^^;
で、結局「四捨五入」する方法ってどれなの?
TRUNCATE() や FLOOR() ってどう工夫すると期待した結果が得られるの?
0626nobodyさん
04/08/19 15:20ID:???0627nobodyさん
04/08/19 15:20ID:???私も書き方は気に入らないが個人の好みもあるし
最初はあんなものでしょ
>>625
てかMySQLにいけ
オマケにマニュアル読め
0628nobodyさん
04/08/19 15:32ID:???"四捨五入 銀行型"辺りでぐぐれ
明確にされてないのが気に食わないのかもしれないが、
そのround実装は普通(の範疇)だ
0629Imo ◆.jC7ANgFY.
04/08/19 16:12ID:???私はマニュアルをコピペしただけですが?
0.5引いて切捨てしろってことだろ
FLOOR(`num` - 0.5)
0630nobodyさん
04/08/19 16:14ID:h2ZrLQAF教えて頂きたいのですが、
アドレスで
123/456/
の時は最後の「/」を削除して
123/456
の時は何もしない
最終的にどちらも123/456
となるようにしたいのですが、
何か方法ないでしょうか?
よろしくお願いします。
0631Imo ◆.jC7ANgFY.
04/08/19 16:17ID:???最後が「/」の時は最後の「/」を削除して
ほかのときは何もしない。
をそのままプログラムにすればいいじゃない。
0633nobodyさん
04/08/19 16:37ID:???ども〜
マニュアルみてきました!
$trimmed = rtrim($text," \t.");
ってのがのっててそれで目的が達成できそうです。
欲しい関数はなんでもありますねw
ありがとうございました!
0634nobodyさん
04/08/19 16:43ID:???630ではないが、rtrimってこういう使い方もあったのか・・・知らなかった
「/」が可能という事は全ての文字で利用出来るという事ですね
0635nobodyさん
04/08/19 16:45ID:???rtrim()は以下の文字を削除します。」と書いてあるが空白文字以外でも利用出来るなら
そう書いてくれよ
0637nobodyさん
04/08/19 17:24ID:???ttp://www.beginnersphp.co.uk/digitalclock.php
を参考にしたのですがファイルのCRC4の取得方法がわかりません。
途中に出てくる ^ 排他的論理和(Xor?)がワケワカラン…
$file = "./data/a.png";
$size = filesize($file);
$fp = fopen($file, rb);
$da = fread($fp,$size);
fclose($fp);
echo crc4($da);
function crc4($a){
〜〜〜〜〜〜〜〜〜〜〜〜〜
処理
〜〜〜〜〜〜〜〜〜〜〜〜〜
return $crc_data;
}
こんな感じにしたいのです。
0638nobodyさん
04/08/19 17:39ID:???0639nobodyさん
04/08/19 17:58ID:???string rtrim ( string str [, string charlist])
[]はオプション。お前オプション注意して見たことないだろ?
phpの関数には至る所にオプションがある
0640nobodyさん
04/08/19 18:22ID:???<tr>
__<td class="">
____<a href="http://hogepage.com/sample.php">サンプル</a>
__</td>
__<td class="">
____2004/08/19 00:00
__</td>
</tr>
以上の文字列から、パターン %<a href=\"(.+?)\">(.+?)</a>(.+?)</tr>% で
リンク部分を抽出して、さらに3番目にマッチした部分から、
パターン ([0-9]+/[0-9]+/[0-9]+ [0-9]+:[0-9]+:[0-9][0-9]) で時刻を
抜き出していますが、最初のパターンで、更新時刻もきれいに取得したいのです
もう少しコンパクトにすることはできないでしょうか?
どうぞよろしくお願いします。
0641nobodyさん
04/08/19 18:34ID:???こんな感じか?
preg_match_all('%<tr>(?:.*?)<a href="(.+?)">(.+?)</a>(?:.*?)(\d\d\d\d/\d\d/\d\d \d\d:\d\d)(?:.*?)</tr>%s', $html, $m);
print_r($m);
0642620
04/08/19 18:54ID:HVGJn52b>>629
いや、知ってる、そのマニュアルの文言が言い訳っぽいって事
>>628
せめて一貫性を保ってほしいよな
select round(166.5); が166なのに
select round(167.5); が168になるのはどうかと・・・
そんな中途半端な関数最初から作るなって感じだな
というわけで、MySQLスレ逝ってくるわ
0644nobodyさん
04/08/19 19:00ID:???echo "COOKIE";
}
この処理をディレクトリ変えたらできなくなるのですがなぜでしょうか?
よろしくおねがいします
0646nobodyさん
04/08/19 19:06ID:???"四捨五入 銀行型"でぐぐったのか?
0.5を偶数になるように繰り上げたり切り捨てたりするのさ
167.5 -> 168
166.5 -> 166
165.3 -> 165
0647nobodyさん
04/08/19 19:07ID:???> ディレクトリ変えたら
意味わかんね
0648644
04/08/19 19:10ID:???<?php
if(isset($_COOKIE['ck'])){
echo "COOKIE";
}
?>
このファイルがa.phpで、hogeというディレクトリに入っていて、a.phpを実行するとCOOKIEと表示されます。
で、a.phpをhoge2というディレクトリに入れると、COOKIEと表示されないのです。
0649628
04/08/19 19:16ID:???世の中には「偶数側に丸める(round(166.5)→166, round(167.5)→168)」
という丸め方法があって「銀行型の四捨五入」と呼ばれています
それに一貫性がないってのは……、銀行に文句を言ってみてくださいね(苦笑
0651nobodyさん
04/08/19 19:28ID:???echo "COOKIE";
}
これって間違ってますか_?
なぜディレクトリ変えただけでクッキーの値取れないのだろう(汗
0652620
04/08/19 19:32ID:???とりあえず銀行に文句言ってくるわ
0655nobodyさん
04/08/19 19:38ID:???0656nobodyさん
04/08/19 19:43ID:???0657530
04/08/19 19:47ID:???エンコード後にタグ変える必要も出て来そうですし。
助言して下さった方々、ありがとうございました。
>>537
ちゃんとした物が出来たら何処かに放り投げておきます。
何処に投げれば良いかな?
使う人なんて居なさそうですけど。 ^ ^
0658nobodyさん
04/08/19 19:49ID:???Cookieのpath設定してる?
0659軟式PHP
04/08/19 19:49ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | >>655
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0660nobodyさん
04/08/19 20:15ID:???pathは"/"としていますが、間違ってますかね?
0661nobodyさん
04/08/19 20:21ID:???鯖を変える前まではできていたんだが
鯖を変えたらできなくなったぽ(´・ω・`)ショボーン
ちなみにどちらもPHP対応です、何が違うんでしょうか?
0662nobodyさん
04/08/19 20:38ID:???鯖が違う
0663軟式PHP
04/08/19 20:43ID:???\(⌒-⌒)
(・(ェ,,)・ ) < そんなエサで俺様がクマー!!
`つ `つ (´⌒(´
ゝ_つ_`つ≡≡≡(´⌒;;;≡≡≡
(´⌒(´⌒;;
ズザザザ
どこまで行クマ?
\  ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ (´´
\(⌒-⌒) o (´⌒(´
(・(ェ,,)・ )つ⌒`つ≡≡≡(´⌒;;;≡≡≡
 ̄ ̄ (´⌒(´⌒;;
ズザーーーーーッ
0664nobodyさん
04/08/19 21:15ID:JfzAv2MEどのようなものにしていますか?
私はタブにしているのですが、ネットでは<>が圧倒的に多いので
その利点なども教えていただけると幸いです。
0665nobodyさん
04/08/19 21:22ID:???タブでいいよ。<>は本文にないとも言い切れないし
0666nobodyさん
04/08/19 21:25ID:???ログファイル開いた時も見やすいし。
0667nobodyさん
04/08/19 21:31ID:???0668nobodyさん
04/08/19 21:31ID:???FATAL: emalloc(): Unable to allocate エラーが出ます
file_get_contents()でも使って変数に読み込むしかないのかな
タブか…良いことを聞いた。φ(.. )メモメモ
0670nobodyさん
04/08/19 21:47ID:???fopenごときでそんなエラーが出るはずは無いんだが・・・。
・根本的な対処
スクリプトのメモリを無駄に使っている部分を直す。
(ファイルの中身を一気に変数に入れてたのを一定サイズに抑えるとか)
・刹那的な対処
PHPやWebサーバのメモリ関係の制限を緩和する。
(当然他の部分に皺寄せが行くので刹那的)
0672671
04/08/19 22:11ID:???他のところでミスってました。
1GBも読み込もうとしてたorz
お手数をおかけしました。
0673nobodyさん
04/08/19 22:13ID:???0674nobodyさん
04/08/19 22:18ID:???\t
0675nobodyさん
04/08/19 22:19ID:???0676nobodyさん
04/08/19 22:22ID:???0677nobodyさん
04/08/20 01:15ID:???0680nobodyさん
04/08/20 05:40ID:???標準入力から読み込む方法と、標準エラー出力にだす方法がわかりません。
マニュアルのどこに書いてありますか?
0681nobodyさん
04/08/20 06:02ID:???0682nobodyさん
04/08/20 06:25ID:???WebPage記述用スクリプトとして生まれてきた性なんだろうな。
0683nobodyさん
04/08/20 06:34ID:???UNIXを知らない奴はプログラム作っちゃだめだな
0684nobodyさん
04/08/20 07:15ID:???マニュアルのどこに書いてあるのか分からなかったので質問しました。
Windows用のマニュアル(*.chm)を使ってるのですが、キーワードにないし、
検索しても見つかりません。
件枠キーワード: standard output, stdin, stdout, ...
なお英語版のマニュアル使ってます。
0686軟式PHP
04/08/20 09:04ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | >>683
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0687nobodyさん
04/08/20 13:24ID:???0688nobodyさん
04/08/20 15:13ID:???まとめて全てを<?php ?>で囲っちゃった方が負荷が少なかったりします?
大した差は無いかな。。
0690nobodyさん
04/08/20 16:03ID:???0691nobodyさん
04/08/20 16:11ID:???100 / 1.05を計算すと95.238095238095になるのですが、
小数点第何位までと決めることはできますか?
また、やり方もご教授お願いします。
0692691
04/08/20 16:12ID:ttg46q2U0694nobodyさん
04/08/20 16:15ID:???配列に入っている数値を1バイトずつファイルに書き出したいのですが
どうやってもテキストで出力されてしまいます。。。orz
0696Imo ◆.jC7ANgFY.
04/08/20 16:22ID:???初心者にはchr関数ですべてループさせることをすすめる。
すっきりやりたければこんなことしてもできる。
call_user_func_array('pack', array_merge(array('c*'), $list));
0700691
04/08/20 16:50ID:???なるほど、そういう書き方もありましたか。
$motone=$_POST["money"] / 1.05;
$motone=round($motone , 0); //round関数で$motoneの値を整数にする
と書いていました。
0701nobodyさん
04/08/20 16:54ID:???$a=round(100/1.05*100)/100;
ってのも覚えたんだけど、
例えば、
function a(){
$zz = 1234;
}
function b(){
echo = $zz;
}
としてもecho = $zz;は表示されないのだけど、
これを$zz = 1234;の値を他のfunctionで使い回す事ってどうやればいいんでしょうか?
今は全部のfunctionで$zz = 1234; を書いてます・・・
よろしければ教えていただきたいのですが。
0702Imo ◆.jC7ANgFY.
04/08/20 16:57ID:???function a(){
global $zz;
$zz = 1234;
}
function b(){
global $zz
echo $zz;
}
0703Imo ◆.jC7ANgFY.
04/08/20 16:58ID:???b関数内のglobalのセミコロン抜けた。
というわけで報告ついでに別な方法も。
function a(){
define('ZZ', 1234);
}
function b(){
echo ZZ;
}
■ このスレッドは過去ログ倉庫に格納されています