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

【PHP】下らねぇ質問はID出して書き込みやがれ 118

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/04/24(火) 01:29:22.24ID:yStuoiA/
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 117
http://kohada.2ch.net/test/read.cgi/php/1332346244/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 他言語について言及しないこと(特にJavaは禁句)。PHPオンリーの回答者が不快になります。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0587nobodyさん2012/05/09(水) 03:36:00.00ID:???
スホシンパッチw
0588nobodyさん2012/05/09(水) 09:00:05.62ID:???
>>585
http://php.net/manual/ja/class.arrayaccess.php
0589nobodyさん2012/05/09(水) 09:49:56.18ID:???
http://php.net/manual/ja/function.spl-autoload.php

spl_autoload($className);
$ins = new $className;
echo $ins->val.'<br>';

spl_autoloadは__autoloadの設定用?
new $className;だけで__autoloadが呼ばれるから意味がある
わけでそれをいちいち定義しないといけなくなると以下と
変わらない気がするのですが・・・

function load_class($className){
require $className.".php";
}
0590nobodyさん2012/05/09(水) 10:15:19.80ID:kEquIQgX
mb_convert_encoding("テストです", "SJIS", "UTF-8");
で、テキストファイルに出力させてhtmlとして表示させたいのですが、どうも文字化けしてしまいます
ぐぐると、SJISをSJIS-WINにという記事は見かけますが、改善しませんでした
当方、本サーバとテストサーバがあり、本サーバでは文字化けしません
両サーバはほぼ同じように設定しており、php.iniも同じ設定にしてあります
(1点違うのは、phpのバージョン 本サーバ5.3.8 テストサーバ5.3.10)
テキスト出力させるソースも同じ、エンコードも同じです。
書き出したhtmlファイルもnkfでチェックすると、本サーバとテストサーバと同じShiftJISで
同じように出力されており、webサーバがhtml出力される際にうまくいってないかと思うのですが・・・
他にチェックするべきところがありますでしょうか?
0591nobodyさん2012/05/09(水) 11:01:45.02ID:???
その文字がどう化けてるの?
ブラウザがエンコード間違ってるだけじゃ?
0592nobodyさん2012/05/09(水) 11:12:46.73ID:???
>>589
ここを読めば存在理由が分かるだろう
http://www.php.net/manual/ja/function.spl-autoload-register.php#refsect1-function.spl-autoload-register-parameters

>>590
HTTPヘッダの Content-Type: text/html; charset=「ここ」
HTMLドキュメントの <meta http-equiv="Content-Type" content="text/html; charset=「ここ」">
は確認したかい
05935902012/05/09(水) 12:22:39.34ID:kEquIQgX
出力されたhmtlドキュメントは以下の通りです
ブラウザのエンコードは「シフトJIS」にチェックがついていますが、
UTF-8を選択してもシフトJISを選択しても化けたまま変わらず(IE、FireFoxともに)
サーバー上のファイルは、nkfでチェックするとShift_JIS、viで開いてもShift_JISの状態で
端末上では当然化けます(サーバーがUTF-8なので)
nkfでShift-JISにoverwriteすると、ブラウザ上でも化けなくなるのですが、
別のPHPファイル実行時に出力させてるのでnkfでいちいち変換するわけにもいかず・・・

