トップページ⇒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等)・フレームワークは各該当スレへ
0449nobodyさん2012/05/06(日) 00:17:36.79ID:???
戻るボタン押したときにリダイレクトさせるような仕組みを付けてんの?
0450nobodyさん2012/05/06(日) 01:09:18.93ID:???
>>446
相変わらずやるな君は説明が出来ないw
0451nobodyさん2012/05/06(日) 01:14:38.88ID:???
構うな
0452nobodyさん2012/05/06(日) 01:27:44.09ID:???
>>448
適当な文字列も別途渡してチェックするとかかなぁ。戻るボタンって面倒だよね
0453nobodyさん2012/05/06(日) 02:19:34.45ID:???
テンプレに追加するか・・・
0454nobodyさん2012/05/06(日) 02:41:01.88ID:???
>>444
詳しく
0455nobodyさん2012/05/06(日) 04:10:16.83ID:VxW1PHuo
【OS名】CentOS
【PHPのバージョン】5.3
【質問内容】
下記のように、
�@の画面で「診断する」を押すと�Aの画面に移り、�Aの画面で診断結果と「この結果を書きこむ」ボタンが現れます。
「この結果を書きこむ」を押すと、結果がテキストファイルに書きこまれる仕組みになっております。

�@
<form action="index.php" method="post" id="abcd" name="abcd">
<input type='hidden' name='ketueki' value='B'>
<input type='hidden' name='seiza' value='tenbin'>
<input type="submit" value="診断する">
</form>

�A
血液型B 天秤座の人は、大吉です。
<form action="post.php" method="post" id="abcd" name="abcd">
<input type='hidden' name='kekka' value='daikichi'>
<input type="submit" value="この結果を書きこむ">
</form>


これを�@の画面で「診断する」を押したら、�Aの「この結果を書きこむ」を押さずに自動で行われるようにするにはどのようにしたらよいでしょうか?
0456nobodyさん2012/05/06(日) 04:24:02.39ID:???
>>455
�@の「診断する」押した時点で結果を処理して書き込めばいいんでないの?
0457nobodyさん2012/05/06(日) 10:30:37.34ID:???
perl で
$a = $b || $c || $d;
だったかな、うる覚えなんだけど
$bがnullだったら$cを、$cがnullだったら$dを代入する
みたいな書き方があったとおもうんだけど

phpの場合はそれができないみたいなので
変わりの関数作るしかないですか?
0458nobodyさん2012/05/06(日) 10:35:56.29ID:???
うる覚え→うろ覚え
0459nobodyさん2012/05/06(日) 10:39:11.69ID:???
>>458
ありがたいけどオレが聞いてるとこと違うわw
0460nobodyさん2012/05/06(日) 10:53:27.17ID:OMLj8por
>>452
POSTで何かを同時に送信するということでしょうか?
やってみます
0461nobodyさん2012/05/06(日) 11:16:24.13ID:???
普通戻る履歴に残らないから何もしなくて良いんじゃね
0462nobodyさん2012/05/06(日) 11:30:19.75ID:???
phpで配列の内容を引数として渡したいのですがどうすればいいですか?

$a = array( 1, 2 );
hoge(???); // ← hoge(1,2)のように渡したい

それと、>>457の質問についてもよろしくおねがいします
0463nobodyさん2012/05/06(日) 11:41:29.08ID:???
call_user_func_array('hoge', array(1,2) );
でいけました(゚∀゚)

>>457についてもよろしくおねがいします
0464nobodyさん2012/05/06(日) 11:42:02.44ID:???
しつこい人は大嫌いです
0465nobodyさん2012/05/06(日) 11:45:32.74ID:???
>>457
できるけどID出せ
0466nobodyさん2012/05/06(日) 12:04:09.81ID:3sR+y7HR
IDの出し方よくわかってなかったんだけどこれでいいの?
0467nobodyさん2012/05/06(日) 12:13:44.63ID:???
>>1を読めばIDの出し方書いてるのにわからないっていうことは>>1を読んでないということだろ
0468nobodyさん2012/05/06(日) 12:21:07.20ID:???
条件文で書くのが嫌なら三項演算子でも使えばいいんじゃね?
elseifを三項演算子で書くとスパゲティになるから好ましくないけどな。
0469nobodyさん2012/05/06(日) 12:23:15.24ID:???
>>457
変わり種の関数でも作ってろ
0470nobodyさん2012/05/06(日) 12:31:55.16ID:???
$a = $b ?: $c;
0471nobodyさん2012/05/06(日) 12:33:10.03ID:???
$a = $b :-) $c;
0472nobodyさん2012/05/06(日) 13:19:30.91ID:???
>>470
度肝抜かれた

