トップページ⇒php
986コメント361KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/03/03 22:41:23ID:???
・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-10辺り
0557nobodyさん2005/04/08(金) 00:17:56ID:???
>>556
シーケンシャルな仕組みを使う以上、ない。
0558nobodyさん2005/04/08(金) 00:19:57ID:???
だよね、どうもありがとう
0559nobodyさん2005/04/08(金) 01:21:41ID:???
おいおまいら!
スクリプトはシフトジスで書いていますか?
もれはいままでEUCだったけど、なんかスクリプト書くの
ウィンドウズだしシフトジスでいいかなぁなんて思えてきた。
0560nobodyさん2005/04/08(金) 01:40:53ID:???
>>559
-enable-zend-multibyte
なら、お好きにどうぞ。
0561nobodyさん2005/04/08(金) 01:51:02ID:???
>>559さんどうもでつ
mbstring.internal_encodingがeucでhtmlのencodingがシフトジス
でphpの記述がシフトジスで問題ないですか?
0562nobodyさん2005/04/08(金) 01:55:51ID:???
Shift_JISで書く意味なくね?俺はEUCでずっと書いてる
0563nobodyさん2005/04/08(金) 02:03:09ID:???
mvcになってねぇ
デザがシフトジスでhtlm作るんだよ。
そーするとスクリプトとhtmlですげー厄介
HTML_QuickFormではスクリプト内でformのアトリビュートとか
設定するでしょう、
0564nobodyさん2005/04/08(金) 02:06:51ID:???
>>563
どちらにせよデザの持ち込むhtmlは、文字エンコードも
改行コードも信用ならんので、間に一括変換噛ますでしょ?
0565nobodyさん2005/04/08(金) 02:12:39ID:???
改行コードはあんまり気にしてないっす。
でもさぁ EUCにするメリットはあるのか?
いままで鯖のロケールがEUCだったので合わせてたけどね。
クライアントからscpでアクセスしてウィンドウズから
ソース見るしね。
気になるのがDBへのインサートかな。おもにMYSQL使ってんだけど
mysqlの文字コードはどーなってのか心配・・・・
0566nobodyさん2005/04/08(金) 02:27:39ID:???
WEB関係はUTF8に統一した。
0567nobodyさん2005/04/08(金) 02:30:41ID:???
好きなの使えば良いさ
0568nobodyさん2005/04/08(金) 02:36:36ID:???
>>566
裏山椎茸
漏れも速くUTF8に移行したい。
スクリプトはEUCに統一してたんだが、
OSがUTF8な物が増えてきた。
0569nobodyさん2005/04/08(金) 04:17:13ID:???
utf-8にした場合、phpmyadminで文字化けしない?
0570nobodyさん2005/04/08(金) 04:33:19ID:???
         ,. ─- 、,,.___
        ,イ〃          `ヽ,__
.     N. {'             \
.    N. {               ヽ
.    N.ヽ`               〉
    N.ヽ`        ,.ィイ从       /
.    ヾミ.___-‐=彡'ノノノ__,ゞミ=-_rく
      lrf´ゞ"モ=ヾーf =モチ<}rv^i !
      ヾト、` ̄,り「弋!  ̄´ノ ソ
         !  ̄  ii{_,.   ̄  /r'´
.       ┌────────────‐┐
       .|                   .|
   ,. -‐ '|                   .|
  / :::::::::::|  >>569              .|__
  / :::::::::::::|  おまいはとんでもない    rニ-─`、
. / : :::::::::::::|  考え違いをしているようだ `┬─‐ .j
〈:::::::::,-─┴-、                  |二ニ イ
. | ::/ .-─┬⊃                     |`iー"|
.レ ヘ.  .ニニ|_____________.|rー''"|
〈 :::::\_ノ::::::::::::::::::::::::::::::::::::::::::::::::::::::: |:::::::: /::::::::::::|
0571nobodyさん2005/04/08(金) 07:24:59ID:???
>>565
SJISの場合は、PHP処理の内部で変換が何度も掛かるので効率が悪い。
(Zend Engineがそのまま扱えないため)
EUC-JP/UTF-8はそれがない。ケータイ向けであっても全部SJISで扱わずに、
最終的な出力でSJISにしてやるのが良い。

という理由はあるが、--enable-zend-multibyteして適正に
mbstring関係設定して使うのなら、別に構わんと思うよ。
判ってて使ってるんだから。理解しないで文字化けがとかが一番ウザイ。
0572nobodyさん2005/04/08(金) 09:42:26ID:???
>>565
MySQLのバージョンなんぼからだったかは忘れたけど、SJIS対応してるから
SJISに設定すれば問題なく使えるよ。もちろん全く問題なしというわけではないが、
携帯向けの開発中心にやってる俺からすれば、デメリットよりもメリットの方がかなりデカイ。
0573nobodyさん2005/04/08(金) 11:54:02ID:KGAjK1pc
register_globals=on の状態なんですが
フォームの適当な箇所でEnterを押すと
複数あるsubmitボタンの表示が一番上の値が取得されてしまうのですが
これを下のsubmitボタンの値を取るように、又は値を取らないようにするには
どうしたらよいのでしょうか?
0574nobodyさん2005/04/08(金) 11:59:28ID:???
>>573
ブラウザの仕様だからPHP側ではにゃんとも
0575nobodyさん2005/04/08(金) 14:38:39ID:???
>>573
<input type="submit" />じゃなくて<input type="button" />にしてやれば
Enterを押しても送信されない・・・と思う。
0576nobodyさん2005/04/08(金) 17:38:23ID:???
ビルダーでPHPスクリプト作れますか?
0577nobodyさん2005/04/08(金) 18:18:08ID:???
>>576
マッチョビルダーじゃ作れない
0578nobodyさん2005/04/08(金) 18:19:52ID:???
>>577
どうやって作ればいいのですか?
0579nobodyさん2005/04/08(金) 18:27:44ID:???
外部JavascriptをPHPで吐くようにしたんですが、
FirefoxやOperaでは問題ないのにWin-IEでは実行されません(画面真っ白)。
スクリプトの内容は単なるdocument.writeの羅列です。

同じ内容のJavascriptを普通のjsファイルに書いて読み込めば実行されるのですが・・・
また、そのPHPファイルを直接IEから呼び出すとちゃんとダウンロードされます。

何かIE特有の注意点等ありますでしょうか?
0580nobodyさん2005/04/08(金) 18:53:23ID:???
>>576
マルチ
>>579
JavaScriptはよく知らないからアレだけど
HTMLのscriptタグ内にtype=text/javascript入れるとか
phpでheader()でContentーtype:text/javascript入れるとか
05815792005/04/08(金) 18:58:51ID:???
>>580
どうもです。
一応そこらへんはやってるはずです。
phpのheaderではContent-type: application/x-javascriptを吐いてます。
Contentーtype:text/javascriptもやってみましたが同じでした(´・ω・`)
0582nobodyさん2005/04/08(金) 19:06:02ID:???
PHPやめて.jsにしたら読める?まずPHPの問題かJavaScriptの問題かはっきりさせよう
05835792005/04/08(金) 19:26:42ID:???
>>582
jsファイルにするとうまく行きます。
また、IEでJavascriptのエラーは出てないようです。
05845792005/04/08(金) 19:39:11ID:???
問題を単純化するため、以下のようなソースでテストしましたが結果は同じでした・・・
サーバ側の設定の問題でしょうか・・・他のサーバでも試してみます。