<html><head>
<meta http-equiv='Content-Type' content='text/html; charset=Shift_JIS'>
<title>LeXgy[W</title></head>   ←テストページといれてます
<body>
eXg
</body></html>
0594nobodyさん2012/05/09(水) 13:10:16.32ID:???
"テストページ"という SJISの文字列を
mb_convert_encoding("テストページ", "SJIS", "UTF-8");
のように、 UTF-8からSJISへの変換を掛けてSJIS環境で見ると、そーいう文字になるな。
0595nobodyさん2012/05/09(水) 13:26:20.13ID:kEquIQgX
すみません、自己解決しました・・・というか表示だけはうまくいんですがよくわかっていません
出力先のディレクトリの.htaccessに以下を入れていました
AddType application/x-httpd-php .htm .html

phpファイルもHTML出力されるようにしたんですが、今回文字化けてしているのは
htmlファイル(PHP実行時にfopenで書き出し)だったので、気づきませんでした

とりあえず上の記述をコメントアウトして文字化けを解消できたものの、同ディレクトリにある
phpファイルがhtml出力できなくなってしまいました
0596nobodyさん2012/05/09(水) 13:28:45.96ID:???
html出力というか、hoge.phpのファイル名をhoge.htmlに変更してhtmlファイルでphpを実行出力できるようにしました
0597nobodyさん2012/05/09(水) 13:42:42.57ID:???
拡張子phpのものが実行できてないということ?
0598nobodyさん2012/05/09(水) 13:46:33.42ID:???
いえ、拡張子phpだったものをhtmlに変更してます。phpファイルは問題なく動作します

利用者にhoge.htmlというページを開かせてるけど、実際にはphpファイルを実行させるために
.htaccessを設定してました
0599nobodyさん2012/05/09(水) 13:53:52.42ID:???
なんかややこしくなってしまいました・・・
整理すると、
.htaccessの設定は、今回出力させているhtmlファイル(他のphpファイル実行時にfputs関数で
書き出している)とは全く関係ありません
.htaccessの設定は、以前に別のhtmlファイル(見かけ上htmlだがphpを実行させる)のために作っておいたものです
その設定の影響を受け、今回の文字化けが発生していたようでした

今回の書き出しの文字化けを解消するには、htaccessの設定をやめればよいのですが、
それをすると以前から設定していたphpを見かけ上htmlで開かせることができなくなってしまったと・・・
06005892012/05/09(水) 13:54:17.92ID:???
>>592
わからん
リンク貼ってわかるだろう(キリッ
とかやめてほしいわ
0601nobodyさん2012/05/09(水) 14:13:20.91ID:???
>>589-599
質問者がID出さずにレスしていると
成りすましってことで無視されるぞ。
0602nobodyさん2012/05/09(水) 15:26:17.57ID:???
てか、SJIS切り捨ててUTF8にしてしまえば良いのでは?

>>600
遊ぶなら一人で遊べ
他人を巻き込むなw
0603nobodyさん2012/05/09(水) 17:50:04.76ID:kEquIQgX
>>602
携帯電話向けに作っているので、Shift_JISにしたいんです
利用者も年齢層がばらばらで、携帯も古い人から新しい人といるので・・・
0604nobodyさん2012/05/09(水) 17:56:14.35ID:???
Apacheのバージョンは?
AddDefaultCharsetが効いてるとか
0605nobodyさん2012/05/09(水) 18:03:47.00ID:???
utf8駄目だったauも 古いの7月で切り替えだし、そろそろ切捨ててもよさそうだけどな。
0606nobodyさん2012/05/09(水) 18:18:18.94ID:???
sjisしか対応してないケータイなんてもうほとんどないはずだが
0607nobodyさん2012/05/09(水) 18:33:43.25ID:???
phpはmeta効かないのでhtmlファイルの先頭で
phpにヘッダーを吐かせるしか無いかもね。
0608nobodyさん2012/05/09(水) 19:59:21.39ID:???
>>593
> 端末上では当然化けます(サーバーがUTF-8なので)
そんなことないよ。
>>599
テストサーバと本サーバで.htaccessに差があったということ?

あとの心当たりは>>604と同じ。確認方法は>>592
0609nobodyさん2012/05/09(水) 21:04:54.82ID:???
php.iniでoutput_handlerの設定はどうなってる?
0610nobodyさん2012/05/09(水) 22:35:23.39ID:twtG8Gyg
おすすめのクラスが解説されたphpのサイトを教えて下さい
0611nobodyさん2012/05/09(水) 22:53:08.65ID:???
>>610
何についてのクラス?
0612nobodyさん2012/05/09(水) 23:00:55.97ID:???
お勧めは6年2組
0613nobodyさん2012/05/09(水) 23:03:06.43ID:???
>>611
コレクションフレームワークについて
教えてください。
0614nobodyさん2012/05/09(水) 23:05:00.79ID:???
>>613
>>1
0615nobodyさん2012/05/09(水) 23:06:55.57ID:???
>>614
・ 他言語について言及しないこと(特にJavaは禁句)。PHPオンリーの回答者が不快になります。
0616nobodyさん2012/05/09(水) 23:08:44.56ID:???
phpにできないことはない
0617nobodyさん2012/05/09(水) 23:14:58.95ID:???
phpは韓国起源
0618nobodyさん2012/05/10(木) 00:07:08.16ID:QTsnYVOg
>>544
教えていただいたタグを少し編集してできました!
ありがとうございました。
0619nobodyさん2012/05/10(木) 00:16:03.97ID:???
>>609
>>590
> php.iniも同じ設定にしてあります
らしいよ

>>618
間違えたコード片あげてごめんね。できてよかった
0620nobodyさん2012/05/10(木) 00:18:42.79ID:???
>>619
でも .htaccess も両方のサーバーに置いてあったのか?
0621nobodyさん2012/05/10(木) 00:49:58.43ID:???
pearので、utf8だと文字化けするのがあるのでsjisにしてる。

というのは言い訳でメモ帳で書いているのでshis以外だとめんどくさい
0622nobodyさん2012/05/10(木) 01:09:09.47ID:???
phpにできないことはない
0623nobodyさん2012/05/10(木) 03:25:45.90ID:???
>>620
少なくともphp.iniは同じだけど
> 両サーバはほぼ同じように設定しており
らしいし、どうも>>599があやしいので、>>608を書いてみたよ。
0624nobodyさん2012/05/10(木) 07:42:27.87ID:tDrvx8Qu
>>604
AddDefaultCharsetはともに無効、Apacheのバージョンも同じです
>>607
phpにヘッダーをはかせております
>>609
output_handlerも共に同じです
>>608 >>620
結局違うところは、.htaccessがあるかないかの違いでした(本サーバには置いていません)
.htaccessの設定でなぜcharsetに影響がでるんでしょうか・・・
0625nobodyさん2012/05/10(木) 10:17:42.00ID:???
>>624
だからそoutput_handlerは何になってたのかきいてるんだけど

素のhtmlファイルまでphp処理するようになってたのが唯一の違いなら、
html出力するときにmb_output_handler通ってるせいで化けたと考えるのが自然じゃないの?
0626nobodyさん2012/05/10(木) 10:44:27.79ID:???
phpがhtmlファイルをサーバー内に出力するときには正しく行っているけれど、
ブラウザからそのhtmlファイルを要求したときにphp通って(output_handlerの設定で)mb_output_handlerかかって、
ファイルの文字コードはshiftJISなのにUTF-8としてエンコードされてから送られてきてるんじゃないか、
って意味ね

ここまで書いて自信ないんだけど、
phpファイルのphpブロック外でもoutput_handlerの影響受けるよね?
0627nobodyさん2012/05/10(木) 13:27:00.40ID:???
PHPってなんでこんなに、できないことが多いんですか?
なめてるの?
0628nobodyさん2012/05/10(木) 13:33:51.57ID:???
PHPは馬鹿用言語なので
馬鹿には現状で充分なんです
0629nobodyさん2012/05/10(木) 13:44:08.65ID:???
>>627
質問はID出してね
0630nobodyさん2012/05/10(木) 13:55:11.87ID:???
phpにできないことはない
0631nobodyさん2012/05/10(木) 14:23:00.73ID:0ynRr1Ca
>>626
php.ini内
output_handler = mb_output_handler
となっています

説明すごくわかりやすく感謝です
htmlファイルとして出力したものを、htaccessの設定故にそれをphpとして内部で実行しようとするから
内部エンコードのUTF-8になってブラウザに出力されてしまうのですね・・・
phpで処理させてるときにShift_JISで処理させるとなれうと、mb_output_handler("SJIS")のような
記述がいりますでしょうか? php.iniに設定すると他ファイルに影響するので
そのファイルだけに適用させるにはどうしたらよいものでしょう?
htmlファイルの頭に<?php mb_output_handlerの設定?>あたりを書き出しておけばよいのでしょうか
0632nobodyさん2012/05/10(木) 14:25:57.57ID:???
>>631
設定が難しいのは、お前さんがやろうとしてることが異様ってことだ
普通の方法でやりなよ
0633nobodyさん2012/05/10(木) 14:59:48.12ID:???
>>605
2010年頃のT004でダメだったって記事があるんだが
2008年頃のW60代が生き残ることもあって
まだダメっぽい。
0634nobodyさん2012/05/10(木) 15:01:39.05ID:???
スレタイにはくだらない質問にはID出せとあるので、ID出さない
0635nobodyさん2012/05/10(木) 15:27:02.48ID:0ynRr1Ca
>>632
phpファイルを見かけ上htmlで実行させることが異様ってことでしょうか・・・?

とりあえずhtmlヘッダ前に以下の記述を差し込むことでhtaccessを有効にしたまま問題なく表示できるようになりました
<?php mb_internal_encoding(\"SJIS\"); ?>
0636nobodyさん2012/05/10(木) 15:55:23.59ID:???
>>633
T004 ブラウザが7.2でも XHTMLじゃなきゃだめだよ。
6.2のが結構あるんだけど、
今年の7月に 周波数再編でかなり減ります。
http://www.au.kddi.com/seihin/cdma1x/
0637nobodyさん2012/05/10(木) 16:03:28.41ID:???
W53Hは?
0638nobodyさん2012/05/10(木) 17:09:32.94ID:???
スレチ話題長くなるのもアレだから、どっかにそれ系のスレッドでも立ってないかね。
0639nobodyさん2012/05/10(木) 18:30:24.00ID:???
>>635
うん、大抵はmod_rewriteとかですますかと。
0640nobodyさん2012/05/10(木) 18:31:40.04ID:???
って、ファイル変更が許されるなら文字コード変換すればよくね
0641nobodyさん2012/05/10(木) 19:36:29.29ID:???
>>631
そもそもファイルをUTF-8で出力すれば解決な気がする
0642nobodyさん2012/05/10(木) 21:32:42.47ID:???
ぐだぐだしてて最初からID出さないなら少なくとも名前欄にレス番書いとけよ。
レスもらう態度じゃねーよ。>>631お前のことだよ
0643nobodyさん2012/05/10(木) 22:02:22.84ID:???
そういう指摘のほうがうざったいから。
0644nobodyさん2012/05/11(金) 00:58:45.84ID:8qmfX98h
勉強でショッピングカートを作っているのですが、
「カートに商品を入れる」という処理をセッションとMySQLでやっていまして、
誰がどの商品を追加したかトークン用のセッションを与えて判別しています。

セッションなのでブラウザを閉じれば消えるわけですが、
DBの情報はそのまま残っています。
こういう場合、DBにレコードが溜まり続けてしまいますが、
cronか何かで定期的に削除するのでしょうか?
それとも何か良い設計方法があれば教えてください。
0645nobodyさん2012/05/11(金) 01:20:35.19ID:???
そのロジックにDBは不要だと思うが
セッションに全部入れて決済処理に入る時
ログイン&セッションに入ってる商品をDBに再照会
そこで売り切れだったら操作やり直してくれという流れでいいのでは
0646nobodyさん2012/05/11(金) 01:53:32.33ID:???
買い物途中でブラウザ落ちたらカート空か。
0647nobodyさん2012/05/11(金) 01:55:37.05ID:8qmfX98h
>>645
最初はそう思ってたのですが、DBに入れる事で
カートテーブルと商品テーブルをJOINしてデータの出し入れがしやすいんです。
商品IDをセッションに入れるパターンの場合、
出力時(カートの中身を見る)に、セッションに保存されている商品ID毎に
SQLを実行して行かなくては行けませんよね?それが無駄に感じるので、
DB保存&参照時にはJOINする事にしました。
(amazonとかもこうしてると思います
0648nobodyさん2012/05/11(金) 02:10:59.10ID:???
cronで定期削除か
カート商品入れる処理時に
1/500の確率でレコード削除する関数叩くとか
(そのユーザには少し待ち時間もらうことになるが)
まぁそんなかんじが無難でないの?
0649nobodyさん2012/05/11(金) 02:34:17.71ID:???
>>644
DBに入れるよりもアプリケーションスコープに入れれば済むこと。
0650nobodyさん2012/05/11(金) 02:45:08.46ID:???
>>647
amazonとかはそうしていないと思いますwwww
0651nobodyさん2012/05/11(金) 03:07:38.69ID:8qmfX98h
>>648
ありがとうございます。参考にします。
>>649
皆さんに言われてDBに入れるのも違う気がするので、もう少し考えます。
>>650
PCが違ってもカートの中身は保持されているので、DB使っていると思います。
0652nobodyさん2012/05/11(金) 03:38:37.74ID:???
そんなにたくさんカートに商品ぶちこんだままにしてるわけないんだし
ユーザごとにカートに入れている商品コードを管理。
ログインしてカート見に行ったときに適宜売り切れか問い合わせる形でいいんでね?

普通に商品情報検索して表示するのと変わらないでしょう?
0653nobodyさん2012/05/11(金) 04:05:32.33ID:???
ショッピングカートの情報はブラウザ落としても保持されるでしょ?
0654nobodyさん2012/05/11(金) 05:36:38.73ID:???
クッキーに入れてるからじゃね
サーバ側では保持してないよ
amazonの場合は個人の欲しいものリストとして管理するから
ああいうのはDBだな
0655nobodyさん2012/05/11(金) 06:21:32.62ID:TEIyqVKG
[質問]
Session情報を取得できない。
処理のかかるPHP処理1とその処理中の状況をSessionで取得するPHP処理2がある。
初回の処理では値を取得することができないが、セッションが生きてるうちに2回目の処理を行うと意図した結果になる。
[環境]
Google Chrome + WindowsXP Xampp(Chromeで動けば他のブラウザは動かなくてもよい)
[html]
<html>
<head>
<script type="text/javascript" src="./jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="./Test.js"></script>
</head>
<body>
<div id="result"></disp>
</body>
</html>
06566552012/05/11(金) 06:23:00.42ID:TEIyqVKG
[JS]
var hTimer = null;
$( function() {
hTimer = setInterval( ProgressEvent, 1000 );
$( "div#result" ).html( "START" );
$.post( "./Wait.php", null, OnFinishEvent );
} );
function ProgressEvent() {
$.post( "./Test.php", null, OnResultEvent );
}
function OnResultEvent( in_Data ) {
$( "div#result" ).text( in_Data.test );
}
function OnFinishEvent( in_Data ) {
clearInterval( hTimer );
$( "div#result" ).text( "FINISH" );
}
06576552012/05/11(金) 06:23:33.73ID:TEIyqVKG
[PHP1]
<?php
header('Content-type: application/json');
session_start();
@session_destroy();
session_write_close();
for( $i=0; $i<3; $i++ ) {
session_start();
$_SESSION['test']+=5;
session_write_close();
sleep( 3 );
}
?>
[PHP2]
<?php
header('Content-type: application/json');
session_start();
echo json_encode( $_SESSION );
?>

連投すみません。
0658nobodyさん2012/05/11(金) 09:14:30.53ID:???
セッションファイルって何時できるのさって話では?

最新のPHPにしたら拡張で変数の扱いを考えろ!
ばかやろーと言われたw
0659nobodyさん2012/05/11(金) 09:29:58.46ID:TEIyqVKG
>>658
レスありがとうございます。
セッションファイルが作成されるタイミングを理解していませんでした。

処理として以下の流れを先のコードの前に挿入して、テストしてみます。
1、[クライアント側] 初期化.phpへリクエスト(同期でリクエスト)
2、[サーバー側] 初期化.php > セッションファイルを作成
3、今までの流れ(destroyは行わない)

最新PHPのエラーについては、上記コードが対応したのちに見てみます。
0660nobodyさん2012/05/11(金) 10:18:25.34ID:???
>>656
よくわかってないけど、3行目が $( function() {
じゃなくて
$(document).ready(function() {
なんじゃないかな?
06616552012/05/11(金) 10:27:47.36ID:???
>>660
レスありがとうございます。
>>659のやり方で、(おそらく、、、)解決できました(ものと思っています、、、)。

現在、本番のコードを修正してアップロードして動作確認したら
先の質問でさらした間違っていたコードを修正して、こちらに書き込みます。
06626552012/05/11(金) 11:06:39.96ID:TEIyqVKG
うまくいきました。レスくれた方々ありがとうございます。
邪魔かもしれませんが、動作したコード貼り付けていきます。
[JS]
var hTimer = null;
$( function() {
$.post( "./Init.php", null, OnInitEvent );
} );
function ProgressEvent() {
$.post( "./Test.php", null, OnResultEvent );
}
function OnInitEvent() {
hTimer = setInterval( ProgressEvent, 1000 );
$.post( "./Wait.php", null, OnFinishEvent );
$( "div#result" ).html( "START" );
}
function OnResultEvent( in_Data ) {
$( "div#result" ).text( in_Data.test );
console.log( in_Data );
}
function OnFinishEvent( in_Data ) {
clearInterval( hTimer );
$( "div#result" ).text( in_Data );
}
06636552012/05/11(金) 11:08:15.24ID:TEIyqVKG
続き
[初期化PHP Init.php]
<?php
session_start();
@session_destroy();
session_write_close();
?>
[PHP1 Wait.php]
<?php
header('Content-type: application/json');
for( $i=0; $i<3; $i++ ) {
session_start();
$_SESSION['test']+=1;
session_write_close();
sleep( 3 );
}
echo json_encode( "FINISH" );
?>
06646552012/05/11(金) 11:14:00.68ID:TEIyqVKG
その他コードは全部同じです。
スレ汚しすんませんでした。

>>658
php-5.3.3-3.el6_2.6.x86_64
本番用のCentOS6.3サーバーが↑なのですが、
特にエラーは吐き出されませんでした。
ただ、、、こちらのサーバー設定でエラーを吐き出さないように設定している可能性もあります。
(これ以上はスレチになりますので、ここで報告は終わりにします)
0665nobodyさん2012/05/11(金) 11:20:21.55ID:???
これを実行するとBase OK、Sub OKになるのに、
Baseの定義を別ファイルに移してrequireするとBase OK、Sub NGになるのはどうしてでしょうか?
そのあたりの仕組みを解説しているページなど教えてください。

// OK
<?php
class Base {
}
echo "Base " . (class_exists('Base') ? 'OK' : 'NG') . "\n";
echo "Sub " . (class_exists('Sub') ? 'OK' : 'NG') . "\n";
class Sub extends Base {
}

// NG
<?php
require_once('Base.php');
echo "Base " . (class_exists('Base') ? 'OK' : 'NG') . "\n";
echo "Sub " . (class_exists('Sub') ? 'OK' : 'NG') . "\n";
class Sub extends Base {
}
0666nobodyさん2012/05/11(金) 12:03:39.39ID:???
setInterval( ProgressEvent, 1000 );って1秒更新だよね。
専用サーバーでよろしく!

>>665
ほんとだ、面白いw
実際にbaseが呼ばれるまでclass扱いしてないみたい
さすが変態言語
0667nobodyさん2012/05/11(金) 12:17:14.48ID:???
class定義は includeするなら、使う前に定義しろってこった。
includeしないなら baseはどこでも
sub定義は使う(インスタンスの生成とか、 class_exists)の前な。
0668nobodyさん2012/05/11(金) 13:15:48.44ID:???
>>665
そういうのは文章化はされてないのでソースの Zend/ 以下を読む

スクリプトのパース時に未定義のクラスを使ったクラス定義がある場合は
遅延クラス定義用の中間コードが生成され
実行時にクラス定義が行われる
0669nobodyさん2012/05/11(金) 23:54:03.57ID:???
アフィリ目的と思しき質問には答えないことにした。
0670nobodyさん2012/05/12(土) 01:09:03.69ID:???
( ´Д`)y━・~~
0671nobodyさん2012/05/12(土) 16:32:44.14ID:v9zwoOnj
文字列の末尾にある全角もしくは半角スペースを削除する
という正規表現を書いてみたのですが正規表現のベテランの方から見て
如何でしょうか?

よりスマートな書き方があればご伝授下さい。



$str = " あああ いいい      ";
$str = preg_replace("/^(.+?)[\s| ]*$/","\\1",$str);
echo "[{$str}]<br>";
0672nobodyさん2012/05/12(土) 16:45:52.82ID:???
>>1
0673nobodyさん2012/05/12(土) 16:47:36.34ID:???
末尾に「|」がある文字列で試せ
0674nobodyさん2012/05/12(土) 17:38:05.97ID:???
>>671
rtrimつかうとか?
0675nobodyさん2012/05/13(日) 00:35:24.38ID:???
>>673
???すり抜けますか?
今日の午後、試してみます。


>>674
勉強がてらバリデーションを全てオリジナルの正規表現でやろうと思ってます。
0676nobodyさん2012/05/13(日) 00:40:34.41ID:???
>>672
・ 他言語について言及しないこと(特にJavaは禁句)。PHPオンリーの回答者が不快になります。
0677nobodyさん2012/05/13(日) 00:47:07.48ID:K0OOuigT
あと、正規表現を極めたいのですが
正規表現に特化した資格とかって無いですかね?


毛嫌いしていた正規表現ですがマスターすると
色々と便利な事に最近きずきました。
0678nobodyさん2012/05/13(日) 00:47:10.41ID:???
675 == 676 && 675 != 671
0679nobodyさん2012/05/13(日) 00:48:06.45ID:???
正規表現はスレチって言われてんのに
それでも>>677のような挑発してくるってことは
いつもの人ですね┐(´д`)┌
0680nobodyさん2012/05/13(日) 00:51:20.57ID:???
>>677
こっちで聞いた方が良い
http://kohada.2ch.net/test/read.cgi/php/1168450843/
0681nobodyさん2012/05/13(日) 01:00:47.76ID:???
だからここでphp以外の話しても回答者の能力が追いつかないの!
0682nobodyさん2012/05/13(日) 01:29:14.14ID:???
はいはいそーですね(ぼうよみ
0683nobodyさん2012/05/13(日) 01:46:17.73ID:K0OOuigT
>>680
ありがとうございます。
正規表現系はあっちのスレで質問します。

ちなみに正規表現のルールは各言語同じなんでしょうか?
0684nobodyさん2012/05/13(日) 02:01:52.08ID:???
いろんな規格があるがPOSIX準拠とかPerl互換とか
まぁたいていどの言語でも問題ない
SQLみたいなもんだな
とりあえずwikipediaでもみてこいや
0685nobodyさん2012/05/13(日) 02:02:17.16ID:???
>>683
このスレで他言語に絡めたことを聞くと嫌がられる
0686nobodyさん2012/05/13(日) 02:16:34.83ID:???
ということにしたいやつが一人いるだけの話
■ このスレッドは過去ログ倉庫に格納されています