この書き方他の言語でもできるのかな…?
なにわともあれありがとう(゚∀゚)
0473nobodyさん2012/05/06(日) 14:36:11.63ID:???
phpにできないことはない。
CやJavaすらphpで書かれている。
0474nobodyさん2012/05/06(日) 14:41:10.41ID:???
今、最もホットな言語、それが我らのPHP
0475nobodyさん2012/05/06(日) 14:41:34.21ID:???
そんなことはない。HSPもJavaScriptもBASICも開発言語はC/C++だろ。
0476nobodyさん2012/05/06(日) 14:59:07.94ID:???
>>475
phpにできないことはない
0477nobodyさん2012/05/06(日) 15:06:36.90ID:???
PHPは1876年に生まれた由緒正しい言語
0478nobodyさん2012/05/06(日) 15:08:11.42ID:???
>>475
C/C++はphpで実装されている。
ということは君がいうHSPもJavaScriptもBASICもphpだと言える。
0479nobodyさん2012/05/06(日) 15:09:53.93ID:???
サイクルストッパーことPHP
0480nobodyさん2012/05/06(日) 15:10:39.86ID:???
phpは韓国起源
0481nobodyさん2012/05/06(日) 15:19:42.20ID:???
PHP使いが必死なのはそれでか
納得
0482nobodyさん2012/05/06(日) 16:25:11.18ID:???
>>470はバージョン選ぶんじゃね?
0483nobodyさん2012/05/06(日) 16:33:50.00ID:???
>>482
phpは世界でもっても安定した言語なので
バージョン違いによる問題はない。
0484nobodyさん2012/05/06(日) 16:38:01.97ID:???
キムチもPHPでできている
0485nobodyさん2012/05/06(日) 16:43:14.56ID:???
>>483
世界でもってもだもんな
PHPの寿命はもってもあと数日
0486nobodyさん2012/05/06(日) 16:51:40.56ID:???
何が面白いのかさっぱり
0487nobodyさん2012/05/06(日) 17:06:38.30ID:???
>>486
彼らはみんな普通のPHPerだ。
許してやれ
0488nobodyさん2012/05/06(日) 20:50:59.16ID:???
お前ら他の言語も勉強しろよ。
0489nobodyさん2012/05/06(日) 20:55:41.95ID:???
他の言語どころかPHPも勉強しない、それがPHPer
0490nobodyさん2012/05/06(日) 20:56:19.81ID:???
ぼくのHDD知りませんか?
0491nobodyさん2012/05/06(日) 21:13:22.75ID:???
開発環境はXAMPPでオーケー、それがPHPer
0492nobodyさん2012/05/06(日) 21:24:25.30ID:???
粘着的になってきたなぁ。
そんなに好きか?
0493nobodyさん2012/05/06(日) 21:37:35.77ID:???
>>483
もっても と書き間違う方が悪い
お前はキムチか
0494nobodyさん2012/05/06(日) 21:42:32.19ID:???
転載

167 名前:login:Penguin [sage]: 2012/05/06(日) 18:47:45.35 ID:Rggfwwak
PHP 5.3.12とPHP 5.4.2、脆弱性が完全には修正されていないことが判明 | スラッシュドット・ジャパン デベロッパー
http://developers.slashdot.jp/story/12/05/06/0738246/
0495nobodyさん2012/05/06(日) 21:59:46.47ID:1YjnP+mz
【OS名】Linux
【PHPのバージョン】5.3
【質問内容】
質問です。readdirを使ってローカルのディレクトリ内を調べたいのですが、
そのディレクトリがDigest認証が必要な場合はどのように認証を通過させればいいのでしょうか。
stream_context_create辺りを使って出来るかと思ったのですが、全然わかりませんでした。
認証を通過する方法を教えてください。
0496nobodyさん2012/05/06(日) 22:11:12.56ID:???
>>495
HTTPの認証がなぜローカルに関係するんだい?
0497nobodyさん2012/05/06(日) 22:19:16.54ID:???
>>494
いつものことだから無視無視
0498nobodyさん2012/05/06(日) 22:20:05.30ID:1YjnP+mz
>>496
そう言われれば、確かに。他の所で間違っていたのかもしれません。
きちんと動きました、ありがとうございます。
0499nobodyさん2012/05/06(日) 23:34:06.84ID:???
2ch脳のクラがこういうスレ見るとPHPの印象が悪くなるんだよね。
無意味に荒らしてるやつは俺に対する営業妨害だから猛省してチンコ切って下さい。
0500nobodyさん2012/05/06(日) 23:44:14.07ID:???
>>499
PHPしかできないの?
0501nobodyさん2012/05/06(日) 23:56:16.98ID:???
PHPしか云々じゃなくて案件の幅が狭まるだろ
0502nobodyさん2012/05/07(月) 00:04:26.72ID:???
PHPの代替だったらRubyとか提案したらよいのでは?
0503nobodyさん2012/05/07(月) 00:35:22.00ID:S0FSS5pr
時間の比較で

