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

【PHP】下らねぇ質問はここに書き込みやがれ 50

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/07/11(水) 17:50:01ID:fYd+34US
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0263nobodyさん2007/07/16(月) 13:02:27ID:???
>>261
それ実際のソース?違うよね。
文字クラスが可笑しくてパターンコンパイル出来ないってエラーだから、
マッチパターンをちゃんと書いてくれないとどうしようもないよ。
0264nobodyさん2007/07/16(月) 13:15:13ID:???
>>262
あらたなXSSってだいぶ昔の記事だぞ。
ていうかこのスレにいるやつはたいてい知ってるだろ。
02652622007/07/16(月) 13:16:01ID:???
XSS検証
IEのみで確認。operaとfirefoxでは無効。
UTF-8でファイルを作っとくとIEでも無効

EUCとSJISで造ってる人はは対策すべし
02662622007/07/16(月) 13:19:00ID:???
ためしにhttp://www.yumemaboroshi.net/に登録されてるCGIスクリプトを無作為で選んでためしてみた。

10サイト中、7個はXSSが可能。

認知度が低すぎ
0267nobodyさん2007/07/16(月) 14:51:43ID:???
>>262
うちのサイトでも試すんで試験用のコード教えてくれい。
02682622007/07/16(月) 15:28:25ID:???
>>267

>>262のサイトから引用元みて
0269nobodyさん2007/07/16(月) 15:38:06ID:eChNNpaq
以下の一行に4つの値が5つ分ある配列を
ナンバーの若い順にソートしたいのですがうまくいきません。

ID、ナンバー、好きな食べ物、好きな音楽
1,330,apple,pank
2,1024,orange,laten
3,22,budou,heeling
4,35,banana,rock
5,1,kyuui,classic

コードはこちらです。
$ary[0] = array("1","330","apple","pank");

$ary[1] = array("2","1024","orange","laten");

$ary[2] = array("3","22","budou","heeling");

$ary[3] = array("4","35","banana","rock");

$ary[4] = array("5","1","kyuui","classic");



array_multisort($ary, SORT_NUMERIC);
お手つきでしたらご指摘よろしくお願いいたします。
0270nobodyさん2007/07/16(月) 15:44:09ID:???
カルタかよ
0271nobodyさん2007/07/16(月) 15:49:34ID:???
>>269
array_multisort()は列方向の配列が必要で面倒だから
usort($ary,create_function('$a,$b','return $a[1] - $b[1];'));
とかでいいんじゃね。
0272nobodyさん2007/07/16(月) 15:55:48ID:eChNNpaq
>>271
ありがとうございます。思ったとおりの結果になりました。
私にはこのコードがなにをしているのか理解できないのでマニュアル見て勉強してみます。
0273nobodyさん2007/07/16(月) 15:59:58ID:eChNNpaq
すごい!こんな便利な関数があったんですね。
2つも勉強させていただきました。ありがとうございます。
02742592007/07/16(月) 16:10:36ID:FZx8tOaQ
申し訳ありませんでした。ソースですがあいうえの所にはカタカナ3文字が
入ります。それ以外はソースそのままです。
if( MB_ereg("あいうえ",$name) ){略}
0275nobodyさん2007/07/16(月) 16:22:55ID:f3MIb3UO
画像アップローダをやってるんですが、ログを見ると
ダウンロードツールでjpegファイルを連続でダウンロードされてるみたいです。
回避できる方法はありますか?
ご存知でしたらお教えください。
m(__)m
02762752007/07/16(月) 16:24:54ID:f3MIb3UO
書き忘れました。
ずるぽんあぷろだを使っています。
0277nobodyさん2007/07/16(月) 16:52:19ID:???
>>274
だからなんでそれを書かないのかと。
SJISでゼとか入ってて[とバイナリが被ってるんじゃない?
mb_regex_encoding()でちゃんと文字コードを指定すること。
0278nobodyさん2007/07/16(月) 16:59:57ID:eChNNpaq
file関数でファイルの読み込みのみのページを作成し、
0.5秒おきに手動でリロードしているのですが、
CPUの負荷が50%を超えてしまいます。
fileの読み込みはあまりしないようなプログラミングを心がけるべきでしょうか?
何度も恐縮ですがお手つきでしたらアドバイスお願いいたします。
0279nobodyさん2007/07/16(月) 17:34:37ID:???
>>278
fileの読み込みに限って言えば、それだけでCPU負荷が高まるようなものではない。
CPU負荷は他の処理が影響していると思う。
0280nobodyさん2007/07/16(月) 18:33:35ID:???
無限ループでもしてんじゃね?
0281nobodyさん2007/07/16(月) 19:12:08ID:???
>>275
1)
UAとリファラを見るようにして、ツールのライトユーザーを弾く。
→ 弾いた場合はどこかにheader()で飛ばす

