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

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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0671nobodyさん2009/04/21(火) 16:11:01ID:???
>>670
先ほど煽られたお方ですね、わかります
0672nobodyさん2009/04/21(火) 16:14:23ID:???
先に電話番号を置換すればいいんじゃね?
基本的に文字の並びがシンプルなのから置換するのがベスト
06736432009/04/21(火) 16:16:11ID:???
>>672
そうしてしまうと、
先ほどの例のような
0909999999@xxxx.ne.jp

<a href="tel:0909999999">0909999999</a>@xxxx.ne.jp
になってしまいます
ここはやはりメールアドレスで置換したいと思っています
0674nobodyさん2009/04/21(火) 16:17:29ID:???
リロードしてないで作業しろw
0675nobodyさん2009/04/21(火) 16:18:14ID:???
その前に、「与えられた文字列の中」の定義をパターン化する必要があると思う

まさか掲示板に書き込まれた内容とかじゃないよな・・・?
06766432009/04/21(火) 16:19:39ID:???
>>675
そういったものです
携帯で自分のサイトを作って、
CMSに内容を変更できるような仕組みなのです
0677nobodyさん2009/04/21(火) 16:20:04ID:???
名簿業者しかやらない処理
06786432009/04/21(火) 16:21:15ID:???
>>677
ええええ・・・・
そうなの・・・?
0679nobodyさん2009/04/21(火) 16:22:22ID:???
変換なんて誰でもやるだろ。業者は逆にリンクなんか利用しない。逆に危険だから。
0680nobodyさん2009/04/21(火) 16:23:32ID:???
> CMSに内容を変更できるような仕組みなのです

これどういう意味?


自分で新着情報とかそういうのに番号載せて、それにリンクつけるってこと?
それだったら<tel:0120000000>のような形式で記述してそれを置換すればよくね?
一般ユーザーから投稿された電話番号の置換はやめとけ
あと、ただの数字の羅列か電話番号かの判断などさまざまなパターンを考えれ
0681nobodyさん2009/04/21(火) 16:26:10ID:???
>>679
本人乙wwwwwwww
06826802009/04/21(火) 16:29:37ID:???
ちなみに俺の考えた電話番号マッチ

@preg_match_allで数字の羅列を全て取得
Aループさせて色々なパターンをマッチ

0Xで始まる10桁の数字かどうか
090or080or070で始まる11桁の数字かどうか
0120で始まる10桁の数字かどうか
etc

B一致したものを、変換後の数字に持たせる
Cループさせてstr_replaceとかで置換

書き方アバウトですまん。
あと他にいい方法あれば俺にも教えてくれ
06836432009/04/21(火) 16:35:59ID:???
>>680,682
なるほど・・・

>CMSに内容〜
これは、一般ユーザーの投稿内容でサイトの内容を変更する感じのサイトっていう意味でした
06846802009/04/21(火) 16:37:52ID:???
>>683
一般ユーザーが電話番号とか編集してそこにリンク貼るってこと?

個人情報漏洩の助長すんの?
06856432009/04/21(火) 16:41:07ID:???
>>684
うーん、クライアントの要望なんですが、どうなんでしょうね?
会社の電話番号とかじゃないでしょうか?
06866802009/04/21(火) 16:43:12ID:???
>>685
ああ、社内ネットワークで使うのか
電話番号だけ[]で囲ってもらうようにするとかすればいいんじゃないかな?
それか文字の先頭にTel:またはрつけてもらうとか