[PHPスクリプト]
<?php
header("Content-type: application/x-javascript");
print("document.write('TEST');");
?>

[HTMLファイル]
<body>
<script language="javascript" type="text/javascript" src="http://hoge.com/test.php"></script>
</body>
0585nobodyさん2005/04/08(金) 19:43:24ID:???
[HTML]
<script type="text/javascript" src="test.php"></script>
[PHP]
<?php
header('Content-type:text/javascript');
print 'document.write("テスト")';
?>

でうまくいくんだが(IE6SP1)
0586nobodyさん2005/04/08(金) 19:49:50ID:???
>>584
WinXP + Apache2 +PHP5.0.4 では問題なし
あとhttp://hoge.com/は他人のサイト。http://example.com/を使う。
0587nobodyさん2005/04/08(金) 19:57:50ID:???
<title>タグにphpが吐くソースと違うエンコーディングの文字が入ってたのが
原因でした・・・3回ほど吊ってきます・・・どうもありがとうございました orz
0588nobodyさん2005/04/08(金) 20:15:17ID:???
参照渡しわからんです。

function Hoge(&$arg)
これと
function & Hoge($arg)
のちがいわなんですか>?

0589nobodyさん2005/04/08(金) 20:45:48ID:PH5IR/1K
質問です。

例えば、
http://example.com/login.php
↑のような認証ページを用意し、ログインをさせます。
その際にセッションなりで保持したIDとパスワードを用いて、
ftp://example.com/
↑のようなFTPサーバにブラウザでログインさせたいと思っています。