2)
閾値以上の連続リクエストにはウェイト(待ち時間)をわざと入れて、リクエストの負荷を減らす。
→
閾値を連続リクエストにはペナルティで 1秒 × 連続リクエスト回数累計の2乗 * 0.2 とか わざとsleep (待ち時間は適当)
とか、
閾値を超えた連続リクエストにはheader('HTTP/1.0 403 Forbidden');とか返すとか

UAもリファラも偽装できるから、スクリプトかかれたら弾けないけどね。
ダウンロードする側も、自作で上手にスクリプト組んだら実質防御出来ない。
0282nobodyさん2007/07/16(月) 19:17:34ID:???
IPアドレスかマックアドレスを見て弾けばいい。
後は、nec.co.jpやSOMY.CO.JPなどの大手ホストだけ特別に扱うなどの処理をするとか。
0283nobodyさん2007/07/16(月) 19:19:23ID:I4aE+UQm
DBのバックアップをするために、毎日指定した時刻にCRONでデータベース単位で圧縮し、GZIP圧縮しmail関数で、ファイルを添付してメールで送っております。

しかしGZIP圧縮した容量が20MB超えたら、PHPでメモリーリミットエラーがおきてしまいました。

現在PHPのメモリーリミットは256MBに設定してあります。

これ以上増やす事も出来ないのですが、何か代替策はないでしょうか?

FTP関数は許可していないので使えません。

同じサーバーにバックアップデータを置いておくとクラッシュしたときにバックアップごとふっとんでしまうので、別のサーバーもしくは手元に毎日置いておきたいです。

手動で毎日ダウンロードするって言うのはなしでおねがいします。 
0284nobodyさん2007/07/16(月) 19:27:03ID:???
>>282
MACアドレスなんてPHPでどう取得するんだ?
0285nobodyさん2007/07/16(月) 19:28:10ID:???
>>283
そもそも256に設定しているのに20で落ちるのがおかしいと思うけど。
あとは、毎日ではなく毎時でやるとか。
02862822007/07/16(月) 19:29:03ID:???
普通には取得できない。
PHPからCを呼び出して、Cで取得するしかない。
0287nobodyさん2007/07/16(月) 19:29:17ID:???
>>283
scp とか rsyncで 定期的にバックアップを取りに行く →詳細はそっちのスレを参照
0288nobodyさん2007/07/16(月) 19:29:50ID:???
>>283
全てをバックアップするんじゃくて、差分でバックアップしてみたら。
0289nobodyさん2007/07/16(月) 19:31:27ID:???
>>283
HTTP関数を許可しているのなら、HTTPプロトコルで別サーバーに転送するとか。
0290nobodyさん2007/07/16(月) 19:33:01ID:???
>283
まずハードから見直すことを考えましょう。
サーバーで重要なデータを扱う場合には、RAIDを組むのが普通です。
後は、DBのバックアップツールで別のHDDに定期的にコピーするとか
0291nobodyさん2007/07/16(月) 19:56:02ID:???
>>283
とりあえず案としてはテーブル単位でやってみたら

