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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/11/01 04:09:15ID:???
・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 
0331nobodyさん04/11/07 22:36:34ID:???
>>330
ありがとうございますm(__)m
0332nobodyさん04/11/07 22:37:38ID:???
文字列の分割です。例えば"*"を区切り記号として、

例1."abc" は "abc"と""(又はNULL)
例2."abc*" は "abc"と"*"
例3."abc*def" は "abc"と"*def"

explodeだと、"abc"と"def"になってしまいます。
また、例1と例2の区別が出来ません。

どうするのが一番スマートでしょうか?
0333 ◆.jC7ANgFY. 04/11/07 23:00:20ID:???
>>332
$str = "abc*";
$ret = explode('*', $str, 2);
if (count($ret) == 2) $ret[2] or $ret[2] = '*';
else $ret[2] = NULL;
0334 ◆.jC7ANgFY. 04/11/07 23:01:29ID:???
>>332
訂正です。添字ミス。$strを元に$retに結果が返ります。

$str = "abc*";
$ret = explode('*', $str, 2);
if (count($ret) == 2) $ret[1] or $ret[1] = '*';
else $ret[1] = NULL;
0335nobodyさん04/11/07 23:25:19ID:???
>>334
ありがと。
でも、ifとか無しに
ならんかと考え中。
0336nobodyさん04/11/07 23:46:22ID:???
>>332
多分、これでいいと思う。

$str1 = 'abc*';
$str2 = 'abc*def';
$str3 = 'abc*def*ghi';

print_r(preg_split('/(?=\*)/', $str1));
print_r(preg_split('/(?=\*)/', $str2));
print_r(preg_split('/(?=\*)/', $str3));
033733604/11/07 23:54:55ID:???
>>332
問題を少し読み間違えていたような気がするのでもう一度。
必ず 2 つに分割するのかどうかが問題を見ただけでは分からないけど。

$str0 = 'abc';
$str1 = 'abc*';
$str2 = 'abc*def';
$str3 = 'abc*def*ghi';

print_r(preg_split('/(?=\*)|$/', $str0, 2));
print_r(preg_split('/(?=\*)|$/', $str1, 2));
print_r(preg_split('/(?=\*)|$/', $str2, 2));
print_r(preg_split('/(?=\*)|$/', $str3, 2));
0338nobodyさん04/11/07 23:56:14ID:???
アップロードした画像をGDでサムネイル作成するページを作成しています。
透過GIFの場合を考え、ImageColorTransparent を使用するつもりです。

新しく定義した背景色を指定する方法 ( ImageColorAllocate ) は見つかりましたが、
アップロードされた透過GIFに元々定義されている透過色を判断出来る方法はあるのでしょうか?

0339nobodyさん04/11/07 23:59:47ID:???
>>320
とりあえず、$_POSTを、$_REQUESTに変える。
そもそも、commandをPOSTで送ってない。ってんなら。
array_key_exists()をかます。
0340nobodyさん04/11/08 00:21:09ID:???
>>336,337
ありがと。>336の方がいいみたい。

マンモス本P.322を見ているのだが、
なんで>336の書き方で、区切り文字の
"*"が配列に残っているのか、不思議。
034132004/11/08 01:10:50ID:???
>>323 >>339
ありがと。あと、dumpで表示してみたら、NULLでした。