通常のやり方だと、WEBでログインさせ、再びFTPでも認証ダイアログから
ログインさせるか、あるいはURLに
ftp://ID:[email protected]
↑のようにIDパスワードを混ぜることになり、どちらも不本意です。

どうにかならんものでしょうか?
0590nobodyさん2005/04/08(金) 21:07:52ID:???
動画からサムネイル画像を吐き出すようなライブラリってありますかね?
探してもなかったもんで・・・
0591nobodyさん2005/04/09(土) 01:45:25ID:BWP/VWku
ファイルを取得→保存→一定時間ごとにファイル更新

こんなことがしたいでつ
こういうのを組むのに参考になるサイトだけでいいんで教えてください
0592nobodyさん2005/04/09(土) 03:14:41ID:???
>>591
unix系なら cronjob で好きな時に wget --mirror すればいいだけだろう。
windowsは知らない。
0593nobodyさん2005/04/09(土) 03:32:30ID:???
>>588
リファレンス渡し http://www.php.net/manual/ja/language.references.pass.php
リファレンスによる返り値 http://www.php.net/manual/ja/language.references.return.php
0594nobodyさん2005/04/09(土) 09:46:58ID:???
>>593
リファレンスによる返り値でマニュアル読んでたんですけど
わからないです。
マニュアルには リファレンスを返すことは、結合する変数を見付けるために
関数を使用し たい場合に便利です・・・
pear のMDBとかはじめのconnectionなどで使われています。
結合する変数・・・ うーん難しい
0595nobodyさん2005/04/09(土) 10:17:11ID:???
日本語訳で意味が掴み辛い時は、原文を読めばよい。
Returning by-reference is useful - リファレンスで値を返すことは便利だ
when you want to use a function - 関数を使おうとする時に
to find - 見つけるために
which variable a reference should be bound to. - どの変数をリファレンスと結びつけるか
リファレンスで値を返すのは便利やねん。
どんな時に便利かつーとな、どの変数をリファレンスと結びつけるかを関数でやろうとする時やねん
0596nobodyさん2005/04/09(土) 10:53:53ID:???
質問させて下さい。

レンタルサーバーのさくらで、PHPを使ったサイトを作ってます。
2年間、問題なくうごいていたのですが、何の変更も
していないのに急に動かなくなりました。
さくら側で何か変更したのかと思いきや
何もしていないと言われました。

唯一変更したとすれば、アパッチのmod_rewriteを使用できるように
しました。。。とだけ言われました。

質問が抽象的ですが、いままでうごいていたのに
うごかなくなった場合、どこから手をつけていけば良いのでしょうか?
0597nobodyさん2005/04/09(土) 11:10:36ID:???
どう動かなくなったのかも分からない?
05985962005/04/09(土) 11:25:03ID:???
コメントありがとうございます。
本当に助かります。

具体的には、クリック数をカウントするリダイレクトが
使用できなくなっているのが1つ。

require_once("password.php");

$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
$selectdb = mysql_select_db($DBNAME, $con);

//クリック数をインクリメントするSQL文を発行
$sql = "update sample set clickcount = ifnull(clickcount, 0) + 1
where no = $no";
mysql_query($sql, $con);

//指定されたURLへリダイレクト
header("Location: " . $url);

$con = mysql_close($con);