問題解決の手順として
本当にメモリーエラーなの? ってのが気になる。
本当なら、まずはどこでメモリーエラーになっているか調べなさいな
とりあえずそっからでしょ

>>288
差分でとるにしても
バックアップのスケジュールのどこかでフルバックアップしないと破綻するから
結局根本解決にはならんのでは ※今回のケースの場合な
0292nobodyさん2007/07/16(月) 20:09:06ID:???
>>283
普通はShellを使うんだけどねぇ・・・
PHPしか選択肢は無いの?
0293nobodyさん2007/07/16(月) 20:12:30ID:???
こないだもMACアドレスとかいってたやついたな。
0294nobodyさん2007/07/16(月) 20:17:26ID:???
これからIPアドレスもIPv4とIPV6と混在してくるから、
MACアドレスが主流になってくるよ。
02952832007/07/16(月) 21:03:22ID:uy8jxOc+
>>285
PHPのMemory_limitは間違いなく256MBです。
出来るなら毎時の方がいいのですが……とりあえず今は毎日でやっています。

>>287
scp、rsyncについて調べてみます。

>>288
差分バックアップは復元の時に、めんどそうですね。 案に考えて見ます。

>>289
HTTP関数だけで別サーバーに転送できるんですか?
別サーバーからfile_get_contentsやfopenでそのデータを開いて、そのサーバーに保存するとかではないですよね?

>>290
現在うごいているサーバーに新しく物を入れるのは……ちょっとためらってしまいます。
最初からRAID組んでおけばよかったですね…

>>291
テーブル単位だと……一番大きなデータベースで120個くらいのテーブルがあって、新機能と同時にテーブルも追加されているので、難しそうです。
telnetからCRONのシェル実行してやると、メモリーエラーのPHPが帰ってくるので、間違いはないと思いますが…

>>292
シェルスクリプトでsendmailまで通してしまえばいいんですね、そこは盲点でした。
簡単に組もうと思ってPHPでやってました。

とりあえず、いただいたアドバイスでやってみて、また報告します。
0296nobodyさん2007/07/16(月) 21:53:18ID:???
>>289
HTTP関数だけで別サーバーに転送できるんですか?
別サーバーからfile_get_contentsやfopenでそのデータを開いて、そのサーバーに保存するとかではないですよね?

クライアントからPOSTしてサーバーにデータを送るのと一緒で、
サーバーから別サーバーへPOSTすればいいだけ。
0297nobodyさん2007/07/16(月) 22:14:19ID:???
EasyPHP1.8のMySQLがうまく起動しない件の質問ってここで大丈夫ですか?
0298nobodyさん2007/07/16(月) 22:15:44ID:???
MACアドレスみたいなのって、ifconfigで一時的に変更できなかったっけ?
実際に変更することはかなりの難関だけど
02992832007/07/16(月) 22:17:16ID:cqqgBiea
>>296
fsock関数を使うって事ですね。
だけど、これ受け取り側のPOST_MAX_SIZEとかMEMORY_LIMIT、UPLOAD_MAX_FILESIZEを相当大きくしないといけないですよね…
20MBのGZIPをPOSTするのに、どれくらいの設定にすればいいのだろう……
0300nobodyさん2007/07/16(月) 22:26:19ID:???
1日1回バックアップが必要なほど重要なDBデータを
メールで送ったりPOSTするのかよ。

