トップページ⇒php
1001コメント312KB

【PHP】質問スレッドpart19【php】

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん04/07/16 07:12ID:KvHeypq/
・PHP全般の質問スレです。
・新規質問の方は上げてください。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


抜けているものがあったら補足願います
0875nobodyさん04/08/05 09:06ID:???
while ($A != 0 and $B != 0)
0876軟式PHP04/08/05 09:07ID:???
>>874
他スレでの名前になってた。・゚・(ノ∀`)・゚・。
0877nobodyさん04/08/05 09:10ID:???
クッキーにa'b"cという文字を保存してそれを出力するとa\\\\\\\'b\\\\ってなってしまうのですが
どうしたらいいでしょうか?
0878nobodyさん04/08/05 09:14ID:???
$data = file($gdata);
$count = count($data);
$fp = fopen($gdata,"w");
flock ($fp,LOCK_EX);
for ($x;$x<=$count;$x++){
list ($idx,$passx,$lvx,$expx,$chax,$winx,$losex,$hpx,$atcx,$defx,$masx,$dexx) = split( ",", $data[$x]);
if ($x == $i2){
$expx = $expr;
$winx = $winr;
$losex = $loser;
fputs($fp, $data[$x]);

}elseif($x==$i3){
$expx = $exprr;
$winx = $winrr;
$losex = $loserr;
fputs($fp, $data[$x]);
}else{
fputs($fp, $data[$x]);
}
fclose ($fp);
}

データが消えてしまう・・・
何がおかしいんだろうか・・・
0879軟式PHP04/08/05 09:14ID:???
magic_quotes_gpcをOFFにしてみれ。
0880軟式PHP04/08/05 09:19ID:???
とりあえず添削を。
for ($x;$x<=$count;$x++)
$x=0ぐらいしる。

で、データが消えてしまうってどういう意味で言ってるのか分からないけど
fopen($gdata,"a")でやってみれ。
0881軟式PHP04/08/05 09:22ID:???
あとsplit(",",rtrim($data[$x]));も試してみちょくれ。
0882nobodyさん04/08/05 09:49ID:???
クッキーに保存されたa"b'cを抽出して出力するとa\\\\ になってしまうのはなじぇ?
0883軟式PHP04/08/05 09:56ID:???
>>882
エスケープされるから( ´−`)
0884nobodyさん04/08/05 09:59ID:???
どうやったらうまく出力できるでしょうか?
0885nobodyさん04/08/05 10:15ID:???
magic_quotes_gpcをoffにすることは できません。
で、stripslashesを使ってもうまくいきません。。。
0886nobodyさん04/08/05 10:21ID:???
>>862
懐かしいよ・・
0887nobodyさん04/08/05 10:23ID:???
>>886 >>862
学校の先生が言ってた
0888軟式PHP04/08/05 10:26ID:???
>>885
\だけ消したいならreplace使って消すといいよ。
0889nobodyさん04/08/05 10:35ID:???
>>885
>>magic_quotes_gpcをoffにすることは できません。
他の処理で使うからかな?それともoffにしたくてもphp.iniをいじれないからかな?