$time_start = '00:00';
$time_end = '01:00';
$totime = date('H:i');
if ($time_start <= $totime && $time_end >= $totime) {
 echo "OK";
}

みたいな事をしているのですが、これは正しいのでしょうか?
: が付いている状態でも一応比較されているのですが、
正しく比較されない場合があるのかな?と思い、質問しました。
0504nobodyさん2012/05/07(月) 00:44:43.18ID:???
>>503
strtotimeかDateTime使ったほうがいい
twitterのbot程度ならそれでもいいけど
0505nobodyさん2012/05/07(月) 00:52:54.94ID:S0FSS5pr
>>504
「アクセスした時間によって表示させるメッセージを変える」ってのを作ってまして、
DBに保存した値(time型)に対して比較させようとしているのですが、
>>503でも比較できるので、strtotimeとか使わなくても
特に問題ないのでは?と思っています。

503のやり方だと、特定の時間(あるいはPHPのバージョン違い)の場合、
正しく比較できないよって情報が知りたいのですが、そう言う事はあるのでしょうか?
0506nobodyさん2012/05/07(月) 01:25:36.66ID:???
文字列の比較になるんで、形式さえ同じなら:が入っててもいいよ
あとは1時0分15秒がOKになるのを想定してるかどうかぐらい
0507nobodyさん2012/05/07(月) 01:28:31.36ID:S0FSS5pr
>>506
秒数までは考慮してないので大丈夫です。
特に問題無さそうで安心しました。ありがとうございました。
0508nobodyさん2012/05/07(月) 03:04:58.53ID:???
   ∬  金 ∬
  ( �� 皿 ��)  しゃきーん
  (       )
 /│  肉  │\         しゃきーん
<  \___/  >
    ┃  ┃
    =  =
素数ゲットロボだよ
自動で素数ゲットしてくれるすごいやつだよ

0509nobodyさん2012/05/07(月) 07:10:43.00ID:???
2chのような掲示版って普通足跡みたいな機能があったりします
phpでサイトのソースをとって来て表示するのとかあります
そういうphpの機能を使ってromれば足跡機能を回避できたりしますでしょか?
0510nobodyさん2012/05/07(月) 07:11:48.41ID:???
>>509
全ての行で意味が分からん
あと>>1
0511nobodyさん2012/05/07(月) 11:47:39.40ID:???
>>509
むり
0512nobodyさん2012/05/07(月) 11:55:49.63ID:OhIqO9TR
文字列内から電話番号の切り出しをしようとしているのですが、
下記コードでうまくいきません おかしな点があれば教えて頂けますでしょうか。
$hoge = "hoge000-000-0000";
$out = preg_split('/^0[0-9]{1,4}-[0-9]{1,4}-[0-9]{4}$/',$hoge);
var_dump($out);

出力結果
array(1) { [0]=> string(16) "hoge000-000-0000" }
0513nobodyさん2012/05/07(月) 11:56:50.60ID:???
>>509
1行目:特定のIDの書き込み状況をみる、必死ちぇっかーみたいなものを指しているの?

2行目:DATファイルから取得していると思います。プログラムのソースでは
    ないと思います。

3行目:ロムってればIDも書き込まれないし、回避とやらがされるのではないでしょうか?
0514nobodyさん2012/05/07(月) 12:55:20.63ID:???
>>512
preg_match("/(0[0-9]{1,4}-[0-9]{1,4}-[0-9]{1,4})/",$hoge,$matched);