もう一つは フォームからのデータの受け渡し系が
うまく作動しておりません。

またまた抽象的なのですが、
どこから手をつけていくと、原因を発見できるのでしょうか?
0599nobodyさん2005/04/09(土) 11:56:43ID:???
管理者とサポセンとは認識が違うだろうけど途中からregister_globalsを変更するとは
思えないんだが・・・
データをあげてphpinfo見てみそ
0600nobodyさん2005/04/09(土) 12:07:15ID:???

ttp://www.sakura.ne.jp/news/20050325-001.news
0601nobodyさん2005/04/09(土) 12:58:22ID:???
テスト運用って有料ユーザーでやる事なのだろうか?_?
06025962005/04/09(土) 13:01:48ID:???
>>599

本当にありがとうございます。
早速、見て見ました。

すると、 register_globals が OFF
でした。以前は ON が仕様でしたが
いつのまにか OFF に・・・・

おいおい 連絡してこいよ 

と思いましたが、まぁ原因が分かったので
よかったです。

私のサイトはONじゃないとうごかないものが
ほとんどでして・・・・

ON が OFF になる。
これだけで大きく被害を受けました。。。。
0603nobodyさん2005/04/09(土) 13:05:47ID:???
mod_rewriteが怪しいと思うなら、htaccessあたりでRewriteEngine offにして動作確認するとか。
オイラなら素直にスクリプトのデバッグをするけども。
きちんとエラー処理をしてれば速攻で問題個所を絞れそうな・・
0604nobodyさん2005/04/09(土) 13:10:17ID:???
すいません、現在のアンカー位置(<a name=〜>で定義するやつ)を
得ようしたんですが、
$_SERVER["REQUEST_URI"]
$_SERVER['QUERY_STRING']
などの情報が取得できないようです。
$_SERVERを$_ENVに変えたり、serverVar("URL")とか試したりしたんですが、
全て値を得ることが出来ませんでした。
他に呼び出された完全なURLを取得する方法などはございませんでしょうか…。

無料のHPスペースなのでhtaccessを触ったりとかそういうことはできませんです。
0605nobodyさん2005/04/09(土) 13:12:36ID:SXkH7OvC
10進数の数字のみの文字列を出来るだけ短い文字列にしてMySQLに入れたいのですが、
256進数(つまり1バイト文字全て使う)に直そうと単純に$string = chr($int)として$stringを入れようとすると、
SQL文のダブルクオーテーションが消えてしまったり、あるいは増えてしまったりしてMySQLに格納出来ません。
何か良い方法は無いでしょうか?
0606nobodyさん2005/04/09(土) 13:16:17ID:???
いったいなんでそんな事をするのか逆に質問したい
0607nobodyさん2005/04/09(土) 13:25:32ID:SXkH7OvC
>>606
MySQLのリファレンスに、インデックスを使う際は対象となるデータの桁数が短いほうが良いと書かれていたからです。
データ容量も落とせると思うし。
0608nobodyさん2005/04/09(土) 13:36:58ID:???
>>604
そもそもブラウザが#以降の文字列を鯖に送出していない。
ブラウザのhttpリクエスト・レスポンスヘッダを見るツールがあるのでそういうので確かめてみるとよい。
ieHTTPHeaders、proxomitron、パケットキャプチャー等。
0609nobodyさん2005/04/09(土) 14:50:00ID:???
>>607
桁数の問題って、そんなに対象のフィールドに入れるデータが
数字が膨大な長さのデータばかりなのか?
よっぽど特殊なデータとか膨大なレコード数になるとかでもない限り
素直に整数型で入れればと思うが
ミクロレベルの問題を凄い上の層でどうにかしようとしてる感が
0610nobodyさん2005/04/09(土) 15:30:06ID:SXkH7OvC
>>609
MySQLは符号無しbigintでも20桁くらいしか扱えませんよね。
それをオーバーしてしまうのです。
その長い10進数の文字列を左から3桁ずつで区切ると各区分のパターン数は256以内に収まります。
そこで、各パターンに0〜255までの数字が1対1に対応するよう割り振り、(最小完全ハッシュのような事)
その数量を256進数に直し、区切っていたものを再結合して一つの文字列にしてMySQLに格納したいのです。
区切らずに全桁で考えたほうがパターン数が節約出来ますが、検索時の事情でそれは出来ません。
3桁の区分ごとに専用のフィールドを用意する事も速度の低下とHDD使用量の増加になってしまうので、
やはり一つの文字列として一つのフィールドに格納したいのです。
0611nobodyさん2005/04/09(土) 15:44:49ID:???
メモ帳でphpファイルを作ってみましたが、ファイル名は××.phpでよろしいでしょうか?
アップしたときに××.
php.txtと出ますが、問題ないでしょうか?
0612nobodyさん2005/04/09(土) 15:47:55ID:???
アップしたんなら開いてみれば問題あるかないか分かると思うけど。
普通にphpファイルとして動作させるのなら.txtは要らない。
0613nobodyさん2005/04/09(土) 15:53:36ID:???
>>612
アップしたらファイル名にtxtと付くんですよ...
何故でしょう?
0614nobodyさん2005/04/09(土) 15:55:07ID:???
>>613
メモ帳で保存した時についてるんじゃ?
アップしたあとでもファイル名変えれば良いだけ。
0615nobodyさん2005/04/09(土) 15:56:09ID:???
CGIを使っているけどユーザーには使わせない鯖なんじゃねぇの
0616nobodyさん2005/04/09(土) 16:05:53ID:???
>>608
ああ、そうなんですかわかりました。
ありがとうございます
06175962005/04/09(土) 16:18:04ID:???
register_globals ONにしたら
なんなくうごくのですが、
危険ですよね。。