バックアップを保管しておく側のマシンが
SFTPクライアントで自動で一日一回取りに行けばいい。
クライアントマシンのCRONかタスクスケジューラ使えよ。
0301nobodyさん2007/07/17(火) 00:31:18ID:???
>>298
NICの故障交換ごときでMACアドレスが
コロコロ変わると管理が面倒くさいので
NICのツールで大抵変更できるようになっている。
ベンダーコードの部分まで変更できちゃったりするけど。
ipconfigにはそういった機能はないんではないかね。
ありそうなのはデバイスドライバの設定メニューのところとか。
03022752007/07/17(火) 10:12:03ID:7P0i756L
>>281
ありがとうございます。
難しそうですが試行錯誤してみます。(実はチンプンカンプンです・・・orz)
0303nobodyさん2007/07/17(火) 10:27:38ID:???
簡単な掲示板をつくってソースをみてもらいたいのですが板ちがいでしょうか?
0304nobodyさん2007/07/17(火) 10:33:51ID:???
>>303
露出マニアのためのスレがあるから探せ
0305nobodyさん2007/07/17(火) 10:57:54ID:???
>>301
ifconfigじゃたぶんムリ
たぶんLinuxの場合ioctl(2)とかを叩く必要があるはず。
その手のユーティリティがあるかもしれないけど。

それと、TCP/IPのソケットから相手先のMACアドレスを知る方法ってあるの?
つか、MACアドレスってイーサネットのルーティングでしか使わん情報で、
PPPとか、IPを経由した時点で消えると思っていたけど...
IPv6ならサフィックスとしてMACアドレスを使う場合もあるはずだから取れるかも。
0306nobodyさん2007/07/17(火) 11:04:17ID:uhiZpK63
include_onceで読み込んだファイルをクライアントのメモリに保存したいのですが
そういう関数ってありますか?
0307nobodyさん2007/07/17(火) 11:15:28ID:???
httpもphpもincludeも全否定か
0308nobodyさん2007/07/17(火) 13:03:01ID:???
>>306
Cookieにぶちこめば
0309nobodyさん2007/07/17(火) 13:38:28ID:uhiZpK63
Aページを開いたときに「果物ファイル」を開いて
Bページを開いたときに「音楽ファイル」を開いて

で、AページとBページを行き来すると、
ページを開くたびにファイルを読み込むのも負荷が気になるんです。
別ページに移動してまた同じページにもどってもinclude_onceはまたファイルを読み込みますよね?
Cookieだとさすがに量が多いので別の方法ってないでしょうか?
0310nobodyさん2007/07/17(火) 13:47:26ID:???
>>309
サーバーサイドなPHPでクライアントのメモリはどうこう出来ないだろ。
クライアント側に置きたいならクッキー以外無いでしょ。

いまいちやりたい事が分からないから、やりたい事と想定しているファイルの容量と種類を晒せば何か助言があるかもね。
0311nobodyさん2007/07/17(火) 13:52:53ID:???
つまり、クライアントにキャッシュとして残しておきたいんでしょ?
それはクライアント側が決めることだから無理。
0312nobodyさん2007/07/17(火) 13:59:28ID:???
クライアントで読み込んだHTMLをキャッシュさせるという方法なら…
ただし更新させるのが難しくなるがな
0313nobodyさん2007/07/17(火) 14:04:09ID:???
負荷云々っていうことにこだわるような質問レベルとは思えないけど、
そんなに気になるなら、PHP無関係なように静的なhtmlを吐き出しておけばいいやん。
それ以前に、サーバ側でキャッシュ使って改善できんのかとも思う。
0314nobodyさん2007/07/17(火) 14:05:47ID:???
>>312
includeの話であれこれなってるから、DB使った動的なことをそんなにやってない気がする。
0315nobodyさん2007/07/17(火) 14:11:52ID:uhiZpK63
AページとBページを統一して、GETでファイルの読み込みを振り分ける方法にしようと思います。
ファイルの更新日時をクッキーに記録して、クッキーに保存されている記録と照らし合わせて
新しかったら読み込ませず、古かったらinclude_onceをかませようと思います。