^と$の意味も勉強しなおすニダ
あと下四桁って固定的に3桁と4桁じゃなかったっけ?
0515nobodyさん2012/05/07(月) 12:57:17.37ID:???
下4桁が3桁?
0516nobodyさん2012/05/07(月) 12:57:53.50ID:???
>>512
×preg_split()
○preg_match()
0517nobodyさん2012/05/07(月) 12:58:16.07ID:???
Lotus1-2-3
も正しい電話番号
0518nobodyさん2012/05/07(月) 14:43:36.98ID:???
{1,4}じゃないよ、一番最後は4桁固定だし、他も1桁ってのはない{2,4}だな
でも、ゴロがいいところで勝手に切っちゃってる場合もあるからなー
フリーダイヤルとかはフリーダムだし
0519nobodyさん2012/05/07(月) 15:07:46.92ID:???
>>517
とりあえず、>>514はかなり適当だが
それには合致しない。
もうちょい厳密にやるなら、最低でも10桁or11桁保証あたりかな??
0520nobodyさん2012/05/07(月) 15:37:34.58ID:???
>>512
参考までに
市外局番の一覧
ttp://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/shigai_list.html
0521nobodyさん2012/05/07(月) 15:45:39.82ID:???
ぼくのHDDは机の下にありました
0522nobodyさん2012/05/07(月) 19:28:04.91ID:???
>>518
うっすらとした記憶によると、
市外局番6桁、市内局番なし、番号4桁
があったと思う。
0523nobodyさん2012/05/07(月) 19:30:09.82ID:???
ノイズはあるが電話番号がもれなく含まれている
ノイズはないが電話番号がいくつか漏れる
の2択になると思うよ。
0524nobodyさん2012/05/07(月) 19:33:22.90ID:???
すべての電話番号を列挙するだけでいい
楽勝だ
0525nobodyさん2012/05/07(月) 21:36:57.24ID:???
区切り文字は-だけなの?

()とか、区切り文字がないとかいろいろあったりしないの?
0526nobodyさん2012/05/07(月) 22:00:09.08ID:???
区切り文字が無い場合も考えないと。
0527nobodyさん2012/05/07(月) 22:06:00.69ID:???
質問の意図や前提をくみ取れない糞質問
が多い。それで回答者が逆質問をしたり
悪口を言ったりする。それを前もって思
い描く力が絶望的に欠如してるに違いない。
スーパーハッカーだけが意図を理解できる。
レアなそういう神が颯爽と登場する予感。
0528nobodyさん2012/05/07(月) 22:34:04.72ID:???
JavaScriptスレ荒らしてるのも同じやつなんだな
0529nobodyさん2012/05/07(月) 22:39:01.71ID:GqTs7bM6
これってどこがおかしいですか((+_+))
たぶん、[$j][$i]って連続しているところがだめな気がするんですが。。

<?php
for($j=0; $j<3; $j++){
?>
<?php
for($i=0; $i<4; $i++){
?>

<?echo $individual_details [$j][$i]["name"]; ?>


<?php
}
?>
<?php
}
?>
0530nobodyさん2012/05/07(月) 22:52:49.40ID:???
phpにできないことはない
0531nobodyさん2012/05/07(月) 22:58:50.79ID:???
どこがおかしいですかってどうおかしいんだ?
別にそのコード自体に問題はない
0532nobodyさん2012/05/07(月) 23:03:26.25ID:GqTs7bM6
>>531

二種類の番号で、DBからユニークな"name"が選び出されるんですけど、
上記のコードだと、
Notice: Undefined offset: 0 in C:\xampp\htdocs\opencourt\index.php on line 323
って出るんです。
[$j]を削除すると[$j]に入るべき数字は0と扱うようで、何らかの"name"は表示されます。
どうしたらよいでしょうか。
0533nobodyさん2012/05/07(月) 23:12:20.95ID:???
情報が少なすぎて何とも言えない
0534nobodyさん2012/05/07(月) 23:21:04.10ID:GqTs7bM6
DBには
id_01  id_02  name
が存在します。

DBの情報は下記コードで引っ張ってきています。
$sql = "SELECT * FROM DB";
$result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);

