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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/11/27(日) 00:07:12ID:eBvjdczp
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0304nobodyさん2005/12/07(水) 22:17:29ID:???
嫌です
0305nobodyさん2005/12/07(水) 22:32:52ID:???
ソースを丸写しとか勉強にもならないしショウモナイネ。
糞のやることだ。
0306nobodyさん2005/12/07(水) 22:36:22ID:???
>>300
メールメッセージヘッダのFrom:フィールドに書く。

0307nobodyさん2005/12/07(水) 23:33:28ID:jWNRrWnp
クラスにあるメンバ変数をJavaとかC++みたいに直接出力することってできないの?

class Human {
 var $name;

 function getName() {
  echo $this->name;
 }
}

$human = new Human;
$human->$name = "名無しさん";

// これはだめ
echo $human->$name;

//これはOK
echo $human->getName();

みたいな感じでメソッドを通してのみやり取り可能なのかな?直接代入はできて参照はできないってなんか変な感じなのですが直接参照する方法とかあるんでしょうか?
0308nobodyさん2005/12/07(水) 23:45:14ID:???
マニュアル読め
0309nobodyさん2005/12/07(水) 23:45:29ID:???
class Human {
 var $name;
^^^^^ここを publicにすれば
echo $human->name;
このようにアクセスできますよ!
0310nobodyさん2005/12/07(水) 23:46:03ID:???
varはpublicと同義だつーのに
0311nobodyさん2005/12/07(水) 23:49:02ID:???
>>307
いや、$human->name;の$が余分なんでしょ

>>280
268のどこがそのままじゃ動かない?
0312nobodyさん2005/12/07(水) 23:56:30ID:???
別に余計なわけじゃない。

$name = "name";
echo $uma->$name;
0313nobodyさん2005/12/07(水) 23:58:21ID:???
くだスレでやれよ
03143072005/12/08(木) 00:08:25ID:???
php5へ上げたら直りました。php4で使うもんじゃないですね(-д-)
0315nobodyさん2005/12/08(木) 00:41:46ID:???
>>314
きみはじつにばかだな。
0316nobodyさん2005/12/08(木) 02:21:19ID:???
これがPHPクオリティ
0317nobodyさん2005/12/08(木) 02:52:53ID:???
$a = array('aaa', 'bbb', 'ccc', 'nullpo', 'ddd');

という配列の中に
ある要素が含まれているか判定したいのですが
foreachなどを使わずにスマートに行う方法はないでしょうか。

'bbb' => true
'gaxtu' => false

みたいな感じになればいいです。
0318nobodyさん2005/12/08(木) 02:53:34ID:???
マニュアルに書いてある
0319nobodyさん2005/12/08(木) 03:04:03ID:???
>>317 さんへ

実は私もその問題で以前悩んだことがあります。
googleで検索してもMLに投げてもぜんぜんわかりませんでした。
そこで友人のハカーに相談したところ殆どの方がご存じ無いような
のですがphpの裏マニュアルが存在するということがわかりました。
特別にお教えしますが、絶対に人には教えないで下さいね。

http://jp.php.net/manual/ja/function.in-array.php
0320nobodyさん2005/12/08(木) 03:12:55ID:???
すげー感動しました!!
絶対に誰にも教えません
0321nobodyさん2005/12/08(木) 05:45:08ID:???
print "<a href=\'"$script_php."?view=".$i."\'">a</a>\n";

この描き方でT_VARIABLEエラーが出るのですがどう直したらいいですか?
やってるうちにわけわからなくなりました。。
0322nobodyさん2005/12/08(木) 06:35:24ID:???
>>321
まずはPHPEclipseでも何でもいいから
色分けしてコード強調表示してくれるエディタを使うようにしてみな。
そうすればお前にも分かる。
0323nobodyさん2005/12/08(木) 06:38:29ID:???
>>321

print "<a href='$script_php?view=$i'>a</a>\n";
0324nobodyさん2005/12/08(木) 07:15:03ID:???
>>322
>>323
解決しました。助かりました。ありがとうございます。
0325nobodyさん2005/12/08(木) 10:30:12ID:???
>>317
array_serch,in_arrayかな

質問なのですがa.txtに
a,k,h,u,g
b,k,x,p,t
j,w,t,a,j



とある場合一行ずつ読み込んでtest[]として配列にするとしますよね。
その後list()とexpload()で、,で分割して変数にしようと思うんですがlistの中って配列でもokですか?
test2[0] => a
test2[1] => k



と出来るかという事です。
後、もし出来るならa.txtをもとに表を作りたいのですが
$filename = "a.txt";
$test2 = array();
$test = file($filename);
for($i=0;$i<$count($fp);$i++){
list($test2)=expload(",",$test[$i]);

foreach($test2 as $value);
echo $value;
}
こんな感じで出来るのでしょうか?でもこの場合二行目のxを表示させたい場合って、
どうやって配列を指定するんでしょう?
$test[1,test[2]]とかorz(適当でごめんなさい)
032622005/12/08(木) 10:33:02ID:???
後BASIC認証でlist()を使って、$idと$pwを作った場合、
この$id,$pwは認証した画面では変数として使えるようですが、他のページで使うには$_SESSIONを使うといけますか?

session_start();
$_SESSION['id'] = $id;
$_SESSION['pw'] = $_SESSION['pw'] = $pw;

で、$id="aiueo" $pw="aaa"で認証した場合は、SESSION指定後、他のページでは
$_SESSION['id'] = "aiueo"
$_SESSION['pw'] = "aaa"

$id="kaki" $pw="bbb"で認証した場合は、SESSION指定後、他のページでは
$_SESSION['id'] = "kaki"
$_SESSION['pw'] = "bbb"

となるのでしょうか?
質問ばかりで申し訳ないですが、授業中気になってしまいまして、どうぞご教授お願い致します。
0327nobodyさん2005/12/08(木) 10:34:25ID:???
>>296
誰か知らない?
0328nobodyさん2005/12/08(木) 10:41:10ID:???
頼む態度を知らん香具師が
0329nobodyさん2005/12/08(木) 10:49:59ID:???
>>325
>>4の7

>>326
$_SESSIONには$idだけ入れとけば認証済みかどうか確認できるんじゃない。

>>327
知らない。自分で作るっていう選択肢はなしなの?
0330nobodyさん2005/12/08(木) 11:58:34ID:???
>>329
即レスありがとうございます。
なるほど、配列の配列はあのように記述するのですね、勉強になりました。

$_SESSIONですが、a.txtを元に表を作り、room1,room2…と待合室のようにしたいのです。
それぞれの部屋に現在入っている人を表示し、入室ボタンをつけ、入室するとその部屋に自分の名前が表示されるというものです。
入室の際、配列に
$_SESSION['id']を追加しようと思うのですが、これだと配列の中身が$_SESSION['id']ばかりになってしまい、上手く認証された人の名前が表示されるのかと心配だったのです。
きちんと、aさん、bさんが入室した場合、
test2[0] = a
test2[1] = b
となるのでしょうか?

またもや質問になってしまいましたが、何卒よろしくお願い致します。
0331nobodyさん2005/12/08(木) 12:14:11ID:???
>>330
$_SESSION['id'][0]
ってすればいいじゃん。
0332nobodyさん2005/12/08(木) 12:17:31ID:???
>>330
aだのtestだの変数名とやりたいことの対応がわかりづらい。変数名つけなおしてくれ。
とりあえず待合室ってやつに誰が入ってるかって情報は別口にファイルとかに保存しとかないと復元できないけど。
$_SESSIONにはそのときにアクセスしているユーザーの情報しか含まれないよ。
0333nobodyさん2005/12/08(木) 12:36:30ID:???
php4.4.2っていつ頃出るの?
0334nobodyさん2005/12/08(木) 12:43:04ID:???
レン鯖がPHP5に上げてくれるみたいだからPHP4はもうイラネ
0335nobodyさん2005/12/08(木) 13:06:23ID:???
どこの鯖が?
0336nobodyさん2005/12/08(木) 13:16:30ID:???
>>331,332

レスありがとうございます。
確かに、例など分かり辛いですよねorzすみません
一度、記述して、出直して参ります。

もし、その時お時間あるようでしたら、よろしくお願い致します。
0337nobodyさん2005/12/08(木) 13:52:12ID:???
forで$iを配列分回して
list($a[$i][0],$a[$i][1],$a[$i][3]…)=explode
0338nobodyさん2005/12/08(木) 13:52:59ID:???
[2]忘れてた
0339nobodyさん2005/12/08(木) 13:56:39ID:???
ん?それは
$a[$i] = explode(…
ですみそうな気が
0340nobodyさん2005/12/08(木) 14:11:38ID:???
>>334
自分でphp5に出来無い時点でダメポ。
0341nobodyさん2005/12/08(木) 14:40:38ID:???
>>340
それは自宅サーバーで運営してない奴全員に対する挑戦か?
0342nobodyさん2005/12/08(木) 15:48:34ID:???
PDOStatement::fetchのFETCH MODEの変更ってどうやるんですか?
マニュアル通りだと
$row = $stmt->fetch(PDO_FETCH_ASSOC);
に対して、
Warning: PDOStatement::fetch() expects parameter 1 to be long, string given in /home/www/test.php on line 49
こんな警告が出てしまいます。

PDOStatement::setFetchModeを使うのかなと
$result = $stmt->setFetchMode(PDO_FETCH_ASSOC);
を追加してみたのですが
Warning: PDOStatement::setFetchMode() [function.setFetchMode]: SQLSTATE[22003]:
Numeric value out of range: unhandled mode; this is a PDO bug, please report it in /home/www/test.php on line 48
こっちはこっちでこんな警告出してきました。

PHP5.1.1です。
03433252005/12/08(木) 15:57:52ID:???
こんにちは、先程質問させて頂いた者です。
トップ画面→ルーム作成画面まで作成してみました。

http://www.uploda.org/file/uporg255946.zip.html

問題点は、
*$_SESSION['id'][$i]の表示がおかしくなってしまう。"yuji"→"y"など、一文字になってしまう。
FAQを参照し、$_SESSION{'id'}{$i} にするも結果は変わらずorz

宜しければ、ご教授願いたいと思います。
よろしくお願い致します。
03443252005/12/08(木) 15:59:23ID:???
失礼しました、パスは「php」です。
03453372005/12/08(木) 16:09:00ID:???
>>325>>337でやると、二行目のXは、$a[1][2]となる。
0346nobodyさん2005/12/08(木) 16:19:45ID:???
>>342
カイハツ段階でNoticeをオフるなよ
0347nobodyさん2005/12/08(木) 16:56:50ID:???
>>343
print_r($_SESSION);
してセッション変数がどう格納されているか確認してみな。
そういうことやらないなら、
丸投げスレに移行すべし。
03483422005/12/08(木) 17:05:47ID:???
>>346
スンマセン。
Noticeも表示されるようにしたら
Notice: Use of undefined constant PDO_FETCH_ASSOC - assumed 'PDO_FETCH_ASSOC' in /home/www/test.php on line 49
警告の他に上記が追加されました。
で、PDO_FETCH_ASSOCの部分をシングルクォートで括ってやったら警告だけが残りました。
0349nobodyさん2005/12/08(木) 17:13:45ID:???
>>348
PDO_FETCH_ASSOCが定義されてないんだから、定義しろ
0350nobodyさん2005/12/08(木) 17:18:54ID:???
>>343
grs.phpの30行目を
$_SESSION['id'] = $id;
に変えて、
create.phpの31行目を
$_SESSION['id']
に変えれ。

$_SESSION{'id'}という書き方はダメ。中カッコは文字列の中から1文字だけ参照するときにつかうもの。配列の場合は必ず角カッコ。
03513422005/12/08(木) 17:26:06ID:???
>>349
納得。
FETCH_ASSOCはPDOクラスで定義された定数だったのね。
解決した、サンクス
0352nobodyさん2005/12/08(木) 18:04:12ID:???
>>351
エラーメッセージはちゃんと読もうね。
0353nobodyさん2005/12/08(木) 23:41:20ID:2fsehRpI
作業に没頭しすぎて遅くなってしまいましたが、
>>337さん、>>347さん、>>350さん ありがとうございました。
教えて頂いた事を参考に、頭を捻りながら作業を進めた結果、
room.txtを元に、各表を作成する事までは出来ました。

しかし、参加ボタンで名前を追加という点で行き詰ってしまいましたorz
参加ボタンを押すと、$_SESSION['id']と、$_SESSION['rate']をroom.txtに追加したいのですが、難しいのです・・・。

[room.txt]
1,2,aaa,2,Dungeon,3,yuji/,1500/

となっており、
rate1700で、idがryuujiさんが参加した場合、
1,2,aaa,2,Dungeon,3,yuji/ryuuji,1500/
1700としたいのです。

http://www.uploda.org/file/uporg256297.zip.html
現在このような感じです。

出来れば、丸投げにしたくないのでアドバイスや解決策があればよろしくお願い致しますorz
予想としては、別にもう一つphpがいるのかなと思うのですが・・・。
もしかして、PHP+MySQL覚えた方が解決までの距離が短かったりでしょうか・・・。



0354nobodyさん2005/12/08(木) 23:42:03ID:???
パスはphpです。
sage忘れすみません;;
0355nobodyさん2005/12/08(木) 23:44:45ID:???
;を二個も付けたらエラーが出ちゃうぞ
0356nobodyさん2005/12/09(金) 00:07:48ID:???
>>355
・・・orzすみません
0357nobodyさん2005/12/09(金) 01:14:54ID:vSvgZQPE
2chのdatログのビューアをphpで作ろうとしています。
フォームから >>1>>2>>3-4 など、参照したい行数を$resで指定して
datから該当の行のコメント部分だけを表示しようとしていますが、
処理が悪く表示が抜けてしまう行があります。<>は実際は半角です。

$res = preg_replace("/(^|)>>/i", ",>>", $res);
$res = substr("$res",1,(strlen($res)-1));
$log_line = split( ",", $res);
$ct = count($log_line);
for($i=0; $i<$ct+1; $i++){
$st = preg_replace("/(^|)>>(\d+)-(\d+)/si","\\2", $log_line[$i]);
$to = preg_replace("/(^|)>>(\d+)-(\d+)/si","\\3", $log_line[$i]);
$on = preg_replace("/(^|)>>(\d+)/si","\\2", $log_line[$i]);
$log_file = "$ls.dat";//該当2chのdatログ
$log_viewer = file($log_file);
if(!ereg("-", $res)){
list($name,$email,$date,$com) = split( "<>", $log_viewer[$on-1]);
echo "$com<br><br>";
}
elseif($st && $to){
for($h=$st-1; $h<$to; $h++){
list($name,$email,$date,$com) = split( "<>", $log_viewer[$h]);
echo "$com<br><br>";
}
}
}

既知の問題としては、>>1>>2>>3-4で1と2が落ちて3と4しか表示されない、
(>>1>>2>>3>>4や>>1-4ではとりあえず表示されます)
<br>が最後に4つ表示される。などです。
いろいろと変数を表示させたりしてやってきましたが、ここまでで手詰まりました。
最初からコーディングの悪さはあると思いますが、どなたかご教授ください。
0358nobodyさん2005/12/09(金) 02:36:11ID:???
ざっと見た限りではなんか変そうなんだが・・・・。詳しく見るのもアレなので、
とりあえず $ct = count($log_line); の行の前あたりに

$a=array(); foreach($log_line as $b) $a[]=urlencode($b); print_r($a);

を加えて$log_lineの中身がどうなっているかチェック。
他にも怪しそうな変数があったら同様にチェック。
変数の内容を確認するのはデバッグの基本。

あと×「教授」→○「教示」
0359nobodyさん2005/12/09(金) 02:56:48ID:???
>>358さん
使えるものしか使っていないのが一番の原因だとは思いましたが
おっしゃるように$log_lineを調べて、if(!ereg("-", $res)の部分を潰して
書き替えて、なんとか表示されるようになりました。
ご教示ありがとうございました。
0360nobodyさん2005/12/09(金) 03:19:25ID:???
>>341
レン鯖借りればいいじゃん。php動かすのに安いの使ってる方がオカシイ。
0361nobodyさん2005/12/09(金) 04:39:41ID:???
>レン鯖がPHP5に上げてくれるみたいだからPHP4はもうイラネ
>自分でphp5に出来無い時点でダメポ。

この流れだと、自分でサーバーの設定弄れるって事なんじゃないの?
レン鯖でも専鯖でも無い限りそれはムリポw
0362nobodyさん2005/12/09(金) 07:55:26ID:???
>>342
PDO_FETCH_ASSOC

PDO::FETCH_ASSOC
0363nobodyさん2005/12/09(金) 09:15:36ID:???
>>362,342
http://www.php.net/README_UPGRADE_51.php#extensions2
これだな。
0364nobodyさん2005/12/09(金) 14:13:07ID:???
>>362
日本語オンラインマニュアルの更新が遅いんだよな
最新のchm版マニュアルは定数の部分がPDO::〜に変更されていた
0365nobodyさん2005/12/09(金) 14:17:30ID:???
PDO::FETCH_ASSOC

PDO_FETCH_ASSOC

PDO::FETCH_ASSOC
0366nobodyさん2005/12/09(金) 14:24:52ID:???
楽天のシステムはPHP3で書かれているらしい
0367nobodyさん2005/12/09(金) 14:26:23ID:???
工エエェェ(´д`)ェェエエ工
0368nobodyさん2005/12/09(金) 15:00:52ID:???
>>353
全然意味がわからん
0369nobodyさん2005/12/09(金) 16:50:56ID:???
>>368
同意
0370nobodyさん2005/12/09(金) 21:15:22ID:???
$referer = $_SERVER['HTTP_REFERER'];
echo $referer;
携帯用スクリプトなんですが?mode=sourceを表示した時に前のページで取得したリファラのURLのソースを表示したいんですがどうすればいいでしょうか?
どうしても?mode=sourceの前つまりスクリプト自身のソースを吐くので
0371nobodyさん2005/12/09(金) 22:04:41ID:Gto+rkho
正規表現なり何なりで、連続する同じ文字を検出することは可能ですか?
例えば、5文字以上連続して同じ文字が入力された場合、その文字を取り出す。とか。
自分なりに調べてみましたが、それらしい情報は見つからず、、、
自分でもいろいろ考えましたが、ぐるぐるループさせる方法しか浮かびません…。
0372nobodyさん2005/12/09(金) 22:39:46ID:???
>>370
意味がわからない。
0373nobodyさん2005/12/09(金) 22:42:01ID:???
>>372
同意
0374nobodyさん2005/12/09(金) 22:44:07ID:???
>373
同意


>371
>ぐるぐるループさせる方法

それでいいんじゃね
0375nobodyさん2005/12/10(土) 00:07:34ID:???
>>371
preg_match('/(.)\1{4,}/',$str,$matches);
03763712005/12/10(土) 00:24:34ID:???
>>375
ありがとうございます!
このような書き方があったんですね。勉強になりました。
0377nobodyさん2005/12/10(土) 01:13:39ID:???
phpを勉強しようと思うので、入門用の本を紹介して下さい。
プログラム経験はflashのactionscriptでショボイゲームが作れる程度です。
よろしくお願いします。
0378nobodyさん2005/12/10(土) 01:51:28ID:???
>>377
http://www.php.net/manual/ja/
いやホントに、煽りで無くマジレス。
0379nobodyさん2005/12/10(土) 04:39:54ID:???
>>377
ついでにお前はくだ質スレの存在を知れ。
03803722005/12/10(土) 04:55:08ID:???
>>370
流れは

【A】
1.ユーザが<<URL>>に存在するリンクをたどり クエリmode=source を伴って当該スクリプトにアクセスする
2.当該スクリプトはリンク元をHTTPリファラから取得する
3.当該スクリプトはリンク元のソースを表示する

【B】
1.ユーザが<<URL>>に存在するリンクをたどり クエリmode=source を伴って当該スクリプト1にアクセスする
2.当該スクリプト1はリンク元をHTTPリファラから取得する
3.当該スクリプト1はスクリプト2への遷移を提供する
4.スクリプト2は先ほど取得したリファラを何らかの形で受け継いでいて、<<URL>>のソースを表示する

どっちかだと思うけど。それが判らない。

次に、「ソース」ってのはPHPのソースコードをさすのか
それともHTML(PHPとかの出力)のソースコードをさすのか。これもわからない。

携帯ということだけどキャリアはどこ?ドコモはリファラとれないよ?
0381nobodyさん2005/12/10(土) 05:06:16ID:???
>>379
むしろ、こっちに誘導してやってよ。

PHP関連の書籍(但しPHP出版系お断り)第2版
http://pc8.2ch.net/test/read.cgi/php/1117066073/l10
0382 ◆HewaraiHpQ 2005/12/10(土) 06:16:01ID:???
>>380
後者です。
他のスクリプト(HTMLソースを表示するページ)に前のページで取得したリファラを送る方法が謎なんですよ。
機種はauです。
リファラを利用したお気に入り規制突破スクリプトを作っていてソース表示をいれようと。
0383 ◆HewaraiHpQ 2005/12/10(土) 06:23:28ID:???
>>380
すいません。
前者の方です。
test.phpで前に表示していたページのリファラを取得して表示。
次にソース(ボタン)をクリックするとmode=sourceに移動その時に取得したリファラをそのまま受け渡し。
そしてHTMLソースを表示。
どうにも受け渡しができないんですよ。
0384nobodyさん2005/12/10(土) 06:58:43ID:???
>383
なにがいいたいのかさっぱりわからん
むいてないんじゃない?
0385nobodyさん2005/12/10(土) 07:30:30ID:???
>>383
受け渡しが出来ないって渡してないから受け取れないだけだろ
?mode=source&url=$_SERVER['HTTP_REFERER']
で渡したらいいんじゃないの
0386nobodyさん2005/12/10(土) 07:42:38ID:???
preg_grepの第一引数に
/$_SERVER['USER_AGENT']/
を指定したいんですが
モデファイ?4(よく覚えてなくてすいません)
とかいうエラーが出てしまいました。正規表現(()辺り?)の間違いだと思うのですが、どうにかして回避できませんでしょうか?
0387nobodyさん2005/12/10(土) 10:43:31ID:???
>>386
UAには普通"/"や"."や"-"が含まれるから正規表現のパターンにするには無理があるだろう。
0388nobodyさん2005/12/10(土) 10:45:34ID:???
quotemeta
0389nobodyさん2005/12/10(土) 12:26:23ID:???
>>386
387のいうことももっともだが、
その前に
>モデファイ?4(よく覚えてなくてすいません)
こういうことではいつまでたってもダメじゃん。
エラーが出たらそれが何を意味するか理解するようにしようぜ。
0390nobodyさん2005/12/10(土) 12:34:48ID:???
>>387
???別に無理でもなんでもないんだが…
03913862005/12/10(土) 12:41:17ID:???
>>387-390
返事ありがとうございます。とりあえずquotemetaとエラー文でググってみます。
0392nobodyさん2005/12/10(土) 12:42:01ID:???
>>390
387はそのまま$_SERVER['USER_AGENT']を指定するのは難しいといいたいんだろう。
ま、エスケープしろってこった。
0393nobodyさん2005/12/10(土) 12:55:49ID:???
>>386
おそらくMozilla/4.0の/で正規表現パターンが終わって次の4が修飾子と判断されてエラーになった
>>390
quotemetaしてstr_replace("/", "\/",
すれば出来るけど>>386には無理
そもそも正規表現使う必要あるのか疑問
やりたいことはarray_count_valuesとかじゃないのか
0394nobodyさん2005/12/10(土) 13:04:59ID:???
preg_qoute($str, '/')
03953932005/12/10(土) 13:07:38ID:???
>>394
にゃるほど
そんな関数があったのね
0396nobodyさん2005/12/10(土) 14:10:55ID:???
これがPHPクオリティ
0397nobodyさん2005/12/10(土) 14:30:05ID:???
$w = array('あ','い','う');

foreach ($w as $t){
$_POST['abc'] = mb_ereg_replace($t,'',$_POST['abc']);
}

こういう感じでpostからの入力文字を制限しようと考えているのですが
どういう訳か$wの最後の配列の文字「う」しか削除されません。理由が
全くわからないのですがヒントを頂けないでしょうか?。
03983862005/12/10(土) 14:48:38ID:???
なるほどいろんな関数がありますね。参考になりました、ありがとうございます。
0399nobodyさん2005/12/10(土) 15:08:21ID:???
>>397
コードには問題がなさそうだからきっと凡ミス

あと、単純な置換なら正規表現関数を使う意味がないぞ
$result = mg_ereg_replace('[あ-う]','',$_POST['abc']);
0400nobodyさん2005/12/10(土) 16:00:08ID:???
>>399
print_r($w)してもecho $tしても予想通りの結果がでるしわからないんですよね。
最初は文字コードがsjisの影響なのかと思ってstr_replaceからmb_ereg_replaceに
してみたりしたのですが同じでした(^^; という残骸です。
0401nobodyさん2005/12/10(土) 16:08:33ID:???
>>400
どうせこんな感じのミスじゃない?
$input = "あいうえお";
$w = array('あ','い','う');

foreach ($w as $t){
$result = mb_ereg_replace($t,'',$input);
}
echo $result;
0402nobodyさん2005/12/10(土) 16:15:08ID:???
(゚∀´)bナイス エスパリング
0403nobodyさん2005/12/10(土) 17:18:45ID:???
>>401
それも考えたんだけどインとアウトは同じ$aなんですよ(^^;

$a = mb_ereg_replace($t,'',$a);
■ このスレッドは過去ログ倉庫に格納されています