でも引数ってregister_globals OFFだと
どうやって渡すのですか?
register_globals ONでしかうごかない
プログラムしか掛けません。。

どなたか、OFFで動かすテクニックというか
そんなサイトにでも誘導していただけませんか・・・
0618nobodyさん2005/04/09(土) 16:18:50ID:???
>>613
えっ!?
アップ先のファイル名っつ変えられるんですか?
よろしかったか仕方を教えて下さい!!
0619nobodyさん2005/04/09(土) 16:23:33ID:???
ファイルマネージャかFTPソフトにそういう機能が付いてると思う。
0620nobodyさん2005/04/09(土) 16:23:50ID:???
ワロタ
0621nobodyさん2005/04/09(土) 16:25:51ID:???
>>619
有難うございます。
0622nobodyさん2005/04/09(土) 16:28:27ID:???
>>617
はじめに(初歩の初歩)ぐらいは読もうな。
http://www.php.net/manual/ja/tutorial.php
最もその中で書かれてるハイパーリンク先の詳細が重要
0623nobodyさん2005/04/09(土) 16:40:38ID:???
こういうスレもあるんでよろしく。

【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/l50
0624nobodyさん2005/04/09(土) 16:45:36ID:???
>>610
流れを読まずに書き子。
数値を文字列として扱えればいいだけなら、varcharに入れたらよいのでは?
06256052005/04/09(土) 17:11:13ID:SXkH7OvC
>>624
それだと必要な機能は出来ますが、
MySQLのリファレンスによるとインデックスを使う際は対象となる文字列の桁数が少ない方が良いらしいのです。
1桁に使われる文字の種類数が少ない事で桁数を減らした場合と同様な効果があるとしたらくたびれもうけだけど。
(これがありえそうで怖い)
でもHDD使用量が抑えられるという効果は確実にありそうだし出来ればやりたいのです。
06265892005/04/09(土) 17:26:34ID:fpNXc15C
すんません。
>>589もよろしくお願いします。。。
0627nobodyさん2005/04/09(土) 17:26:57ID:???
>>625
その数値がどれくらいユニークなのかは知らんが、先頭の数バイト分だけ
インデックスを作成することもできるよ。
alter table hoge add index (column(4))
見たいな感じでね。

ま、しかしHDDのお値段と復号やらなんやらの手間とを天秤にかければ・・・
てなことも考慮した方が良いのでは。
0628nobodyさん2005/04/09(土) 17:35:07ID:???
>>626
認証ページにて、
1.認証に成功→サーバ内にセッション情報を保存して該当ページへリダイレクト
2.認証に失敗→認証ページへ戻る