$individual_details = array();
while($row = mysql_fetch_assoc($result)){
$individual_details[]=$row;

その状態で、[$j][$i]を用いて、特定の"name"を表示させたいのです。
よろしくお願いします。
0535nobodyさん2012/05/07(月) 23:22:44.29ID:GqTs7bM6
[$j]→id_01
[$i]→id_02

としたいということです。
0536nobodyさん2012/05/08(火) 00:32:32.26ID:???
指定した配列が定義されてないと出るエラー

$individual_details [$j][$i]["name"]
ようするに
$individual_details [0][0]["name"]から$individual_details [2][3]["name"]があると想定して
ループ回してるわけだがそんな値ないですよってことだろ
エラーを出なくするだけならissetでチェックしてからechoすればいいが
根本的な解決したいならちゃんとどういう値が入ってるかデバッグして把握するべき
0537nobodyさん2012/05/08(火) 00:33:01.20ID:???
>>532
初心者はXAMPP使うな
0538nobodyさん2012/05/08(火) 00:57:23.06ID:kCiRkLDG
>>536
DB見直して、不足している情報が確かにあったので埋めてみました。
が、だめでした。

思うに下記の、[$j][$i]のところを、例えば
[id_01=$j][id_02=$i]
のように、具体的に指定しなければいけない気がするのですが、
その方法がわかりません。。

<?echo $individual_details [$j][$i]["name"]; ?>

もし30分以内に解が出なければ、さすがにうざがられそうなので消えます。。
0539nobodyさん2012/05/08(火) 01:10:34.29ID:???
>>537
学習嫌いなPHPerだからOK。
0540nobodyさん2012/05/08(火) 01:26:25.26ID:???
>>538
根本的に何か勘違いしているような気がする。
0541nobodyさん2012/05/08(火) 01:50:45.44ID:???
マニュアルでサーバ構築の手順を読んでない=マニュアルで言語仕様すら読んでいない
0542nobodyさん2012/05/08(火) 02:56:35.58ID:???
>>538
ループの前に
var_dump($individual_details);
exit();
してみれや
0543nobodyさん2012/05/08(火) 03:07:44.73ID:???
phpにできないことはない
0544nobodyさん2012/05/08(火) 06:27:12.46ID:???
>>534
while($row = mysql_fetch_assoc($result)){
if (!is_set($individual_details[$row['id_01']]) $individual_details[$row['id_01']] = array();
$individual_details[$row['id_01']][$row['id_02]]=$row['name'];
ってする。
05455122012/05/08(火) 08:42:20.63ID:xzOVLEVd
みなさまレスありがとうございます。
やりたいこととしては、POSTされたメッセージをhtmlspecilcharを通した文字列から
電話番号を切り出して、そこに携帯電話で発信用のリンクをはるタグを追記して元のメッセージに
戻したいのです。
なので、単純に抜き出すpreg_matchではなくspiltが良いのかなと思ったのですが。

>>514
勉強して、不要だとわかり削りました。
>>518
桁数については、メッセージを打ち込む人間が決まっており、住んでいる地域の番号および
携帯電話のみなので、シビアなチェックというよりは、多少ノイズが入ってもよいかと思っています。

preg_match_all('/0[0-9]{1,4}-[0-9]{1,4}-[0-9]{4}/s', $text, $out);
とりあえず上記で、$text内(改行あり文字列)から電話番号の文字列のみ配列に格納できましたが、
その前後の文字列も切り出して格納することができず悩んでいます
切り分けにはexplodeかと思ったのですが、正規表現は使えないようですし・・・

$out = preg_split('/0[0-9]{1,4}-[0-9]{1,4}-[0-9]{4}/s', $text);
これだと、電話番号が抜かれた文字列だけ配列に入ってしまいます
preg_splitとpreg_match_allの合わせ技でできそうな気もするのですが、もっとスマートな方法があれば・・・
0546nobodyさん2012/05/08(火) 09:40:28.24ID:???
>>545
やりたい事を一番始めに書くべきだったな

<?php
$link = function ($m) { return sprintf('<a href="tel:%s">%s</a>', preg_replace('/[^0-9]/', '', $m[0]), $m[0]); };
echo preg_replace_callback('/090-[0-9]{4}-[0-9]{4}/', $link, '電話番号は090-0000-0000です。');
0547nobodyさん2012/05/08(火) 10:22:00.23ID:???
カッチョええ
0548nobodyさん2012/05/08(火) 10:33:50.30ID:yJ0tU0lo
【OS名】CentOS
【PHPのバージョン】5.3以上

【質問内容】
こちらでも聞いたのですが5日以上解決しないのでこちらで聞かせてください。
http://toro.2ch.net/test/read.cgi/tech/1224449899/

http://kage.monazilla.org/system_DOLIB100.html
ここ見て書いてみたんですがなぜか動かないです。
どこを直せばいいか教えて欲しいです。
やりたいことは2chに●でログインしてdatを取得したいと思っています。
ログイン

<?php
header("Status: X-2ch-UA: kage/1.00");
ini_set('user_agent', 'User-Agent: DOLIB/1.00');

$url = 'https://2chv.tora3.net/futen.cgi';
$data = array(
'ID' => '[email protected]',
'PW' => 'romiromi',
);
$options = array('http' => array(
'method' => 'POST',
'content' => http_build_query($data),
));
$contents = file_get_contents($url, false, stream_context_create($options));

echo $contents;
?>
続きます
■ このスレッドは過去ログ倉庫に格納されています