いろいろと助言くださって助かりました。ありがとうございます
0316nobodyさん2007/07/17(火) 14:18:31ID:???
>>315の考えは思いつかなかったなあ
それぱくる
0317nobodyさん2007/07/17(火) 14:26:43ID:???
>>315
目的が不明瞭だが もし使って良いのなら、
ajax + レスポンスでhtmlを返して、<div id="hoge"></div> の間をinnerhtml書き換えすることでうまくいく。
(部分更新するデータのみ読み込み出来る。)
0318nobodyさん2007/07/17(火) 15:14:48ID:???
123
0319nobodyさん2007/07/17(火) 15:58:21ID:R00cIuyl
携帯用サイトの開発をしているのですが、
絵文字を表示するときは、Unicodeでの表示が良いのでしょうか?
3キャリア対応でキャリア別に絵文字を表示させたいのですが、
何かアドバイスがあればよろしくお願いします。
0320nobodyさん2007/07/17(火) 16:37:38ID:???
>>315
うちも似たようなことやってる。include(require)は結構応用がきいて便利。
メソッド内部でよみこめば$this参照ができてメソッドを使えるし、部品ごとにわけれてソースが綺麗になる。
なにより分解していくとかなり使い回しを意識してコードを書けてる気がする。

>>319
なんでもいい気がする。Unicodeにすれば
?(SJIS)と?xE63E;(Unicode)で同じ文字になってたらそれでいいんじゃない
0321nobodyさん2007/07/17(火) 19:04:22ID:k2OQL4pV
配列の並び替えについてなんですが、
forの繰り返し処理で値を参照し、数字が出た場合
その要素を、その数字のキーを持つ配列の直後に並べ変えたいのですが、
可能ですが?

(例)
rei[1]="いぬ"
rei[2]="ねこ"
rei[3]="こねこ"
rei[4]="1"
rei[5]="ぬこ"

を

rei[1]="いぬ"
rei[2]="1"
rei[3]="ねこ"
rei[4]="こねこ"
rei[5]="ぬこ"

こんな感じです。

宜しくお願いします。
0322nobodyさん2007/07/17(火) 19:09:18ID:???
意味がわからない
0323nobodyさん2007/07/17(火) 19:12:15ID:???
よくわからんがヒントをやろう

・配列のキーを取得
・キーに1を足す
・配列の値に↑の値があるかチェック