FTPの該当ページではセッション情報を検索して、存在すればアクセス許可。
なければ認証ページへリダイレクト。

セッション情報の保存法はcookieでもセッションでもファイルでもDBでも
お好きなように。検索のためのキーはリダイレクトするときに渡す必要が
あるのでGETにするしかないので、セッション作成毎にユニークなIDを作成する。
こんなところか。

あ、当然セッション情報は有効期限を設けて定期的に消去する。
普通はログオフ時に削除すればいいんじゃね。
盗聴が怖ければSSLで暗号化するしかないんじゃないの?
と、とりあえず適当に書いてみた。推敲もしてません。
06295892005/04/09(土) 19:04:25ID:fpNXc15C
>>628
> FTPの該当ページではセッション情報を検索して

↑これ、具体的にどうしたら良いのでしょうか?
FTPのページではPHP等は動かせないですよね?
0630nobodyさん2005/04/09(土) 19:47:32ID:6OokWNUO
セッションについて聞きたいのですが
トップページにて認証を行いアカウント等セッションに登録して別ページにheaderで飛ばします。
ここではセッション内容が正しく表示されます。
次にこのページから適当なページに<a href〜でリンク先に飛びます。 このページでもセッションは表示されます。

続いてブラウザを閉じずに認証ページにURL指定か戻るとかで移動して違うアカウントで入ります。
headerで飛んだページは2つ目のアカウントが正しく表示されます。
が、この後このページから先ほどの3ページ目へリンクで飛ぶと前のアカウントのデータが表示されてしまいます。
リミッターはnocache lifetimeも0にしているのですがどうしてなんでしょうか?

取得するだけのページならsession_start()だけでいいですよね?
0631nobodyさん2005/04/09(土) 19:54:09ID:???
>>629
ファイルをダウンロード(orアップロード)させたいんでしょ?
プロトコルにhttpを使うかftpを使うかは関係なく、
urlを直打ちしてダウンロードさせなければよいのでしょ?
そのための認証ページを作るという意味なんだけど・・・
0632nobodyさん2005/04/09(土) 21:15:02ID:???
コンテンツ事の認証にユーザーIDの空ファイルを利用しようかと想うのですが
サーバーとしてファイルの数が多くなるというのは良くないのでしょうか?
0633nobodyさん2005/04/09(土) 23:52:34ID:???
最近学習始めた初心者です。

クラス概念が有る様ですが、ディストラクタの起動する要因が判らない
ので、知っていたら教えて下さい。
0634nobodyさん2005/04/09(土) 23:58:39ID:???
>>629
ちょっと書き方がわるかった。
要はhttpでもftpでもいいが、ユーザがアクセスできるところにファイルを
置いては認証もへったくれもないという事。
だからダウンロードさせるファイルはブラウザでアクセスできない場所へ
置いておいて(※)、ダウンロードのページではまず認証状況を確認し、次に
phpを使ってファイルを読み取り、ftpのヘッダと共にファイルを送信してやる。
とこういう流れになるかと。

※たとえばApacheでDocumentRootを/usr/local/apache/htdocsにしてるなら、
/usr/local/apache/Download(適当)/に置いておけば、url直うちでは
たどり着けない。
0635nobodyさん2005/04/10(日) 00:01:57ID:???
>>633
オブジェクトが消滅するとき。
0636nobodyさん2005/04/10(日) 00:03:44ID:???
みんなもうphp5に移行してんの?
0637nobodyさん2005/04/10(日) 00:20:25ID:???
>>636
PHP5に対応したcacheってあったっけ?
あればそろそろ移行してもいいかな。
06386332005/04/10(日) 00:31:17ID:???
>>635
どうやったら消滅するのですか?
unset? それとも、die?
0639nobodyさん2005/04/10(日) 01:30:02ID:???
>>636
みんあがしたらするよ。
0640nobodyさん2005/04/10(日) 03:02:33ID:???
>>636
SOHOとしてはレン鯖とかホスティング鯖に普通に入りだしたら移行
っつーか移行せざるを得ない、結局みんなが使い出したらかw
0641nobodyさん2005/04/10(日) 07:20:50ID:???
>>640
同じく...なんだけど、php3->php4のときは共存できたので、
未だにphp3のままのところがあるわな。