緊急措置としてif (array_key_exists("command", $_POST)){
かましてみました。上手く行きました。THX
034232004/11/08 01:20:50ID:???
何か
<input name=command type=hidden value="hogehoge">
で得てるみたい。
0343nobodyさん04/11/08 01:22:02ID:???
>>339
俺毎回issetかましてるが、そんな関数もあったのか
0344nobodyさん04/11/08 03:10:22ID:???
なぁPHPの連想配列はハッシュだぞ、、
0345nobodyさん04/11/08 03:17:17ID:???
Array_key_existsは配列処理関数の完全性のためにあるんです。
0346nobodyさん04/11/08 04:01:12ID:???
array_key_exists より isset の方が短くて好きよ。
034732004/11/08 04:15:58ID:???
switch($_POST['command'])で判定してるから
issetつかえねー(´・ω・`)

$_POSTの初期化ってどうするの?ヽ(`Д´)ノ
0348nobodyさん04/11/08 08:03:25ID:???
>>347
( ;´・ω・`)人(´・ω・`; )
0349nobodyさん04/11/08 08:14:32ID:???
>>347
switch(isset($_POST['command']) ? $_POST['command'] : FALSE)
0350軟式PHP04/11/08 09:06:18ID:???
ボンクラ質問者が多くなってきたな
0351nobodyさん04/11/08 09:10:32ID:???
>>350
あまり高度な質問されても解答できないだろ?
君にあわせてくれているんだよ。感謝しなきゃ。
0352軟式PHP04/11/08 09:16:16ID:???
なるほどな。
0353nobodyさん04/11/08 10:01:32ID:???
>>647
$_POST = array();
0354nobodyさん04/11/08 11:10:56ID:pYeS35cG
教えてください。
PHPを使ってアップロードしたときに
ファイルサイズが制限を越えるファイルをアップすると
サーバ側でファイルサイズや名前が取得できないだけでなく
他の項目(<input type="text" など)のデータ
も設定されなくなるのですが
こういうものなのでしょうか?
0355nobodyさん04/11/08 11:38:30ID:???
大根とか無理でしょ。
それじゃあ制限の必要ないじゃん。
無理かどうか確認しないと。
0356nobodyさん04/11/08 11:58:24ID:vBQdFfe4
ネットショップ運営者です。
格安商材なので頻繁な銀行振り込み確認が非常にコストとなっています。
自動確認スクリプトみたいなのが作れたらいいなと思うのですが、
可能でしょうか?銀行から如何に振込み名義を取得するかが
ネックですが。
0357nobodyさん04/11/08 12:10:55ID:???
微妙にスレ違いかもしれませんが、質問します。

サーバのphp.iniの設定をhtaccessで変更できると
聞いたのですがやり方がよく分かりません。
ググってみても参考サイトが探せなくて。。
何か参考になるサイトをご存じないでしょうか?
0358nobodyさん04/11/08 12:12:53ID:???
>>356
取引先の銀行に相談されるのが先かと。
035935404/11/08 12:14:21ID:???
>>355
大根?
とりあえず無理ってことですよね
0360nobodyさん04/11/08 12:20:09ID:???
>>356
ショップ経営してるなら普通ファックスサービスかメールサービス使わないか?
0361nobodyさん04/11/08 13:05:29ID:???
>>357
http://jp2.php.net/manual/ja/configuration.changes.php
http://lolipoking.lolipop.jp/php/patio.cgi?mode=past&no=175
0362nobodyさん04/11/08 15:47:12ID:e4TPxf3I
php5のコンストラクタ、
なんで__constructに変わったんだろ?
__destructに合わせたかっただけ?
0363nobodyさん04/11/08 15:58:09ID:???
もとから__construct()
0364nobodyさん04/11/08 15:58:33ID:???

【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/

0365nobodyさん04/11/08 17:21:39ID:???
誘導されてきました。
今、http://m@ki.私のドメイン.comというアドレスにしたくて、
ki.私のドメイン.comを設定して、それはちゃんと表示されるのですが、
http://m@ki.私のドメイン.comとすると、print_rで$_SERVERを表示させても
そのmが入れられているかいないかの区別が付きません。どのようにPHPで記述すれば
その値が取得出来るのでしょうか?教えて下さい。m(_ _)m
036636504/11/08 17:27:59ID:???
なお、認証ダイアログ
if ($_SERVER['PHP_AUTH_USER'] == '' ) {
header('WWW-Authenticate: Basic realm="My Realm"');
header("HTTP/1.0 401 Unauthorized");
echo "ユーザーがキャンセルボタンを押した時に送信されるテキスト\n";
exit;
}
else {
echo "<p>こんにちは、{$_SERVER['PHP_AUTH_USER']} さん。</p>";
echo "<p>あなたは、{$_SERVER['PHP_AUTH_PW']} をパスワードとして入力しました。</p>";
}
は出さずに行いたいです。
0367nobodyさん04/11/08 17:39:07ID:???
>>365
なんか良く分からんが、DNSの話なら板違いだな。
つーか @ を使おうとするなんて変態だな
0368nobodyさん04/11/08 17:43:50ID:???
>>365-366
ルアーですか、そうですか
0369nobodyさん04/11/08 17:55:18ID:???
>>367
認証要求されてないからブラウザが不要なユーザ名を削除してるだけ。
DNSはカンケーない。
0370nobodyさん04/11/08 17:58:06ID:???
俺も一流の釣り師目指してがんがるよ。
0371nobodyさん04/11/08 18:37:59ID:???
>>365
ドメインの前につける@の意味は知ってるのか?
0372nobodyさん04/11/08 19:57:36ID:???
Basic認証の時に
http://user:[email protected]と出来るのを知っていて、
その@だけ使って面白い事が出来ないのかと思ったのですがダメなんでしょうか?
ブラウザからGET Request出した時点で削除されるんですか?!
0373nobodyさん04/11/08 20:02:38ID:???
@はクライアント依存だからなぁ・・・
0374nobodyさん04/11/08 20:09:54ID:???
>>372
>http://user:[email protected]と出来る
これ送出してるクライアントが持ってる機能だから。
で、使おうとしてるクライアントでは出来るの?
0375nobodyさん04/11/08 20:36:41ID:???
>>374
出来る出来ない以前にIEは修正パッチのどれかを当てると出来なくなるのが問題になったのだが、
0376nobodyさん04/11/08 20:39:42ID:???
またIEか。。。。
0377nobodyさん04/11/08 20:49:14ID:???
別にこれに関してはIEが悪いわけじゃないけどなw
0378nobodyさん04/11/08 20:54:15ID:???
なるほど・・・・完全にクライアント依存ですか。
どのブラウザでも(携帯も含む)。と思っているので流石に無理そうですね・・・。

現在、MacのIE5でチェックしています。
0379nobodyさん04/11/08 20:59:19ID:???
携帯は全滅の筈。
0380nobodyさん04/11/08 21:01:10ID:???
ftp://user:[email protected]/の形式を
httpに流用しただけで規格外
RFCに載ってなかったっけ?
0381nobodyさん04/11/08 21:06:53ID:???
そういやいつの間にかIEで使えなくなってたな
0382nobodyさん04/11/08 21:08:13ID:???
URI に user, password を含める形式は RFC で規定されている。
それが HTTP プロトコルの場合は BASIC 認証に置き換えている。
FTP の場合は USER, PASS でログインが実行される。

URI はあくまでリソースの位置を示す情報だからそれが常にそのままサーバに渡される訳ではない、ということ
0383nobodyさん04/11/08 21:13:56ID:???
phpから.cgiをincludeして利用したいのですが、
コードが表示されてしまい、正しく表示されません。
.cgi単体では正しく動作しています。
どうすればいいでしょうか?宜しくお願いします。
0384nobodyさん04/11/08 21:17:31ID:vBQdFfe4
ag
0385nobodyさん04/11/08 21:27:46ID:???
>>383
まさかローカルのファイルを指定してないよなぁ・・・
0386sage04/11/08 21:34:35ID:lTLj8kGr
>>385
いや・・・さすがにそこまでは・・・
ちゃんとHTTPでリクエストしていますよ。
同じサーバ内でリクエストしてもダメなんでしょうか?
execするとうまく動作してるのですが。
宜しくお願いします。
038738304/11/08 21:42:25ID:???
ローカル指定してますた orz
ありがとう。でもなぜにローカルじゃダメポ?

>>386
俺の書き込みを乗っ取ってどうしようと・・・w
038832904/11/08 21:50:04ID:???
>>330
表示されねーっす。
表示させる方法ないっすかね?
0389nobodyさん04/11/08 21:59:03ID:???
>>387
なんで、って…単純にファイル読み込んでるだけになるからCGIが処理されるわけ無い
CGIファイルをブラウザにD&Dしても処理結果表示されないでしょ?

>>388
>>329の通りなら表示されるはずだが…
0390nobodyさん04/11/08 22:01:55ID:???
> include(aaa.php);
これ変じゃね?
039138604/11/08 22:05:38ID:lTLj8kGr
>>389
私にもレスくださいよ・・・
039232904/11/08 22:21:58ID:???
すんません、表示されました。
でもこれ、include "***.cgi";
じゃ効果ないっすね。当たり前かな?
上手くPHPからperlに引数渡せる方法見っけたと思ったら
だめぽでしたな。うわーん
0393nobodyさん04/11/08 22:26:30ID:???
>>392
file_get_contentsでURL渡すしかないかも
includeは単純にファイルを挿入するだけぽ
0394nobodyさん04/11/08 22:30:30ID:???
PHPで、HTTPヘッダと一緒に送信したエンティティ部分を取得するには
どうしたらいいんでしょうか?
039532904/11/08 22:34:41ID:???
>>393
thanks, but muripo-desita.
0396nobodyさん04/11/08 22:47:24ID:???
>>395
perlは結果を標準出力してphpで受け取ったあとPHPで出力・・・じゃだめか
0397nobodyさん04/11/08 22:55:10ID:???
例 11-5. HTTP経由のinclude()

<?php

/* この例は www.example.com が.phpはPHPスクリプトとして扱い、.txtは通常の *
* ファイルとして扱うように設定されていると仮定しています。また、ここでの *
* '動作します'という言葉の意味は、変数$fooと$barが読み込まれる側のファイ *
* ルで使用可能である、ということです。 */

// 動作しません: www.example.com では file.txt はPHPコードとして解釈されません。
include 'http://www.example.com/file.txt?foo=1&bar=2';

// 動作しません: 'file.php?foo=1&bar=2' という名前のファイルをローカルファイル
// システム上から探し出そうとします。
include 'file.php?foo=1&bar=2';

// 動作します。
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt'; // Works.
include 'file.php'; // Works.

?>

039832904/11/08 23:09:43ID:???
>>396-397
ありがとうございます。
.cgi(perl)にもこの方法で変数を渡すことができました。
実は渡したい変数というのがID/パスワードになるんですが、
セキュリティ的にどうだと思いますか?
includeしてるからブラウザのアドレス欄に残ることはなさそうですが・・・。
0399nobodyさん04/11/08 23:19:57ID:???
>>398
セキュリティ的にはむしろ危険な方法だよ
仕組みを考えれば分かる
PHPからperlに変数送るのってどうやってやるんだっけ?
0400nobodyさん04/11/08 23:34:04ID:???
>>399
どこがどう危険なんですか?
>>329じゃありませんが、教えてください。
0401nobodyさん04/11/09 01:06:28ID:???
まだ初期の段階です。ttp://localhost/にアクセスしたら
ユーザー名とパス入力がでました。どうすればいいでしょうか?
0402nobodyさん04/11/09 01:11:24ID:???
>>401
sine
0403nobodyさん04/11/09 01:31:49ID:???
>>401
何故か笑ってしまった。
0404nobodyさん04/11/09 02:09:52ID:???
文字列から特定の文字を削除する関数おしえてくださいませ
1時間ぐぐりまわったが、chopとかしか見つからなかったです
0405nobodyさん04/11/09 02:20:15ID:???
str_replace
0406nobodyさん04/11/09 02:23:07ID:???
$str = "あくあだあらあねあえあ質あ問あはあ他あスあレあであ";
str_replace("あ","",$str);
0407nobodyさん04/11/09 02:23:15ID:???
>>404
strtrとかで空文字と置換してやるんじゃダメなのか?
0408nobodyさん04/11/09 08:45:17ID:???
>>235
> ちなみに、PHP-4.3.Xでは同じ方法でインストールできたと思います。

これ本当?
readme.txt にはそんなこと書いていないようですが。
ところで、PDFlib-lite-6.0.0p1.tar.gzは普通に configure と make しても
libpdf_php.so が作成されないんだけど、どうやるのですかね?
それらしいオプションもなさそうですが。
0409nobodyさん04/11/09 09:48:43ID:???
PHP5 以降は確か PECL に移動して PHP5 のソースには含まれなくなったはず。
PDFlib-lite-6.0.0p1 をインストールした後、

http://pecl.php.net/package/pdflib

から pdflib-2.0.2.tgz をダウンロードしてきて、

$ phpize
$ ./configure
$ make
$ make install

して、インストールに成功したら、dl("pdf.so") で呼び出すか、php.ini に
PHP 起動時に読み込まれるように設定する。

もしかすると、こんな手間を掛けなくても、

$ pear install pdflib

だけでも自動的にインストールされるかもしれない。
0410nobodyさん04/11/09 10:17:19ID:???
文中の'\'を¥に変換したいのですが、単純に↓のようにやると、
SJISの時にソや表や十が文字化けしてしまいます。
str_replace("\\", '¥', 'ソラソラ表十け\けけ');

mb関数なら大丈夫かと思い↓なんてやってみたんですが、
mb_ereg_replace("\\\\", '¥', 'ソラソラ表十け\けけ');
str_replaceと同様の結果になりました。

どうすれば正しく'\'だけを置換できるでしょうか?

0411nobodyさん04/11/09 10:24:47ID:???
>>409
ありがとうございます。が、PHP4.3.9でPDFlib-lite-6.0.0p1を使いたいのです。
readme.txtをみると PHP APIのバージョンが合ってないとだめと書いてあるようですね。
./configure --with-pdflib=/usr/local; make;ではmake時にエラーが出ます(Fedora core2)

PHP5に移行するかな‥
041241004/11/09 10:27:13ID:???
ありゃ、変換後の文字列は &yen;(半角)です。
0413nobodyさん04/11/09 10:27:36ID:???
>>410
mb_regex_encoding() あたりかな?
マルチバイト文字列関数のマニュアルをよく嫁。
0414nobodyさん04/11/09 10:28:32ID:???
¥
041541004/11/09 10:57:43ID:???
>>413
ありがとうございました。

事前にマニュアルを確認したところマニュアルには以下のように書いてあり
> 文字エンコーディングとしては、内部エンコーディングまたは mb_regex_encoding()で指定した文字エンコーディン グが使用されます。
内部エンコーディングにSJIS指定してたと思ったのですが、
どうやらそうなっていなかったようです。

mb_regex_encoding("SJIS");
を置換の前に指定することにより解決しました。
ありがとうございます。
041640904/11/09 11:58:25ID:???
>>411
エラーが出るのは PHP 4.3.9 のソースからコンパイルした場合かな?

PECL の pdflib-2.0.2 は PHP4 と PDFlib-lite-6.0.0p1 でも対応して
いるみたいなので、PHP 4.3.9 のソースでは pdflib を入れずに
インストールした後、モジュールとして pdflib のインストールを
試してみれば?

一応、試してみたけど、

$ pear install pdflib

でも大丈夫みたい。
0417nobodyさん04/11/09 13:17:59ID:???
>>416
> >>411
> エラーが出るのは PHP 4.3.9 のソースからコンパイルした場合かな?

そうです。情報を小出しにして済みません。
既にpdflib-4.0.3が入っていたので、make uninstallして、PDFlib-lite-6.0.0p1をソースから
configure; make; make install;。
最後にPHP4.3.9を--with-pdflib=/usr/localしてmakeしているときにエラーが発生します。

--with-pdflib=noでPHP4.3.9をインストールした後に、pear install pdflibしてみましたが、
今度は
/tmp/tmpAAT0NG/pdflib-2.0.2/pdf.c:7155:19: pdf4.c: No such file or directory
make: *** [pdf.lo] Error 1
`make' failed
で落ちました。

対象のマシンは実験機でいろんなものを入れたり消したりしているので、不具合が
あるのかもしれません。一度OSからきれいに入れ直してみます。
0418nobodyさん04/11/09 14:08:28ID:???
>>417
PHP 4.3.9 のソースに含まれているものは PDFlib-lite 6.0.0 には対応していない。

そのエラーが発生した pdflib-2.0.2/pdf.c のソースの該当行を見てみたけど、
どうやら PDFLib 4 がインストールされているものとして認識されているね。

#elif PDFLIB_MAJORVERSION == 4
 /* use the old PDFlib wrapper */
# include "pdf4.c"
#else /* PDFLIB_MAJORVERSION < 5 */
# error "PDFlib version does not match PHP-wrapper code"
#endif /* PDFlib >= 5.0.0 */

どこかに PDFLib 4 用のヘッダファイル(/usr/include/pdflib.h あたり?)が
残っていると思うので、削除するとか、pear でインストールするときに、
pdflib がインストールされている場所を聞かれるはずなので、
自動認識にせずに、/usr/local を指定するとかしてみるとうまくいくかもしれない。
0419nobodyさん04/11/09 17:51:40ID:???
>>418
お手数をおかけします。
/usr/local/include に pdflib.h があったので削除して、
pear install pdflib-2.0.2.tgz を行いましたが、今度は以下のエラーで
終了しました。

/usr/local/src/pdflib-2.0.2/pdf.c:7081: error: `gdImagePtr' undeclared (first use in this function)
/usr/local/src/pdflib-2.0.2/pdf.c:7081: error: (Each undeclared identifier is reported only once
/usr/local/src/pdflib-2.0.2/pdf.c:7081: error: for each function it appears in.)
/usr/local/src/pdflib-2.0.2/pdf.c:7081: error: syntax error before "im"
/usr/local/src/pdflib-2.0.2/pdf.c:7099: error: `im' undeclared (first use in this function)
/usr/local/src/pdflib-2.0.2/pdf.c:7099: error: syntax error before "zend_fetch_resource"
make: *** [pdf.lo] Error 1

別のマシン(Minacle Linux 2.0+PHP4.3.9 PDFlib非インストール)で
PDFlib-lite-6.0.0p1を configure; make; make install;した後
pear install pdflib-2.0.2.tgz を行いましたが、ここでも以下のエラーで
終了してしまいした。

gcc: unrecognized option `-prefer-pic'
/tmp/tmp6cYe68/pdflib-2.0.2/pdf.c:87: ext/gd/php_gd.h: No such file or directory
/tmp/tmp6cYe68/pdflib-2.0.2/pdf.c:89: ext/gd/libgd/gd.h: No such file or directo
ry
make: *** [pdf.lo] エラー 1
`make' failed

gd関数は使用可能になっていますが、確かに/usr/local/lib/php/ext には
gd/php_gd.h はありません。

なにかいろいろ問題があるようです。
頭を冷やしてもう一度ドキュメント類を見直してみます。
0420nobodyさん04/11/09 18:04:30ID:i/oj7Egh
すみませんが教えてください。
過去ログ読んでいると「内部エンコーディング」って言葉が
よく出てくるんですが、いったい何なのでしょうか?
0421nobodyさん04/11/09 18:05:27ID:???
>>420
マニュアル読め
0422nobodyさん04/11/09 18:19:20ID:???
>420
ttp://php.planetmirror.com/manual/ja/ref.mbstring.php
0423nobodyさん04/11/09 19:17:22ID:???
>>419
PDFLib-LiteはGDが必須ってだけだから、
PHPのソースのextをリンクすれば良いんじゃない?
0424nobodyさん04/11/09 19:51:04ID:???
>>419
GD をインストールしているのが原因でエラーになるのか・・・。
GD のヘッダファイルを PHP のソースからコピーしたら解決できそう。

$ mkdir /usr/local/include/php/ext/gd

$ cd php-4.3.9/ext/gd
$ cp php_gd.h /usr/local/include/php/ext/gd/
$ cp -r libgd /usr/local/include/php/ext/gd/

$ pear install pdflib

>>423 が言っているように、手動で pdflib-2.0.2.tgz を展開して、
PHP-4.3.9 のソースの ext をシンボリックリンクしてコンパイルする
という方法もある。

PHP 側で GD をインストールするときはヘッダファイルのインストール
してくれると楽なんだけど。
0425nobodyさん04/11/09 19:57:29ID:???
(´-`).。oO(FPDFじゃダメなんだろうか?)
0426nobodyさん04/11/09 20:20:51ID:???
Perlのtr(文字単位での置き換え)みたいなのありますか?

$tmp =~ tr{123}{ABC}

123をABCに置き換えるんじゃなく、

1 -> A
2 -> B
3 -> C

のように文字単位で置き換えられる処理です。

10203 -> A0B0C
0427nobodyさん04/11/09 20:28:29ID:???
>426
配列で指定する
0428nobodyさん04/11/09 20:31:38ID:???
>>426
echo strtr('10203', '123', 'ABC');
0429nobodyさん04/11/09 20:31:45ID:???
>>427
正規表現使うなら>>427の言うとおり。
正規表現を必要としないならstrtr()という関数が便利
043042604/11/09 20:45:21ID:???
皆さんありがとうございます。

>>428さん
strtr関数に気付きませんでした。もっと良くマニュアル読みます。

>>429さん
複雑な条件はなく、ただ単純に例みたいに置き換えるだけだから>>428さんので
大丈夫でした。

>>427さん
こんな感じで書いてみたんですけどうまくいきませんでしたorz

echo preg_replace( "/[123]/", "[ABC]", "10203" );

[ABC]0[ABC]0[ABC] になってしまいました。
■ このスレッドは過去ログ倉庫に格納されています