【PHP】下らねぇ質問はID出して書き込みやがれ 118
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/04/24(火) 01:29:22.24ID:yStuoiA/過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0498nobodyさん
2012/05/06(日) 22:20:05.30ID:1YjnP+mzそう言われれば、確かに。他の所で間違っていたのかもしれません。
きちんと動きました、ありがとうございます。
0499nobodyさん
2012/05/06(日) 23:34:06.84ID:???無意味に荒らしてるやつは俺に対する営業妨害だから猛省してチンコ切って下さい。
0501nobodyさん
2012/05/06(日) 23:56:16.98ID:???0502nobodyさん
2012/05/07(月) 00:04:26.72ID:???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:???strtotimeかDateTime使ったほうがいい
twitterのbot程度ならそれでもいいけど
0505nobodyさん
2012/05/07(月) 00:52:54.94ID:S0FSS5pr「アクセスした時間によって表示させるメッセージを変える」ってのを作ってまして、
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秒数までは考慮してないので大丈夫です。
特に問題無さそうで安心しました。ありがとうございました。
0508nobodyさん
2012/05/07(月) 03:04:58.53ID:???( �� 皿 ��) しゃきーん
( )
/│ 肉 │\ しゃきーん
< \___/ >
┃ ┃
= =
素数ゲットロボだよ
自動で素数ゲットしてくれるすごいやつだよ
0509nobodyさん
2012/05/07(月) 07:10:43.00ID:???phpでサイトのソースをとって来て表示するのとかあります
そういうphpの機能を使ってromれば足跡機能を回避できたりしますでしょか?
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:???1行目:特定のIDの書き込み状況をみる、必死ちぇっかーみたいなものを指しているの?
2行目:DATファイルから取得していると思います。プログラムのソースでは
ないと思います。
3行目:ロムってればIDも書き込まれないし、回避とやらがされるのではないでしょうか?
0514nobodyさん
2012/05/07(月) 12:55:20.63ID:???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:???0517nobodyさん
2012/05/07(月) 12:58:16.07ID:???も正しい電話番号
0518nobodyさん
2012/05/07(月) 14:43:36.98ID:???でも、ゴロがいいところで勝手に切っちゃってる場合もあるからなー
フリーダイヤルとかはフリーダムだし
0519nobodyさん
2012/05/07(月) 15:07:46.92ID:???とりあえず、>>514はかなり適当だが
それには合致しない。
もうちょい厳密にやるなら、最低でも10桁or11桁保証あたりかな??
0520nobodyさん
2012/05/07(月) 15:37:34.58ID:???参考までに
市外局番の一覧
ttp://www.soumu.go.jp/main_sosiki/joho_tsusin/top/tel_number/shigai_list.html
0521nobodyさん
2012/05/07(月) 15:45:39.82ID:???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:???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:???0531nobodyさん
2012/05/07(月) 22:58:50.79ID:???別にそのコード自体に問題はない
0532nobodyさん
2012/05/07(月) 23:03:26.25ID:GqTs7bM6二種類の番号で、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:GqTs7bM6id_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[$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すればいいが
根本的な解決したいならちゃんとどういう値が入ってるかデバッグして把握するべき
0538nobodyさん
2012/05/08(火) 00:57:23.06ID:kCiRkLDGDB見直して、不足している情報が確かにあったので埋めてみました。
が、だめでした。
思うに下記の、[$j][$i]のところを、例えば
[id_01=$j][id_02=$i]
のように、具体的に指定しなければいけない気がするのですが、
その方法がわかりません。。
<?echo $individual_details [$j][$i]["name"]; ?>
もし30分以内に解が出なければ、さすがにうざがられそうなので消えます。。
0541nobodyさん
2012/05/08(火) 01:50:45.44ID:???0542nobodyさん
2012/05/08(火) 02:56:35.58ID:???ループの前に
var_dump($individual_details);
exit();
してみれや
0543nobodyさん
2012/05/08(火) 03:07:44.73ID:???0544nobodyさん
2012/05/08(火) 06:27:12.46ID:???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'];
ってする。
0545512
2012/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:???やりたい事を一番始めに書くべきだったな
<?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【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;
?>
続きます
0549nobodyさん
2012/05/08(火) 10:34:42.46ID:???↓のdat取得ができない(gzipにしてもできなかった)
<?php
$sid="取得したセッションID";
$sid=urlencode($sid);
$fp = fsockopen('toro.2ch.net', 80);
$out = array(
'GET /test/offlaw.cgi?bbs=tech&key=1224449899&sid=$sid HTTP/1.0',
'Host: toro.2ch.net',
'User-Agent: Monazilla/1.00',
);
fwrite($fp, implode($out, "\r\n") . "\r\n\r\n");
ob_start();
fpassthru($fp);
$response = ob_get_clean();
fclose($fp);
$response = explode("\r\n\r\n", $response, 2);
echo 'ヘッダ<pre>' . $response[0] . '</pre>';
echo '中身<pre>' . mb_convert_encoding($response[1] , "UTF-8", "Shift_JIS"). '</pre>';
exit;
?>
なにかヒントでもいいのでお願いします。
0550nobodyさん
2012/05/08(火) 10:35:18.51ID:yJ0tU0lo0552nobodyさん
2012/05/08(火) 11:21:50.84ID:???が多い。それで回答者が逆質問をしたり
悪口を言ったりする。それを前もって思
い描く力が絶望的に欠如してるに違いない。
スーパーハッカーだけが意図を理解できる。
レアなそういう神が颯爽と登場する予感。
0553nobodyさん
2012/05/08(火) 11:30:27.50ID:???0554nobodyさん
2012/05/08(火) 11:40:00.69ID:???お前は荒らすことしかできねーのかw
つまんないんだよ、だからPHPerはゴミばっかりって言われるんじゃないかな?
かっこを閉じ忘れるヤツとかも多いしさ、
れんこんみたいに穴だらけのプログラムしか書けない
さらに極めつけはドヤ顔で関係ないコード貼ったりするヤツなw
まぁ、他の言語ができない万年初心者のPHPerなら仕方ないかなwww
0555nobodyさん
2012/05/08(火) 11:43:16.88ID:???0556nobodyさん
2012/05/08(火) 11:53:47.10ID:???fpassthru($fp);
の時点で何と返ってきているのか確認する
あと>>548の削除依頼を出しとけよ
0560nobodyさん
2012/05/08(火) 13:56:30.53ID:???is_null
誰がこんな名前にしたんだ
0561nobodyさん
2012/05/08(火) 14:21:23.20ID:???0562nobodyさん
2012/05/08(火) 14:24:23.30ID:Htg8wbhp惚れそうです
やりたいことがほぼできました
ただ改行が無視された結果が返ってくるので、\nをexplodeで分割、それぞれの配列で置換をする形でよいものでしょうか?
0564nobodyさん
2012/05/08(火) 14:50:50.27ID:???546じゃねーけど、入力する内容によって改行コードが\r\nになっていることもあるから気を付けるんだっ
0565nobodyさん
2012/05/08(火) 15:07:55.35ID:???0566nobodyさん
2012/05/08(火) 15:50:50.72ID:???0568sage
2012/05/08(火) 20:46:23.42ID:???0569nobodyさん
2012/05/08(火) 22:13:58.74ID:???0570nobodyさん
2012/05/08(火) 22:17:13.80ID:???0571nobodyさん
2012/05/08(火) 22:26:26.26ID:???0572nobodyさん
2012/05/08(火) 22:29:08.94ID:???0573nobodyさん
2012/05/08(火) 22:42:39.20ID:???0574nobodyさん
2012/05/08(火) 22:45:40.69ID:???0575nobodyさん
2012/05/08(火) 22:49:19.81ID:???0576nobodyさん
2012/05/08(火) 23:27:23.78ID:???0577nobodyさん
2012/05/09(水) 00:05:52.09ID:???<| |>
0578nobodyさん
2012/05/09(水) 00:19:43.39ID:???0579nobodyさん
2012/05/09(水) 00:54:14.14ID:???0580nobodyさん
2012/05/09(水) 01:17:29.28ID:Fi26kzxnたとえば配列のアクセスでつかう [] を自分のクラスでも使えるようにしたいです。
0581nobodyさん
2012/05/09(水) 01:40:09.37ID:???ただし配列アクセスを実装することはできる
0582nobodyさん
2012/05/09(水) 01:42:34.06ID:???0583nobodyさん
2012/05/09(水) 01:58:49.65ID:???0584nobodyさん
2012/05/09(水) 02:07:05.89ID:???0586nobodyさん
2012/05/09(水) 02:28:52.13ID:???次に「タッカラプト・ポッポルンガ・プピリット・パロ」と唱えます
0587nobodyさん
2012/05/09(水) 03:36:00.00ID:???0588nobodyさん
2012/05/09(水) 09:00:05.62ID:???http://php.net/manual/ja/class.arrayaccess.php
0589nobodyさん
2012/05/09(水) 09:49:56.18ID:???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で、テキストファイルに出力させて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:???ここを読めば存在理由が分かるだろう
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=「ここ」">
は確認したかい
0593590
2012/05/09(水) 12:22:39.34ID:kEquIQgXブラウザのエンコードは「シフト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:???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:???■ このスレッドは過去ログ倉庫に格納されています