php4とphp5は(通常)共存できないので、中小企業向けレン鯖は当面php4のままだろう。
レン鯖のphp5対応鯖に新規or乗換する蔵が出てくるのはいつのことなんだろう。。。
0642nobodyさん2005/04/10(日) 09:04:55ID:???
>>637
Zend製品は対応してる。PHPAは全然動き無いし、
MMcacheは開発休止してる。

スクリプトキャッシュじゃないけど、VM最適化パッチはかなり効くね。
PHP5.1だけじゃなくて、PHP4.4とかで入れてくんないかな。
0643nobodyさん2005/04/10(日) 12:00:23ID:???
XREA鯖はPHP4 5 両対応
0644nobodyさん2005/04/10(日) 12:59:48ID:jGzXhnVH
「中田様、小野さん、中村選手、用務員、警備員、柳沢様」(、区切り)
これを↓で変換すると

$message = preg_replace( "/(.+?)(選手|さん|様)?$/" , '$1選手', $message);

「中田選手、小野選手、中村選手、用務員選手、警備員選手、柳沢選手」
となってしまいます。
「中田選手、小野選手、中村選手、用務員、警備員、柳沢選手」
となるように(語尾に「選手」「さん」「様」がついていない場合はそのままにしておくように)
するには、どのように書き換えたら良いですか?
0645nobodyさん2005/04/10(日) 13:26:17ID:???
>>644
mb_ereg系を使って方がよさげ。
$message=mb_ereg_replace('([^、])(選手|さん|様)' , '\1選手', $message)
0646nobodyさん2005/04/10(日) 13:46:51ID:jGzXhnVH
>>645
お答えありがとうございます。
ごめんなさい、mb_ereg_replaceのように実験的なステータスにある関数は使えないんですよ。
0647nobodyさん2005/04/10(日) 14:08:09ID:???
>>646
そうなのか。いっそ単純に
$message=preg_replace('/(さん|様)/' , '選手', $message);
でいいんじゃね。>>644も「、」が区切りと認識してないし。
0648nobodyさん2005/04/10(日) 14:11:22ID:???
何度もスマソ。
こう書くと区切りの「、」がそれなりに機能するかな。
$message=preg_replace('/(さん|様)(、|$)/' , '選手$2', $message);

0649nobodyさん2005/04/10(日) 14:14:59ID:jGzXhnVH
>>647
>>648
出来ました。
そうでした。なんか難しく考えすぎてたみたいでした。
ありがとうございます!
0650nobodyさん2005/04/10(日) 14:38:57ID:???
>>646
mb_ereg_replaceは、今はもう実験的位置づけじゃないよ。
http://jp2.php.net/manual/en/function.mb-ereg-replace.php
0651nobodyさん2005/04/10(日) 18:05:37ID:???
2次元配列があるのですが、
2次元目の配列の個数で、
1次元目をソートすることはできますか?
ランキングっぽいことをやろうとしているんですが…
0652nobodyさん2005/04/10(日) 18:14:29ID:???
ア…
multisort使えば出来そうですね
おさわがわせいかましt

お騒がせしました。
0653nobodyさん2005/04/10(日) 18:27:15ID:???
最近のプログラマは自前のコードでソートプログラムすら書けないのか・・・
なんというか、質が落ちたな・・・
0654nobodyさん2005/04/10(日) 18:28:19ID:???
それは初心者ですらできなきゃいけない事なのですか?
0655nobodyさん2005/04/10(日) 18:45:34ID:???
自前でやるより処理が早い事もあると想うが?
0656nobodyさん2005/04/10(日) 18:46:28ID:???
>>654
「効率的な」とか「高速な」ソートを作るという訳でなければ、
要するにアルゴリズムが理解できないプログラマといえる。

まあ色んなプログラマがいるからソートの仕組みが組み立てられない
ことが即駄目プログラマとは言えないけど、概ね駄目。
■ このスレッドは過去ログ倉庫に格納されています