あとは自分で考えろ
0324nobodyさん2007/07/17(火) 19:14:54ID:???
ある別サーバーのサイトのCGI( http://example.com/hoge.cgi?m=test )を
phpからプロクシ的に操作したいのですが、
どのようにすればよいでしょうか?

readfile( 'http://example.com/hoge.cgi?m=test' );
としてみましたが
script not found or unable to stat: /home/taro/public_html/hoge.cgi
となぜかphpを設置したサーバーのパスで、「ファイルが存在しない」というエラーが出ます
0325nobodyさん2007/07/17(火) 19:21:19ID:???
誤爆です。聞くスレ間違えました
0326nobodyさん2007/07/17(火) 19:56:28ID:???
なんかだんだん、エスパーレスが必要になってきたな。
0327nobodyさん2007/07/17(火) 20:37:42ID:???
すみません
今、php5.2.3をインストールしてphp.iniの編集をしてたんですが、
mbstring.script_encoding の指定がありません
(以前使ってた5.2.0ではあって、euc-jpを指定しています)
これは気にしなくていいものなんですか?
0328nobodyさん2007/07/17(火) 20:45:29ID:???
すみません、解決しました
0329nobodyさん2007/07/17(火) 21:49:25ID:iq9KHvpN
PHPを勉強しています。
基本は理解できているのですが、
classを利用したプログラミング、また、
オブジェクト指向の概念が理解できません。
本を買ってclassの基本構造などは理解しましたが、
自分で書くとなるとどのような場面で
どういったclassを書けば良いのか
さっぱり検討がつかない状態です。
このような段階(レベル)から一段ステップアップする為には
どうしたらよいでしょうか?
習得にあたって参考になった書籍や、
経験に基づく習得方法などを教えてください。

購入した書籍
■はじめてのPHP5プログラミング エキスパート編 (単行本)
■いちばんやさしい オブジェクト指向の本 (新書)
0330nobodyさん2007/07/17(火) 21:56:16ID:???
いい加減、OOPわかりませんできません
に対する内容をテンプレに入れたらどうだ
0331nobodyさん2007/07/17(火) 22:06:09ID:???
>>329
オブジェクト指向分析・設計関連の本でも探してみては
あとは経験かなぁ

補助本としてなら
デザインパターン入門 結城浩
リファクタリング入門 結城浩
UMLモデリングのエッセンス マーチン・ファウラー
0332nobodyさん2007/07/17(火) 22:09:59ID:???
読んで学ぶのもあるけど、経験してから、読んで、
自分の経験と記述を比較してみるってこともしないとね。
オブジェクト指向って、実践知の最たるものだから。
ごちゃ混ぜの中から自分の経験をパターンの合わせてトレースしてみること。
03333292007/07/17(火) 22:24:46ID:iq9KHvpN
>331,332
早速のレスありがとうございます。
経験が重要ということですね。
仕事で書いているわけではないので、参考書籍を紐解く以外に
なかなか経験値を積めないのが悩みです。

各種ライブラリやフレームワーク(MVC)などの
次のステップに早く進みたいので、
classを利用したプログラミングをなんとかマスターしたいです。

また、Rubyでオブジェクト指向を理解したという人や、
Objective-Cなどでweb以外ものを作るとわかるかもという意見もあるようですが、その他にも分かり易い方法などがあればアドバイスをお願いします!
0334nobodyさん2007/07/17(火) 22:32:46ID:???
具体的にあげていったらきりがないし漠然と説明しようとしたら意味分かんなくなる。
意識しすぎて無闇に不必要な物まで小分けして可読性が低くなったら本末転倒だしね。
>>332の言ってるように実際に概念的な事柄だけ頭の隅に置いておいて
幾つか自分で作ってから本を読んで当てはまりそうな部分を掘り下げて
リファクタリングしていったほうがいいんじゃないかと
オブジェクト指向を理解していない俺様が講釈たれにきましたよ。
03353322007/07/17(火) 22:33:21ID:???
>>333
こんなところにぐだぐだレス書いてる暇があったら
プログラムの一行でも書け
0336nobodyさん2007/07/17(火) 22:34:55ID:QKoDyMoX
>>327です わからないのでどなたか教えてください

>>328
わざとですか? たまたまですか?
0337nobodyさん2007/07/17(火) 22:37:12ID:???
>>333
ライブラリやフレームワークなんてオブジェクト指向の最たるものだから
順番やステップとかきにしないでやりたいことを
とりあえずやってみた方が飛び越えてから理解できるってこともあるし
やってみてもいいんじゃまいか?
0338nobodyさん2007/07/17(火) 22:37:38ID:???
>>333
だからウダウダ言ってないで
PEARみたいなライブラリなりFWなりのソースひたすら読んで
自分でとにかく書いて気づいていくしかねーんだよこのタコ
「OOPを理解した!」なんてもんはそんな気がするだけだ
OOPに近道なんざねーよ
0339nobodyさん2007/07/17(火) 22:42:18ID:???
以上>>333叩きは終了


次の質問を受け付けます
0340nobodyさん2007/07/17(火) 22:50:15ID:???
可哀想に、、
OOPは自分が必要に思えるようになるまで必要ない。(仕事の場合は除く)
0341nobodyさん2007/07/17(火) 22:50:51ID:???
>>339
妻が最近夜の相手をしてくれません。
0342nobodyさん2007/07/17(火) 22:59:59ID:???
>>336
とりあえず>>1を読んでニセモノが出る理由を考えてください。
0343nobodyさん2007/07/17(火) 23:00:34ID:???
>>341
モデルのような奥様なら、観るだけで自分の欲望をコントロールできると思います。
0344nobodyさん2007/07/18(水) 00:45:04ID:???
>>341
最悪の場合、奥さんが第三者にfuckされている可能性があります
0345nobodyさん2007/07/18(水) 00:50:01ID:???
植物だって生きているのに、動物を殺していないから、
俺たちは殺生していないと詭弁を弄するアホな坊主とオマエら一緒だな。
恥を知れよ。
0346nobodyさん2007/07/18(水) 00:53:21ID:???
↑頭わるそうだな
0347nobodyさん2007/07/18(水) 00:58:57ID:???
お決まりなので・・・・


オマエモナー
0348nobodyさん2007/07/18(水) 01:08:59ID:???
>>336
--enable-zend-multibyte
0349nobodyさん2007/07/18(水) 01:13:43ID:???
>>348
もうすこし具体的に書いていただかないとわかりません。
おねがいします
0350nobodyさん2007/07/18(水) 01:29:22ID:???
PHPをインストールする際に--enable-zend-multibyteと--enable-mbstringオプションを
指定することで、mbstring.script_encodingディレクティブが有効になる。

これはソースをSJISで書いているときに必要になるぐらいのもの。
0351nobodyさん2007/07/18(水) 02:02:13ID:PiKxEDAI
php 5.1.6 Apache 2.0.52 CentOS 4 です。

以下の様にpreg_replaceで$srchtmlに格納されてますタグの置換を行っています。
$styleには
color="#FF0000" size="4"
がちゃんと取り出されてるのですが、サブルーティンでexplodeしようとすると
検索されません。
Array[0]=' color="#FF0000" size="4"'
となってしまいます。試しに、ほかのキー「FF」で試しても同じでした。
試しにfunction fontcss内で
$myarray = explode(" ","hoge hoge huga huga");
としますと、こちらは問題なく、検索されて配列になります。
ど、どなたかお知恵を。。。


$search = array ('/<font(.[^>]*)>/','!<div id="([0-9][0-9])">!');
$replace = array ($this->fontcss("$1"),$this->divconv("$1"));
preg_replace($search, $replace, $srchtml);

function fontcss($style){
$myarray = explode(" ",$style);
....
}
0352nobodyさん2007/07/18(水) 02:08:55ID:???
5.1系はバージョンアップしてもいいんじゃないのか
0353nobodyさん2007/07/18(水) 02:10:46ID:???
\bもためしたの?
0354nobodyさん2007/07/18(水) 02:42:34ID:???
>>351
それだと$replaceにはその時点での関数の返り値が入るだけになってしまうから、
おそらくあなたがしたいのはこちらではないかな?
http://jp.php.net/preg_replace_callback
0355nobodyさん2007/07/18(水) 03:08:03ID:???
>>354
ありがとございます、まさしくそれでした。
0356nobodyさん2007/07/18(水) 08:59:29ID:???
>>329にリアル嫉妬した
0357nobodyさん2007/07/18(水) 12:58:43ID:FfDpKpOg
アップロード時のローカルファイルアドレスはどこに格納されているのでしょうか
mixiでは「c:\hoge\123.jpg」と確認ページに出てるのですが。
print_r($_FILES);
print_r($_REQUEST);
print_r($_POST);
ファイル名しか見当たりません…
0358nobodyさん2007/07/18(水) 13:02:33ID:???
php.iniで指定された場所に保存されるけどサーバープロセスが終わると消える。
0359nobodyさん2007/07/18(水) 13:05:23ID:EIaU60X9
ボタンをクリックしたらデータを追加するようにするにはどうしたらいいんですか?
0360nobodyさん2007/07/18(水) 13:15:56ID:???
>>357
どこにも格納されていない
なのでJS使って自前でPOST

>>359
何のボタンなのかわからんので答えられない
0361nobodyさん2007/07/18(水) 13:23:47ID:EIaU60X9
>>360
追加ボタンを押したらSQL文を使ってデータベースに追加したいんです
0362nobodyさん2007/07/18(水) 13:38:36ID:???
>>361
データベースに接続して
インサート文を実行すればいい
■ このスレッドは過去ログ倉庫に格納されています