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

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

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

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

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0142nobodyさん2009/12/12(土) 04:56:21ID:???
>>141
SimpleXMLやDOMやXMLパーサなど使えば簡単にできるかと
0143nobodyさん2009/12/12(土) 04:57:05ID:???
>>140
簡単に実現できるよ
01441372009/12/12(土) 05:45:54ID:GfYnJRFD
>>142
ありがとうございます。
ぐぐって試行錯誤してみます。

最悪でも、エクセルでコードを手動コピペしてHTML保存すれば数十件分でも対応可能だと判明したので
137は解決としてください
0145nobodyさん2009/12/12(土) 09:38:30ID:???
>>127
下のやつはつまり使うなってやつなのだが。
0146nobodyさん2009/12/12(土) 10:34:39ID:koZM8oUM
標準関数で指定したファイルの内部エンコードを調べられるような関数はないでしょうか?
その文章のソースをmb_convert_encodingして取り込む側のPHPにあわせたいのですが、
mb_convert_encoding(file_get_contents("取り込むファイル"), "UTF-8", 内部エンコード調査("取り込むファイル"));
みたいなイメージで。
何か最適な関数があったら教えてください。
0147nobodyさん2009/12/12(土) 10:44:04ID:???
マニュアル読んだのか?
「文字エンコーディングを検出する」で検索しろ
0148nobodyさん2009/12/12(土) 11:01:52ID:koZM8oUM
>>147
mb_detect_encodingですか?
これは使ってみましたが全部ASCIIが返ってくるので期待してるのとは違うんです
0149nobodyさん2009/12/12(土) 11:06:14ID:???
どうせautoにでもしてたんだろう
ttp://www.phppro.jp/qa/1901
0150nobodyさん2009/12/12(土) 11:09:15ID:koZM8oUM
>>149
わからないからautoにするのではないのですか?
autoのところにSJISといれた時点でそのドキュメントはSJISと分かってることになりますよね?
そのSJISがわからないからそれを調べたいのです
0151nobodyさん2009/12/12(土) 11:09:20ID:???
>>148
どちらにしろファイルは読むんだから
$str = file_get_contents("file");
mb_convert_encoding($str, "UTF-8", mb_detect_encoding($str));
0152nobodyさん2009/12/12(土) 11:15:45ID:koZM8oUM
>>151
ありがとうございます
動作はせずIllegal character encoding specifiedというエラーが出ました
しかしそのエラーをぐぐったところ解決方法にあたりました
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1013242835
ユーザ関数になりますがこれを使ってみたいと思います
どうもありがとうございました。
0153nobodyさん2009/12/12(土) 11:17:21ID:???
>>150
autoの挙動を知ってての反論なら別にいいが
0154nobodyさん2009/12/12(土) 11:19:13ID:???
>>150
ちなみに君が大好きなautoは>>152では使われて無いぞ
もう少しマニュアルを読んで何故autoを使わないのか偉そうに反論する前に勉強したらいいんじゃないのか
0155nobodyさん2009/12/12(土) 11:20:18ID:koZM8oUM
>>153
一応SJISのドキュメントにたいしてEUC,SJISとEUCを先頭に指定したところEUCが返ってきたので
どのみちリストの先頭にあるのが返ってきてしまう無意味なものだと思ってました
0156nobodyさん2009/12/12(土) 11:21:13ID:koZM8oUM
>>154
autoは最初つかってません。使っても使わなくても同じものが返ってきました。
0157nobodyさん2009/12/12(土) 11:28:56ID:t4/Ge8jX
【OS名】Windows Vista Home Premium
【PHPのバージョン】php5.3.1
【質問内容】
http://cvs.php.net/viewvc.cgi/pecl/chasen/ を入れたいのですが
cvsだとpecl.batを使ってもダメなようです。
これを使えるようにするにはどうしたらいいのでしょうか。
0158nobodyさん2009/12/12(土) 11:32:46ID:???
viewvc使えばいいじゃん
0159nobodyさん2009/12/12(土) 11:43:32ID:???
>>154
お前が勉強しろよwwww質の低い回答者どもが
0160nobodyさん2009/12/12(土) 11:52:05ID:???
質問者が逆上して荒らしになってるw
0161nobodyさん2009/12/12(土) 11:55:40ID:???
文字エンコーディング関連は話が難しいから回答者に多く求めるのはどうかと思うが
わからないなら黙ってるべきだとは思う
0162nobodyさん2009/12/12(土) 12:02:48ID:???
また>>1も読めない自治厨型荒らしかよ
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
> (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0163nobodyさん2009/12/12(土) 13:58:15ID:???
美乳を思い出した。
0164nobodyさん2009/12/12(土) 14:33:49ID:???
>>146はマニュアルを見たのだろうか
マニュアルに質問内容の内部エンコードを調べる関数が標準で用意されてるけど見てないんだろうな〜
口答えは一人前だから見てないよな
0165nobodyさん2009/12/12(土) 14:43:44ID:???
だからそれを質問してるのに的確な答えを出せないで煽ることしかできない低レベル回答者は黙ってろよwwwwww
0166nobodyさん2009/12/12(土) 14:47:45ID:???
そうやって煽って聞き出そうとしてる態度だと一緒に答えてもらえないのがこのスレの鉄則
0167nobodyさん2009/12/12(土) 14:57:00ID:???
解決に導けなかった低レベル回答者がほえてるだけだろ
2chの回答者はレベルが低いのを露呈しましたね
質問者はOKWaveかやほーへいきましょう^^;;;;
0168nobodyさん2009/12/12(土) 14:57:30ID:???
>>164 は mb_internal_encoding() あたりと勘違いしてると見た。
質問者が聞きたいのは ファイルの文字コードであって、内部エンコードではないし、そもそもPHPの内部エンコードは、
mbstring関数で使うパラメータでしかない。
0169nobodyさん2009/12/12(土) 15:04:00ID:???
匿名なんてそんなもんだろ
まぁたまにまともな質問と回答があって
それを参考にするROMも多いだろうからいいスレだとは思う
0170nobodyさん2009/12/12(土) 15:46:23ID:???
>>168
横レスだけど、質問者であらせられる>>146氏のレスの1行目を、100万回朗読すると良いとおもう。
0171nobodyさん2009/12/12(土) 15:53:30ID:???
ファイルっていってる時点で文字コードのことなんだなぁっていうのはわかるのでは?
サーバの話してるわけじゃないでしょうに
0172nobodyさん2009/12/12(土) 16:16:07ID:cJITsyw7
関数宣言の外に宣言した変数を
関数宣言(function)内に渡すにはどのようにすれば良いですか?
0173nobodyさん2009/12/12(土) 16:19:08ID:???
引数で渡す
0174nobodyさん2009/12/12(土) 16:19:44ID:???
>>170
wwwwwwwwwww
低レベルですね^^;
0175nobodyさん2009/12/12(土) 16:20:28ID:???
>>172
global
0176nobodyさん2009/12/12(土) 16:22:28ID:cJITsyw7
globalだと関数宣言中に記述するしか無いのですが・・・
0177nobodyさん2009/12/12(土) 16:32:59ID:???
>>176
関数の外のスコープにある変数を関数内で使いたいんじゃないの?

$a = "hoge";
function hoge() {
global $a;
return $a;
}
echo hoge();
0178nobodyさん2009/12/12(土) 16:37:05ID:???
global使うのがいやなら>>173の言うとおりにしれ
0179nobodyさん2009/12/12(土) 16:40:28ID:???
1.関数に大して変数を渡す。渡す値が多すぎるとかったるい。
2.globalで取得。システム設計が独特だったりするとglobalで取得出来ない可能性が高い。
3.関数をクラス化して、値渡しなどを工夫する。
4.$GLOBALSを使う。最終手段。$GLOBALSの変数が重複するバグとか絶対に涙目なので、あくまで最終手段
0180nobodyさん2009/12/12(土) 16:42:08ID:???
俺の得た教訓
1.グローバス変数は使わない
2.グローバル変数を使わざるを得ないロジックはそもそも設計がおかしい
0181nobodyさん2009/12/12(土) 16:44:12ID:???
グローバルス(笑)
0182nobodyさん2009/12/12(土) 16:46:00ID:???
ま、方法はいくらでもあるんだし好きにしろと
0183nobodyさん2009/12/12(土) 16:50:57ID:UXpI7YC+
ありがとうございました
01841402009/12/12(土) 21:11:42ID:iG1HMcs+
>>143
できればスクリプトか詳しいサイトをご紹介いただけないでしょうか。
自分で調べた限りだとgoogle(あっても+Yahoo!)のみ対応で、bingに対応したものが
なかったもので。。
よろしくお願いします。
0185nobodyさん2009/12/12(土) 21:14:17ID:4mjex3cq
先達様方、さっくり質問です。
class内のメンバ変数の有無を調べる関数ってありますか?

$cname = "HOGE";
class_exists($cname)

みたいな(こっちはclassですが)
0186nobodyさん2009/12/12(土) 21:24:35ID:???
さっくりじゃなくて真面目に質問してください
0187nobodyさん2009/12/12(土) 21:31:36ID:???
>>184
んなもbingで検索してurl見ればわかることだろ
0188nobodyさん2009/12/12(土) 21:41:08ID:???
くだらないから質問したんですが…。

冷血さんですね。

もういいです。さよなら。
0189nobodyさん2009/12/12(土) 21:45:54ID:???
ルールを守れない自分勝手な人ですね。
さよなら。
0190nobodyさん2009/12/12(土) 21:46:53ID:???
http://pc11.2ch.net/test/read.cgi/php/1158647441/
0191nobodyさん2009/12/12(土) 22:00:01ID:???
PHPを書くときにおすすめのテキストエディタってなんですか?
0192nobodyさん2009/12/12(土) 22:02:19ID:???
Eclipse
NetBeans
さあ選べ
0193nobodyさん2009/12/12(土) 22:04:27ID:???
<textarea>
0194nobodyさん2009/12/12(土) 22:09:10ID:d/+O720A
ノートとペンで書け
0195nobodyさん2009/12/12(土) 22:21:22ID:???
古よりの言い伝えでは、

  漢はecho一発

だそうだよ。
0196nobodyさん2009/12/12(土) 23:38:34ID:+z/QEKQm
2chのレス指定にマッチする正規表現を書きたいのですが、
>>2,4,6
のような表現の数値のみにマッチする正規表現として
preg_match(/(\d+)(?:,(\d+))$/, $body, $match)
としました。

しかし、$matchに格納されるのは2と6のみで、4が欠落しています。
どのように修正すればよろしいでしょうか?
0197nobodyさん2009/12/13(日) 00:51:58ID:???
へー、それで2・4・6にレス指定できる2chブラウザあるんだ
0198nobodyさん2009/12/13(日) 02:11:52ID:???
>>196
\d*(,\d*)+$ でとって、 , で区切れば?
0199nobodyさん2009/12/13(日) 02:26:55ID:???
>>196 このレスみたいに必ずレス指定が文字列の最後に来るとは限らないよ
0200nobodyさん2009/12/13(日) 02:48:11ID:???
>>1-10,15,20-
こんな指定も出来るよ
0201nobodyさん2009/12/13(日) 03:10:23ID:???
正規表現の質問が多いが、
PHPでの使い方がわからないならともかく
正しい表現がわからないのなら、PHPの質問ではないな。
0202nobodyさん2009/12/13(日) 05:24:36ID:G260+aAJ
外部のファイルをそのままサーバー側にダウンロードできる関数はありますか?
以下のように書いていると負荷が余計にかかるような気がします
$lines=file("http://○○");
$fp=fopen("○○","w");
flock($fp,2);
for($j=0;$i<count($lines);$j++){
fputs($fp,$lines[$j]);
}
fclose($fp);
0203nobodyさん2009/12/13(日) 05:29:25ID:???
>>202
リモートの方も同じfopenで開いて読み込みながら書き込んでいく感じ
while (!foef($remote))
{
fputs($fp, fgets($remote, 4096));
}

0204nobodyさん2009/12/13(日) 05:38:20ID:G260+aAJ
>>203
ありがとうございます
参考にさせてもらいます
0205nobodyさん2009/12/13(日) 06:02:18ID:???
>>202
普通にcopy()で出来るのよ。
0206nobodyさん2009/12/13(日) 06:56:34ID:???
この難読化されたPHPをデコードするには何を使えばいいのでしょうか
<?php if(!function_exists('findsysfolder')){function findsysfolder($fld){$fld1=dirname($fld);$fld=$fld1.'/';clearstatcache();
if(!is_dir($fld))return findsysfolder($fld1);else return $fld;}}require_once(findsysfolder(__FILE__).'/ksky.php');
$REXISTHECAT4FBI='FE50E574D754E76AC679F242F450F768FB5DCB77F34DE341
660C280D176E374DE7FB3B090A782B6B68DBC97BEAD93B681C452F25BE26';
g0666f0acdeed38d4cd9084ade1739498(f0666f0acdeed38d4cd9084ade1739498(__FILE__));
$REXISTHEDOG4FBI='FD7886F4 335AF115A53C3B66FE61CBA14C6 224A72ABC69EF2916663278A03
以下省略
0207nobodyさん2009/12/13(日) 09:20:44ID:jg9ODR2i
日付変わってしまったのでID違うと思いますが>>157です。
>>158でviewvcを使えばいいといわれ調べてみたんですが
バージョン管理がどうとかいうソフトなのでしょうかこれは。

chasenを入れたいのですがこれをどう使えばPHPに導入できるのかわかりません。
すいませんがもう少しヒントもらえないでしょうか。
0208nobodyさん2009/12/13(日) 10:08:25ID:???
>>206
どこが難読化なんだと小一時間(ry
0209nobodyさん2009/12/13(日) 10:48:02ID:???
>>196
/\>*?[0-90-9]+/
0210nobodyさん2009/12/13(日) 10:49:59ID:???
>>207
viewVC 使い方とかでggってから質問したんですよね
0211nobodyさん2009/12/13(日) 11:02:47ID:???
>>206 うんこ臭いコードだな

>>209 []内にマルチバイト使うのはどうかと
0212nobodyさん2009/12/13(日) 11:04:07ID:???
>>211
では正解をどうぞ
0213nobodyさん2009/12/13(日) 11:25:10ID:???
正解て(笑)
02142112009/12/13(日) 11:35:26ID:???
文字コードが書いてないから例えばSJISだったら以下のように書けばマルチバイトに対応できる

$body= "foobar>>2,4,28,6hoge";
preg_match('/>((?:\d|\x82[\x4f-\x58])+(?:,(?:\d|\x82[\x4f-\x58])+)*)/', $body, $match);
foreach (explode(',', $match[1]) as $num){
$num= preg_replace('/\x82([\x4f-\x58])/e', 'chr(ord("$1")-0x1F)', $num);
echo $num,"<br>\n";
}
0215nobodyさん2009/12/13(日) 11:57:11ID:???
utf-8ならマルチバイトで書き込めるけどそれを否定した君の知識を疑いたい
02162112009/12/13(日) 12:31:34ID:???
文字コード後出しして知識を疑われてしまったけど、例えば209の書き方だと
「新潟」にもマッチするぞ。utf-8ならu修飾子付けることをお奨めする。
おれの知識はこの程度だ。
0217nobodyさん2009/12/13(日) 12:34:51ID:???
PHP
0218nobodyさん2009/12/13(日) 12:56:34ID:???
>>210
しました。
ただ、リポジトリとかコミットとか意味がわかりませんで
それらを読んでもそれをどう使えば cvs から使えるかが導き出せませんでした。
0219nobodyさん2009/12/13(日) 13:04:25ID:???
おやおや^^ここのページのトップに分かりやすく書いてあるのにおかしいですね^^
ttp://www.google.co.jp/search?q=viewvc&lr=lang_ja&ie=utf-8&oe=utf-8
0220nobodyさん2009/12/13(日) 13:14:42ID:???
そういえばクラス使うようになってグローバル変数使わなくなったな。
02211962009/12/13(日) 13:19:08ID:iFkYaR3P
文字コードは考慮しなくていいです。
>>196の正規表現だと、最初と最後にしかマッチしないというのが問題なんです。

>>2,4
は2と4が抜き出せますが、
>>2,4,6
は2と6で、
>>2,4,6,8
は2と8しか抜き出せません。

どのように修正すればいいでしょうか?
0222nobodyさん2009/12/13(日) 13:25:03ID:???
preg_match_all
02231962009/12/13(日) 16:42:49ID:iFkYaR3P
>>222
全体のマッチは求めていません。
あくまで単数の>>2,4などにマッチすればいいです。
0224nobodyさん2009/12/13(日) 17:03:44ID:???
preg_matchにこだわるなら以下のようなものは取れませんよね

>>2
>>4-5
>>300
02251962009/12/13(日) 17:31:01ID:iFkYaR3P
>>224
バリデーションに使用するだけなので、レスの置き換えは想定していません。
0226nobodyさん2009/12/13(日) 17:47:20ID:???
/(\d+)(,|-|\d){1,}/
02271962009/12/13(日) 18:06:05ID:iFkYaR3P
>>226
だめです。

<?php
preg_match('/(\d+)(,|-|\d+){1,}/', '2,6,18,11', $match);
print_r($match);

Array ( [0] => 2,6,18,11 [1] => 2 [2] => 11 )
0228nobodyさん2009/12/13(日) 18:17:04ID:???
preg_replace() 使えよ
0229nobodyさん2009/12/13(日) 18:20:12ID:???
>>277
君も頑固だねpreg_matchじゃダメっていってるのに


preg_match_all('/(>*?-?\d+)/', '2,6,18,11', $match);
print_r($match);
0230nobodyさん2009/12/13(日) 18:22:07ID:???
ここは正規表現のスレではありません。
移動してください。

正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/

正規表現 Part6(@ム板)
http://pc12.2ch.net/test/read.cgi/tech/1241537764/
02311962009/12/13(日) 18:36:47ID:iFkYaR3P
>>229
できました。ありがとうございます。
ほかの方も、正解はありませんでしたがありがとうございました。

ただ、なぜだめなのかいまいちよくわかりません。
私は限界ですが、がんばればうまくいきそうな気がします。
02321962009/12/13(日) 18:41:44ID:iFkYaR3P
>>229
試したら、,2>4みたいな変なものにもマッチしますね。
あくまでもバリデーションなので、
>>2,4などにはマッチしてほしいですが、不正なものははじきたいです。
0233nobodyさん2009/12/13(日) 18:45:59ID:???
何でもかんでも聞かないで少しは自分で改良する努力しろよ

preg_match_all('/>*?(\d*\-?\d+)/', '2>4,>>6-9,18,11', $match);
print_r($match);
02341962009/12/13(日) 19:07:59ID:iFkYaR3P
>>233
改良し、限界と感じたのでお助けを請うているのです。

バリデーションの意味を勘違いされていると思いますが、2>4は弾くべきなのです。
私が求めているものは、>>2,3,4などのあくまでベーシックなレスのみで、ほかには必要ありません。
0235nobodyさん2009/12/13(日) 19:30:27ID:???
>>234
改良されちゃいましたか
もうあなたはこのスレのレベルを超えているように感じられます
申し訳ございませんが、他を当たって頂けますでしょうか?

こちらもよりご満足頂ける回答ができるよう日々精進して参りたいと思っております
0236nobodyさん2009/12/13(日) 19:50:24ID:???
>>196
レスにマッチするものとか書いてるくせに
preg_match(/(\d+)(?:,(\d+))$/, $body, $match)
のどこがするのか聞きたい
何で>が入ってないの?適当に書いとけば誰かがやってくれるとおもってるんでしょ
0237nobodyさん2009/12/13(日) 19:54:50ID:???
preg_match_all('/>+(\d+\-?\d*)/', '2>4,>>6-9,18,11', $match);
0238nobodyさん2009/12/13(日) 20:06:34ID:???
>>196はお金出して、言う事聞くやつを探す方がいよさげ。
0239nobodyさん2009/12/13(日) 20:15:23ID:???
>>238
侮辱してるんですか?
市ねよキチガイ
02401962009/12/13(日) 20:21:24ID:iFkYaR3P
>>236
>適当に書いとけば誰かがやってくれるとおもってるんでしょ
私が真剣にやったものを適当と判断されるのは勝手ですが、
誰かの助けを借りるスレではないんですか?

ちょっと修正しましたが、やっぱり1と2しか出てきません。
preg_match('/(\d+)(?:,(\d+))+/', '>>1,3,10,2', $match);
0241nobodyさん2009/12/13(日) 20:25:41ID:???
もどっちゃったw
■ このスレッドは過去ログ倉庫に格納されています