後者なら.htaccessで
php_flag magic_quotes_gpc Off
これも.htaccessが使用可能だければだけど
0890nobodyさん04/08/05 10:38ID:???
はい。クッキーにはa'b"cが保存されていて
$a = str_replace("\\","",$a);とやってみましたが
表示される文字はa'b になってしまう。。だぶるくおーてーしょん以降が表示されないのです。。
0891nobodyさん04/08/05 10:49ID:???
除去してもいいんじゃない?
$a = str_replace("\"", "", $a);
0892nobodyさん04/08/05 10:52ID:???
( ´゚д゚`)えーーー
除去でいいの?
なんか不安なんだけど
クッキーの文字自体に\があった場合はどうするのよ
0893nobodyさん04/08/05 11:03ID:???
ちなみにみなさんはフォームからの入力データをクッキーに保存させるときってどうしてますか?
0894nobodyさん04/08/05 11:10ID:???
俺は全てDB任せですが
0895nobodyさん04/08/05 11:13ID:???
>>894
クッキーもDBにお任せですか?
0896nobodyさん04/08/05 11:14ID:???
>>895
クッキーには最低限の情報を与えます
例えばID
あとはクッキーからIDを読み取り、そのIDの情報をDBから取り出します
0897nobodyさん04/08/05 11:15ID:???
ID変えたら終わりだろ
0898nobodyさん04/08/05 11:18ID:???
>>896
ホームラン級のバカだな
0899nobodyさん04/08/05 11:18ID:???
>>893
大事な情報なら自作暗号化アルゴリズムで暗号化します
0900nobodyさん04/08/05 11:19ID:???
>>896
コスモを感じる
0901nobodyさん04/08/05 11:24ID:???
あとは空気から雰囲気を読み取り、その雰囲気の情報を経験から取り出します
0902nobodyさん04/08/05 11:25ID:???
COOKIE嫌いなん?(俺も嫌いだが…)
PHP3か?
4ならSESSIONでも良いじゃないか。
0903nobodyさん04/08/05 11:37ID:???
俺もクッキーは大嫌いだね。
セッションが一番いい。
まぁセッションもクッキー使ってるわけだけど
0904nobodyさん04/08/05 12:27ID:???
何で嫌いなん?の何が嫌いなん?
090588204/08/05 12:38ID:???
どうやっても無理でしたので896さんの方法でやることにします。
結果は同じなのでま、いいか
0906nobodyさん04/08/05 12:43ID:???
>>892
urlencodeでも汁
0907nobodyさん04/08/05 12:45ID:???
>>905
これでどう?
if (get_magic_quotes_gpc()) {
$a = stripslashes($a);
}
0908nobodyさん04/08/05 12:48ID:???
>>878
}
fclose ($fp);
}
  ↓
}
}
fclose ($fp);
0909nobodyさん04/08/05 12:54ID:???
>>905
"を&quot;に変換する。
0910nobodyさん04/08/05 12:55ID:???
>>907無理です。。
\\\がついてくる

ちなみにIDだけ保存してDBから取り出すと
cryptされたパスワードが抽出されてしまってだめでした。。
0911nobodyさん04/08/05 13:08ID:???
>>910
907のstripslashesってまんまその為のものなんだが・・
ttp://jp.php.net/manual/ja/function.stripslashes.php

クォート取り除いた変数名と、クッキーに書き込んでる変数名が違うなんてことはないよね?
0912nobodyさん04/08/05 13:27ID:dWrkED0y
PHP4で処理の途中で何秒間か止めたりする方法って
ありませんでしょうか?
0913nobodyさん04/08/05 13:27ID:???
クッキーに保存されてる変数$aのデータはクオート取り除いたデータです
クッキーにはa%27b%26quot%3Bcと保存されていますので。。
で、$aをクッキーから抽出して表示するとa\\\'bと。。こうなってしまうのです
0914nobodyさん04/08/05 13:32ID:???
>>912
寝ろ
0915nobodyさん04/08/05 13:33ID:???
>>912
すりーぷ
0916nobodyさん04/08/05 13:35ID:???
そういえば
眠れない時に羊を数えるのってsheepがsleepに似てるからなんだよ
0917nobodyさん04/08/05 13:45ID:UeFJsakm
>>904
クッキー使えなくしているクライアントが結構いる。
クッキーからIEの穴つつけたりした。
091891204/08/05 14:04ID:dWrkED0y
>>914 >>915
ありがとうございました。
0919nobodyさん04/08/05 14:07ID:???
>>913
Windowsで動かしてます?
Shift-JISなら入力データをEUC-JPに変換、クォートしたらクッキーに書き込み、
クッキーから抽出したらShift-JISに戻して表示でどうです?
$a = mb_convert_encoding($a, "EUC", "SJIS");
0920nobodyさん04/08/05 14:51ID:???
自分自身のファイル名(index.phpなど)を取得できる関数ってありますか?
0921nobodyさん04/08/05 14:59ID:???
>>920
var_dump($_SERVER);
0922nobodyさん04/08/05 15:04ID:???
>>920
__FILE__
0923nobodyさん04/08/05 15:06ID:???
>>921-922
どうもです
0924nobodyさん04/08/05 15:12ID:???
>>916
へぇ〜 へぇ〜 へぇ〜 
3へぇ〜 
0925nobodyさん04/08/05 15:17ID:???
Unsupported operand types なんですが以下の変更で起きました (T-T)

$list1、$list2 ともに配列です。

$all = array_merge($list1, $list2);
  ↓
$all = $itemList1 + $itemList2;

なにが原因と考えられるでしょうか?
0926nobodyさん04/08/05 15:20ID:???
>>916
今日の一番にします。
092792504/08/05 15:36ID:???
自己解決

$list1 or $list2 が array の 他に undef の場合があった。

array_merge()は undef でもマージできるけど
+ だと 型違いでマージできず。
0928nobodyさん04/08/05 19:28ID:???
セッションってやたら便利だけど
キャッシュが効かないのが嫌。仕方ない?
0929nobodyさん04/08/05 20:01ID:???
>>928
そんなおまいのためにsession_cache_limiterですよ
0930nobodyさん04/08/05 20:09ID:???
>>928
>>929
0931nobodyさん04/08/05 20:34ID:4UXeuveB
質問です。

今、ラジオボタンでの入力を取り出すプログラムを書いてるんですが、
name属性が可変の場合、取り出す時にどうやって指定すればいいのでしょう?

具体的には下のようなソース。
<input type="radio" name="<?php echo $groupCode ?>" value="rw" >
<input type="radio" name="<?php echo $groupCode ?>" value="r" >
<input type="radio" name="<?php echo $groupCode ?>" value="n" >

↑で取り込んだやつを、
if( $groupCode == "rw" ){
   $readStatus = "T";
   $writeStatus = "t";
}

のような感じで取り出したいのですが、
if文の中が、文字列の比較になってしまって、
どうしても取り出せないんです。

どなたかアクロバットなやり方を知りませんか?


0932nobodyさん04/08/05 20:47ID:???
こんな感じでどうですか

<input type="radio" name="groupCode" value="rw"<?php if ($groupCode== "rw") { print " checked"; };?>>
<input type="radio" name="groupCode" value="r"<?php if ($groupCode== "r") { print " checked"; };?>>
<input type="radio" name="groupCode" value="n"<?php if ($groupCode== "n") { print " checked"; };?>>

if( $groupCode == "rw" ){
   $readStatus = "T";
   $writeStatus = "t";
}
0933nobodyさん04/08/05 20:58ID:???
あ、すまぬ可変って内容でしたね・・ちょっと寝ぼけてまつ
hiddenで別に渡せないかなぁ?
0934nobodyさん04/08/05 21:09ID:???
・・・hiddenでも出来ないかな、これでどうかな?

if( ${$groupCode} == "rw" ){
   $readStatus = "T";
   $writeStatus = "t";
}

何度も書き込んですまぬ、そろそろ寝よう・・
093593204/08/05 21:20ID:???
>>934
無理ですー。

うーむ、全面的につくり変えないとあかんのかな・・・
0936nobodyさん04/08/05 21:21ID:???
$groupCode = "rw";
$data = "groupCode";
echo $$data; //rw
093793204/08/05 21:32ID:???
>>936
できましたー、こんな単純なことでいいんですねー。
まじで、ありがとうございます。

0938nobodyさん04/08/05 21:34ID:???
$groupCode = "A00";
$A00 = "rw";
echo $$groupCode; //rw
実は逆だった…
0939nobodyさん04/08/05 22:24ID:???
なんども、出ている質問かもしれませんけど、
PHP version4.2.xで動いていたソースが4.3.xで動かなく
なる場合はどうすればいいんですか?
0940nobodyさん04/08/05 22:33ID:???
>>939
ソースを書き換えるか4.2.xで永遠に動かし続ける。
0941nobodyさん04/08/05 22:36ID:???
どう書き換えればいいですか?
0942nobodyさん04/08/05 22:40ID:???
動かなくなったところの関数等をgoogleとかで調べて書き換えればいいと思うよ。
0943nobodyさん04/08/05 22:40ID:???
俺っちには説明できない内容と量だからhttp://www.php.gr.jp/
でRelease Announcementの和訳でも見てくれ。

もしくは説明できる人説明よろろ
0944nobodyさん04/08/05 23:07ID:???

  い  夏
  ん  厨
  じ  い
  ゃ  っ
  ん  ぱ
     い
0945nobodyさん04/08/05 23:18ID:sAzaKBea
NTT代理店がメアド晒し・スパムのマニュアル・社内掲示板・会議予約を一般公開!(社外秘丸見え)
しかも出会い系やアダルトグッズの販売も。今日行われたちんぽ会議の謎とは・・・

【突撃】広告部隊作業マニュアル公開中5【OFF】
http://ex7.2ch.net/test/read.cgi/news4vip/1091710263

まとめサイト
ttp://www.geocities.jp/syupam_chinpou/index.html
0946nobodyさん04/08/05 23:20ID:???
ファイルのアップロードのやり方がわかりません。
<form enctype="multipart/form-data" action="_URL_" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000000">ファイル<input name="userfile" type="file">
</form>
としたのですが、どこにうpするか決められるのですか?
(送信ボタンは別にあるものとして・・・)
0947nobodyさん04/08/05 23:22ID:???
>>946
マニュアルの目立つ所に書いてあるだろ。
094894604/08/05 23:23ID:???
すまん、マニュアル読んでわかんなかったから
ここで聞いたんだが・・・もう一度見てくるぽ
0949nobodyさん04/08/05 23:28ID:???
ttp://jp.php.net/manual/ja/features.file-upload.php
内容を理解できなかったって言うならやばいぞ。
0950nobodyさん04/08/05 23:29ID:???
$_FILES['userfile']['name'];
の使い方が理解できんのよ・・・
0951nobodyさん04/08/05 23:33ID:???
$_FILES['userfile']['name']はアップロードしたファイルの名前だ。
サンプルを見て試して手加えて身体で覚えろ。
マヌアル10回声を出して読んで来い。
0952nobodyさん04/08/05 23:37ID:???
>>946
アップロードされる場所の話ならむしろこっちかな。
http://jp.php.net/manual/ja/ini.sect.file_uploads.php

>>950
理解できないなら使わなければいいじゃない。
つーかクライアント側の元ファイル名なんて使いたいとも思わないな。
どんな文字入ってるか分からんし。
095394604/08/05 23:53ID:???
Warning: move_uploaded_file(***): failed to open stream: Permission denied in /usr/home/free/home/phpworld/public_html/pu/upload.php on line 8
Warning: move_uploaded_file(): Unable to move '/var/tmp/phpxgdg4W' to '***' in /usr/home/free/home/phpworld/public_html/pu/upload.php on line 8
0954nobodyさん04/08/05 23:55ID:???
>>953
で、訳してみたらどういう意味だった?
0955nobodyさん04/08/06 01:31ID:ZX7YO8MK
おれもあぷろだ作ったけど、普通は何度も実験して覚えるもんだがなぁ
結果だけ急いでると勉強にならんよ
0956nobodyさん04/08/06 02:56ID:OcQEeCf3
上げての質問お許しを。

phpプログラムを複数改造しましたが古い方のものと
同じフォルダに入れてしまいました。
タイムスタンプもほぼ同じで区別がつきません。
そこで、例えばa.phpとa'.phpを比べて内容を比べる良い方法はありませんか?
比較する中で違う部分を反転表示させると言った便利な技はないでしょうか?
たくさんあるので途方に暮れています。
0957nobodyさん04/08/06 03:05ID:???
スレ違い、というか板違い。
0958nobodyさん04/08/06 03:20ID:???
>>956
diff
0959nobodyさん04/08/06 08:11ID:???
を。そろそろ次スレの季節じゃ・・?
>>956
OS書いてないってことは、PHPを使って比較したいってことか?
http://www.vector.co.jp/vpack/filearea/win95/util/text/diff/index.html
0960nobodyさん04/08/06 08:32ID:Herwsld0
皆さん、はじめまして。
最近、PHPを学習してる者ですが正規表現の所でつまづいて困っています。
半角英文字3文字と5桁の数字を組み合わせたものを
if文判定で否定したいのですが
  
if(eregi("^[^(abc[0-9]{5}])",$hoge))
{
処理A
}
else
{
処理B
}
でやってもうまくいきません。どなたか分かる方ご教授ください。
よろしくお願いします。
0961nobodyさん04/08/06 08:33ID:???
diff
0962nobodyさん04/08/06 08:36ID:???
>半角英文字3文字と5桁の数字
ここが分からない。
つまり合計8文字になるってことか?
なら
if ( eregi("(^[a-zA-Z0-9]{8}$)",$hoge) && eregi("(^[a-zA-Z]{3}$)",$hoge) )
096396204/08/06 08:38ID:???
eregに訂正してちょ
0964軟式PHP04/08/06 09:07ID:???
なぜいまだにeregを使うのか俺には理解できぬ。
096596004/08/06 09:13ID:Herwsld0
>>962
すいません。説明不足でした。
最初の英数3文字abcは固定で、続く数字5桁は変動ありにしたいのです。
abc11111,abc22222,abc12345とこんな感じならOKという感じです。
総文字数は>>962さんの言うとおり8文字です。
これを否定したいので
もし入力データが上記のようだったら処理B,上記の形式を取ってなかったら
処理Aというような感じにしたいのです。
拙い説明で本当に申し訳ないのですが、どうかよろしくお願いします。


0966nobodyさん04/08/06 09:22ID:???
PHP超初心者で<(__)>ペコリ
http://pc5.2ch.net/test/read.cgi/tech/1057324268/75
0967nobodyさん04/08/06 09:27ID:???
if(!ereg("^[abc]{3}[0-9]{5}$",$hoge)){
echo "A";
}else{
echo "B";
}
0968軟式PHP04/08/06 09:27ID:???
>>965
while(;;)
{
if( preg_match("/(^[a-zA-Z0-9]*$)/",$hoge,$match) )
{
print $match[0];
}
}
096996004/08/06 09:49ID:Herwsld0
皆さん。出来ました。
本当に有難うございました。
0970nobodyさん04/08/06 10:25ID:???
>596
そういうツールを PHP で書いてみたら?
それなりのものができたらお手本として diff の
ソースを見てみるといい。
0971nobodyさん04/08/06 12:01ID:???
Spreadsheet_Excel_Writer
ttp://pear.php.net/manual/en/package.fileformats.spreadsheet-excel-writer.php
で数値に色をつけたり大きさを変えたり sum() は使えるようになりました。
ところでグラフを描く方法はないのでしょうか?
# jpGraph なら画像で作れますが、Excel で作りたいのです。
097297004/08/06 13:00ID:???
ごめんよう。レス番まきがえた。

>596 でなくて >956 ですた。
0973nobodyさん04/08/06 13:11ID:???
>>956
0974nobodyさん04/08/06 13:41ID:sHfe9a+G
./img/xxx/zzz/123.jpg

と言うファイルがあってそれをGDで自動でサムネイルを作っているのですが。
サムネイル作成時に、./img/xxx/zzz/のパーミッションを777に変えないと
サムネイルが作成出来ないですが、
この./img/xxx/zzz/を自動で777に変えたいのですが、
何か方法はないでしょうか?
explodeを使って切り出しして後でそれぞれのディレクトリー名を繋げればいいのですが、
./img/xxx/zzz/ は毎回フォルダー名が変わるので
./img/xxx/zzz/123.jpgだと最後の「/」部分で前と後ろを分解する方法はないでしょうか?
よろしくお願いします。


0975軟式PHP04/08/06 13:46ID:???
chmodで変える。basename,dirname使う。おけ?
レス数が950を超えています。1000を超えると書き込みができなくなります。