具体的にどのようなものを作るかによって変わってくるからなぁ
0687nobodyさん2009/04/21(火) 16:44:00ID:???
本質とは違うところで叩きたいやつばっかだな。どういう条件で動かすかもわからないのに。
06886432009/04/21(火) 16:47:45ID:???
>>686
なるほど、何かしら条件を付けてもらうことにします
ありがとうございました
0689nobodyさん2009/04/21(火) 16:57:51ID:yGbAtJxQ
preg_replace("/([^\"])(hoge)([^\"])/","\\1foo\\3",$str)
タグの中がちゃんとクォートされてるならこれだけでいいんだけどね
0690nobodyさん2009/04/21(火) 16:59:23ID:???
>>689
ちゃんとログ読め
途中で仕様変わったぞwwwwwww
06916432009/04/21(火) 16:59:53ID:???
>>689
ごめんなさい
仕様を一部変更しました
0692nobodyさん2009/04/21(火) 19:35:57ID:???
$file = file("textdata.txt");
foreach ($file as $v) {
echo $v."
0693nobodyさん2009/04/21(火) 19:37:46ID:gWZ6QvqO
$file = file("textdata.txt");
foreach ($file as $v) {
echo $v."<br>";
}

textdata.txtがあります
このファイルはオフラインで更新した後に、サーバにアップロードします
この場合textdata.txtの内容を出力するときにhtmlspecialcharsは行うべきでしょうか?
0694nobodyさん2009/04/21(火) 19:41:39ID:???
textdata.txtは他人はいじるの?
06956932009/04/21(火) 19:49:32ID:gWZ6QvqO
いじりません
私が自宅のパソコンで編集してアップロードするだけで、他の人は一切編集することがありません
0696nobodyさん2009/04/21(火) 19:57:41ID:???
>>695
そしたらエスケープはしなくてよい。
自分でメモ帳で手打ちでHTMLを編集して
自分のホームページをアップロードしてるのと同じ。
0697nobodyさん2009/04/21(火) 19:59:20ID:W2YbvY8A
すまない/usr/bin/phpでhoge.phpをsystem()関数を利用して実行しようとしてるんだけど、
実行してもfalseが返ってくる。ほぼまる一日悩んでるんだけど、よくあるFAQがあったら教えてください
OSはCentOSでPHP5.1.6 Apache2.2.3
php.iniのsafe_modeはoffにしてあって、シェルから目的とするphpを実行するとしっかり動作するんだが、
system()から実行できない・・・
0698nobodyさん2009/04/21(火) 20:02:20ID:???
肝心のどう書いたかぐらい書けばいいのに
06996972009/04/21(火) 20:10:44ID:W2YbvY8A
>>698
ん、俺ですか?
0700nobodyさん2009/04/21(火) 20:39:39ID:???
>>697
以前、同じような書き込みを見たことがあるような記憶があるような。
bash -c php うんたら でもダメなの?
0701nobodyさん2009/04/21(火) 20:47:43ID:???
>>696
トロイの木馬に感染して自分のPCから悪意のあるコードがアップロードされたら?
0702nobodyさん2009/04/21(火) 21:00:07ID:???
悪意のあるHP管理者がファイルをアップロードしたらマズくない?
サニタイズされてたほうがいいんじゃないの?
0703nobodyさん2009/04/21(火) 21:23:43ID:???
>>702
おまえはなにをいってるんだ
0704nobodyさん2009/04/21(火) 22:04:48ID:uVsldpzX
classに配列をセットして読み込みたいと思っています。

// class内のメソッドとします。
function array_list($key,$val){
$this->list = array($key=>$val);
return $this->list;
}

として

$obj->array_list("title","てすと");
$obj->array_list("name","あああ");

を実行ファイルに記述して、class内に配列の値を蓄積したいのですが、
1つしか入りません。どこをどう変えたらいいのでしょうか?
0705nobodyさん2009/04/21(火) 22:12:04ID:???
$this->list[] = array(... あるいは array_push($this->list, array()); でどうか
詳しくはマニュアルを読め
0706nobodyさん2009/04/21(火) 22:23:58ID:???
>>702
>>695が多重人格の可能性もあるからってことか。セキュアだなおまえは
0707nobodyさん2009/04/21(火) 22:59:38ID:???
>>704
$this->list = array($key=>$val);

ここで上書きしてるからそうなるんだよ

$this->list[$key] = $val;

にすればよい
0708nobodyさん2009/04/21(火) 23:06:23ID:???
>>706
一般論として考えるならこの手の類の問題は
なるべくなら最悪の可能性を考えて設計すべきだけど、
絶対に他人が触らず自分も忘れないという前提なら構わないよな

ただ、ちょっとした汎用関数を通すぐらいでカバーできるのなら、
最低それはしておくべきのような気がする
設計思想や仕様以前の安全対策として
0709nobodyさん2009/04/21(火) 23:10:54ID:???
text/plainでもどう処理されるか分からないからな
0710nobodyさん2009/04/21(火) 23:20:21ID:???
>>706
他の誰かが不正侵入して書き変えてたらどうするの?
0711nobodyさん2009/04/21(火) 23:33:40ID:???
>>710
サイト乗っ取られたらどうするってのと、同じレベルの話に聞こえるけどな。
これアップローダの話じゃないんだろ。

っていうか、 textdata.txtに入ってるのがHTMLだったらhtmlspecialcharsしちゃアカンし、
テキストだったらしといた方がラクだろ。
0712nobodyさん2009/04/21(火) 23:37:59ID:???
>>693を見る限りhtmlを出力するみたいだけど
0713nobodyさん2009/04/21(火) 23:41:38ID:???
html「に」出力することはわかるけど、
<br>を行末に添付しているから、.txtがhtmlでないことはわかる
だからエスケープ処理しとくべきかもね
0714nobodyさん2009/04/21(火) 23:43:54ID:???
無知な野郎が多いなww
エスケープ刷る必要ねえだろw
0715nobodyさん2009/04/21(火) 23:45:41ID:???
>>714
<test>とかがテキストファイルにあったら、
ブラウザに表示されなくないか?
0716nobodyさん2009/04/21(火) 23:57:59ID:???
>>710
txtは書き換えるのにソース書き換えたりはしないなんてかわいい侵入者だな
0717nobodyさん2009/04/22(水) 03:30:58ID:JOPttRIE
>>697

/usr/bin/php ←これが間違ってるか
使えないコマンドを発行してる。
systemの中のコマンドをlsとか簡単なコマンドに変えてやってみ。
あとphpが/usr/bin/以外にないかfindしてみ
0718nobodyさん2009/04/22(水) 14:02:27ID:1Gt+zU8A
バージョン情報を表す正規表現を書きたいのですが、うまく実現できません。
条件としては数値部分[0-9]に関しては1文字以上の可変です。

以下の値は通過してほしい値です。
0.1
1.1
11.1
1.2.3.4
11.1.1.11111

以下の値は許可しない値です
1
.1.1
1.1.
1..1

始まり部分は以下のようになります。
/^\d{1,}\.\d{1,}〜$/
〜以降が思いつきません。

以上の形式です。どなたかお力添えをお願いします。
0719nobodyさん2009/04/22(水) 14:07:39ID:???
勘だけど/^\d+(?:\.\d+)+$/D
0720nobodyさん2009/04/22(水) 14:11:24ID:???
(1)1文字以上の数字で始まる
(2)ドット+1文字以上の数字 又は 1文字以上の数字
(3)(2)が1回以上続く

でよかないですか?
07217182009/04/22(水) 14:15:35ID:1Gt+zU8A
>>719
希望通りの動作をしました。ありがとうございます。
ついでにD修飾子の意味を教えていただけるとありがたいです。
0722nobodyさん2009/04/22(水) 14:17:56ID:???
まずググりました?
07237182009/04/22(水) 14:21:18ID:1Gt+zU8A
>>722
正規表現内で使用(\D)すると[^0-9]ということは分かりましたが
修飾子として使用するとどのような動作になるのかを明記しているサイトを見つけることができませんでした。
0724nobodyさん2009/04/22(水) 14:24:26ID:???
ググるといろいろ出てますねぇ・・・
ttp://www.google.co.jp/search?hl=ja&q=%E8%A3%85%E9%A3%BE%E5%AD%90%E3%80%80D+%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=
07257182009/04/22(水) 14:30:29ID:1Gt+zU8A
>>724
装飾子ってのは修飾子のことを指してるんだとは思いますが、
その検索結果内には/regex/Dではなく/regex\D/の解説結果しかないと思います。
>>723で明記した通りです。
0726nobodyさん2009/04/22(水) 14:33:58ID:???
ゆとりは疲れるぜw
マニュアルも読まないのなw
ttp://php.benscom.com/manual/ja/reference.pcre.pattern.modifiers.php
0727nobodyさん2009/04/22(水) 14:51:06ID:MEQMnIq/
ttp://upthx.net/phpinfo.php

上記のサーバーはapacheモジュール版のPHPをサポートしているでしょうか?

html中に

<?php
・・・
?>

で記述されたPHPコードを実行させられるかどうか知りたいです。
07287182009/04/22(水) 14:51:58ID:1Gt+zU8A
>>726
>>724で提示された検索結果内に私の求めていた結果がなかった
うえでの>>725の返答ですがゆとり扱いですか。
ゆとりなら私ではなく>>723を読まずによく分からない検索結果を張った>>724にあててください。
というかあなたが>>724であれば最初からマニュアルを提示してください。
0729nobodyさん2009/04/22(水) 14:53:20ID:???
ゆとりは恐ろしいな・・・・
0730nobodyさん2009/04/22(水) 14:57:15ID:???
教えてもらったら態度が急変した事にフイタ
0731nobodyさん2009/04/22(水) 15:17:27ID:???
>>727
phpinfo.php が動いてるんだから動くだろうよ。
Server API CGI/FastCGI
だからcgiモードだろうけど。
0732nobodyさん2009/04/22(水) 15:20:24ID:MEQMnIq/
>>731
ありがとうございます。

Apacheモジュール版ではできて、cgiモードではできないことの代表例といったらどんなものがありますか?
参考までにPHPで作られたカウンタやキャプチャ機能付き掲示板、ブログ等を実装しようとおもっています。
0733nobodyさん2009/04/22(水) 15:22:42ID:???
>>732
異なるのはもっと上位レイヤだからほぼない。
cgi-binの下に置かないといけないとかそういうのぐらい。
0734nobodyさん2009/04/22(水) 15:29:57ID:???
代表例はBASIC認証を自前で入力画面作るとかだなあ
0735nobodyさん2009/04/22(水) 15:40:35ID:MEQMnIq/
そうでしたか、安心しました( ´∀`)

それほど関係ないならほぼ全てのレンタルサーバーはPHPをcgiモードで
動かしてしまえばいいと思うのですが、そうではないということはユーザー
のなかにはApachモジュールでの動作にこだわられてる方が多いということなんでしょうか?
0736nobodyさん2009/04/22(水) 15:54:43ID:???
>>735
女?
0737nobodyさん2009/04/22(水) 17:04:14ID:???
>>735
cgiは確か遅い。
0738nobodyさん2009/04/22(水) 22:56:16ID:???
>735
cgiで動作する場合、
 Apache → php.exeとかが起動される → 実行
となる。対して、mod_phpはApache自身が実行するので、php.exeの起動を毎回する必要がなくなる。その分早い。
(Apacheがphp.exeを予め起動し、常時スタンバイ状態にしておくイメージ)

(実際はUnix系サーバだろうからexeなんてファイル名じゃないわけだが、まあイメージだ)
0739nobodyさん2009/04/23(木) 04:26:39ID:113Aszds
PHPでping更新するプログラムを作っているのですが
更新pingを送信してやるプログラムを作っているのですが
そこでpingサーバーにPOSTしてやると言うことまでは
わかっています。
POSTするのはソケットかcurlだと思うのですがパラメーターの
名前がなくてもPOSTできるものなのですか?

ヤフーなら
http://api.my.yahoo.co.jp/RPC2
のURLにPOST送信して下さい

としか書かれていません。
よろしくお願いします。
0740nobodyさん2009/04/23(木) 04:40:06ID:???
xmlrpcだろ常考・・・
0741nobodyさん2009/04/23(木) 10:21:51ID:QVnMbBVw
php.iniの推奨設定ってございますか?
0742nobodyさん2009/04/23(木) 10:26:02ID:???
php.ini-recommended
0743nobodyさん2009/04/23(木) 10:29:34ID:???
>>741
文字周りをUTF-8
あと、初心者ならmagic_quote_gpcはOnの方がいいのかも知れない・・

推奨っていうか個々の設定の意味合いがちゃんと分かっていれば問題ないかなと思う。
0744nobodyさん2009/04/23(木) 11:04:57ID:???
うそをこきなさい
magic_quote_gpcはオフったほうが絶対いいって、勝手に余計な処理されたら却って混乱する
0745nobodyさん2009/04/23(木) 11:15:37ID:ai/dLDOC
あいまい検索みたいな事って出来るのでしょうか?

例えば、test_file.phpというファイル名のファイルがあったとして
testで検索してもそのファイルがヒットするようにしたいのです。

opendirなどで指定ディレクトリを開いてファイルを1つずつ読み込み、
preg_matchなどの正規表現でファイル名を調べる方法もありますが、
もう少し短い手順で、簡単に調べられる方法はないでしょうか?
07467412009/04/23(木) 11:20:07ID:QVnMbBVw
php.ini-recommendedを元にしてみてます
そこで具体的な質問なのですが一部の箇所だけでも構いませんのでどなたかご教示お願い致します

・output_bufferingは0にするべきか
・mb_string不使用のレンタルサーバに対応するコードを書くためにmb_stringを使わないべきか
・セーフモードをオンにするだけでいいか。safe_mode_exec_dirなどセーフモードに関する設定も行うべきか
・[mbstring]項目のmbstring.http_inputなどの設定の仕方
0747nobodyさん2009/04/23(木) 11:22:01ID:???
>>745
ttp://jp2.php.net/manual/ja/function.similar-text.php
07487412009/04/23(木) 11:25:32ID:QVnMbBVw
>>747

$dic = array("ノーダウト","ノープロブレム","ノーリスク","ノーリターン");
$point = 0;
$per = 0;
$answer = '';

if(isset($_GET['str'])){
$str = $_GET['str'];
foreach($dic as $word){
$new_point = similar_text($word,$str,$per);
echo $word."と".intval($per)."%似ています<br>";
if($point < $new_point){
$point = $new_point;
$answer = $word;
}
}

echo "<br>もしかして<strong>".$answer."</strong>?";
}
?>
<form action="" method="get">
<input type="text" name="str" />
</form>
0749nobodyさん2009/04/23(木) 11:30:20ID:???
>>744
それが分かる人はOffでいいと思う。
0750nobodyさん2009/04/23(木) 11:41:26ID:???
>>743>>749はPHP歴一か月未満とみた
0751nobodyさん2009/04/23(木) 11:51:44ID:???
>>749
いや、逆だろ
Onの方が余計混乱するって
07527452009/04/23(木) 12:03:37ID:ai/dLDOC
>>747
ありがとうございます。
たしかにこれでテキスト間を調べることは出来ますが、
やっぱり、ファイル名を調べるには、
ディレクトリ一覧を取得する方法しかないのでしょうか?
0753nobodyさん2009/04/23(木) 12:03:58ID:aSD7OG+w
ドコモでサイトを閲覧したとき、戻るボタンで前のページの戻ったとき、
キャッシュがなくて再読み込みされるらしいのですが、何が原因なのでしょうか
auでテストしてみたところ、キャッシュが残っていてすぐに表示されました
0754nobodyさん2009/04/23(木) 12:27:15ID:???
>>745
その例だと曖昧検索じゃなくてただの部分一致だと思うけど、
単なる部分一致なら
http://jp.php.net/manual/ja/function.glob.php
で出来るよ。
0755nobodyさん2009/04/23(木) 12:37:06ID:???
>>752
そういうことになりますね
0756nobodyさん2009/04/23(木) 13:19:05ID:???
ドコモ?w
あのクッキーは使えねーどこも?w
あんなキャリア無視していいよ。
0757nobodyさん2009/04/23(木) 13:21:52ID:aSD7OG+w
>>756
流石にお客さんの要望となると無視できないです・・・
0758nobodyさん2009/04/23(木) 13:21:58ID:???
こんなことで嘆いているks野郎が働いてて
全キャリア対応できるノウハウを持ってる優秀な俺が無職でいる日本
0759nobodyさん2009/04/23(木) 13:45:30ID:???
実際働いたら優秀でもなんでもない口だけニートか
0760nobodyさん2009/04/23(木) 13:47:34ID:???
新米社員必死だな
07617452009/04/23(木) 14:02:10ID:???
>>754,755
globもファイル内一覧を検索する関数ですし、
やっぱりそうするしかないんですね。
勉強になりました。ありがとうございました。
0762nobodyさん2009/04/23(木) 14:04:59ID:???
>>753
DoCoMoの試験機無いの?
0763nobodyさん2009/04/23(木) 14:05:35ID:???
ない
0764nobodyさん2009/04/23(木) 15:02:49ID:???
>>763
調べてみたらあるじゃん
ttp://www.nttdocomo.co.jp/service/imode/make/content/html/tool2/
0765nobodyさん2009/04/23(木) 15:03:37ID:???
ああ、試験機って手元で実際に使えるものかと思ってた
それってキャッシュの設定までできるの?
0766nobodyさん2009/04/23(木) 15:13:18ID:???
>>753
というか、仕事なのにこんなとこで聞く程度のスキルでお金もらえるの?
どこの会社だろう。
いいな。うらやましい。2chで情報もらって金儲けか。
0767nobodyさん2009/04/23(木) 15:18:36ID:???
>>753みたいな教えて君が俺たちを人力検索ボランティアに利用して金もらってて
俺みたいな何でも一人でこなせる優秀な人材が無職な日本
0768nobodyさん2009/04/23(木) 15:20:25ID:???
横槍すまんが

>>766-767
だったら働けよと・・・
0769nobodyさん2009/04/23(木) 15:23:34ID:???
誰か無職な日本のガイドラインをガイドライン板に立てて
0770nobodyさん2009/04/23(木) 15:30:10ID:???
こんな優秀な俺が無職なのは社会のせいだ!
ですか?()笑
■ このスレッドは過去ログ倉庫に格納されています