【PHP】下らねぇ質問はID出して書き込みやがれ 105
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/03/17(木) 04:00:34.11ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 104
http://hibari.2ch.net/test/read.cgi/php/1297669559/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0769nobodyさん
2011/04/20(水) 22:23:38.66ID:???Javaのpackageに相当する機能を使いたいのだが
0772nobodyさん
2011/04/21(木) 07:16:38.51ID:XEGIAaxgjson_encodeする方法はないでしょうか?
0773 【東電 63.4 %】 忍法帖【Lv=6,xxxP】
2011/04/21(木) 07:23:01.97ID:GH5Vi5/t見てきた。たしかに対応しているっぽいね。
しかし、後付しただけに随分と煩雑だ
Javaのpackageよりパターンが豊富でいろんなことができるようだが、
Javaのpackageとimportとの組み合わせと比べると気持ち悪いコードを書く輩が増えそうだな…
ソースコードが読みにくくなったら本末転倒だ
コーディング規約をいちいち定めないと面倒なことになりそうだな
JavaのCheckStyleに相当するコーディング規約チェックツールは、PHPにはあるかな?
ついでに、Javaのバグの温床になるコードを自動検出してくれるFindBugsちうチェックツールはPHPにはあるかな?
0774nobodyさん
2011/04/21(木) 07:30:09.90ID:???json_encode ? 値を JSON 形式にして返す
説明
string json_encode ( mixed $value [, int $options ] )
value を JSON 形式にした文字列を返します。
パラメータ
value
エンコードする値。 resource 型以外の任意の型を指定できます。
この関数は、UTF-8 エンコードされたデータでのみ動作します。
0776nobodyさん
2011/04/21(木) 07:43:42.04ID:???言葉遣いが悪い奴は何も得られない。
0777nobodyさん
2011/04/21(木) 09:04:24.29ID:???0779nobodyさん
2011/04/21(木) 10:29:46.86ID:???0780。 ◆oDupeixhZv52
2011/04/21(木) 11:51:47.10ID:???json_encodeのページの__json_encodeのエンコード部分を殺してつかうとか。
0783nobodyさん
2011/04/21(木) 16:01:17.06ID:XEGIAaxgその後にstr_replaceで日本語と置換するという方法を使いました。
今回は小さいデータだからこれでもいいけど、もっと良い方法はないものか
0784nobodyさん
2011/04/21(木) 16:11:03.09ID:???0786nobodyさん
2011/04/21(木) 16:16:29.88ID:XEGIAaxg文字列もソースコードもUTF8なんだけど、勝手にエンコードされる。
0787nobodyさん
2011/04/21(木) 16:23:59.84ID:???エンコードしないとデータがバイナリになるんだよ。
jsonデコードしたら、文字列も自動でデコードされる。
0788nobodyさん
2011/04/21(木) 16:25:59.90ID:???そういうフォーマット。
バイナリデータを直接格納するにはそういうフォーマットつかえ。
メールデータをBASE64にするのと一緒。
0789nobodyさん
2011/04/21(木) 16:33:51.66ID:XEGIAaxgという事情なので質問しました。
多分そのAPIがおかしいんだと思う。デコードしてくれりゃいいのに。
どことは言わんけど日本で一番有名なSNS?
0790767
2011/04/21(木) 16:42:28.91ID:Ljywmxzd失礼致しました
DOMDocument::loadHTML で正常に読み込めるようにするため
不完全な HTML から、重複する id のうち最後のものだけを残そうとしています
$example = preg_replace('/(id=".+?")(.+?)\\1/s', '\\2\\1', $example);
上のような記述をしていますが、対象データが大きいと null が返る場合があります
現在は検索で id をリストアップしてから削除処理していますが
preg_replace ではどうして失敗するのでしょうか
【成功】
<title id="foo"></title>
<p id="bar">テスト1</p>
<p id="bar">テスト2</p>
以降 60KB 程度の文章
【成功】
<title id="foo"></title>
<p id="foo">テスト1</p>
<p id="bar">テスト2</p>
以降 70KB 程度の文章
【エラー】
<title id="foo"></title>
<p id="bar">テスト1</p>
<p id="bar">テスト2</p>
以降 70KB 程度の文章
0791nobodyさん
2011/04/21(木) 16:42:32.00ID:???0792nobodyさん
2011/04/21(木) 18:31:02.76ID:???ユー自作しちゃいなよ
http://ideone.com/nevGC
RFCは流し読みしかしてないから間違いがあるかも知れんが
0793nobodyさん
2011/04/21(木) 18:50:24.50ID:0idGxcNP対処方法はどのようにされてますか?
もしくはエラーが発生したときの検知の方法は何か一工夫されてますか?
エラーが発生したときにログに書きこむようにして、
cronでログに何か書き込まれていないか確認するように
しておくとか考えているんですが・・・如何なもんでしょ?
0794nobodyさん
2011/04/21(木) 19:07:09.39ID:???止まる予定の所すべてで、おかしくなりそうなら情報をファイルへ書き出す仕組みを挿入するしかなくないか。
面倒だが。
0795nobodyさん
2011/04/21(木) 19:09:10.88ID:???PHPが動いている(ローカルな)サーバーだけに出力を残すこともない。
0796nobodyさん
2011/04/21(木) 19:55:44.61ID:???基本はログを残すこと。
エラー時だけ残すのか、正常時も含めたトレースログを残すのかはシステムによる。
次にログを監視すること。
cronで監視してエラー時だけ通知するのか、生存確認の意味も含めて定期的に通知し続けるのかはシステムによる。
必要であれば外部からも定期的にアクセスして監視。
0797nobodyさん
2011/04/21(木) 20:16:32.48ID:???ちなみになんで6万かっつーと、夜中にMySQLのDBが壊れやがってWebサイトにアクセスあるたびにDB接続エラーがえんえんとry
0798nobodyさん
2011/04/21(木) 20:52:11.99ID:???0799nobodyさん
2011/04/21(木) 21:04:51.08ID:LlCZE+TNdate型で呼び出した数字 (date("Ymd",タイムスタンプ)が20111021とか) をそのままint型に変える事は出来るんでしょうか?
一度stringにしてintにしても、表示された数字ではなく、内部ポインタ変数っぽい別の数字が値になってしまいます
一度HTMLやデータベース等に文字として出力し、そこから受け取ればなんとかなりますが、出来ればPHPのみで型変換がしたいです
0800nobodyさん
2011/04/21(木) 21:08:04.68ID:???0802799
2011/04/21(木) 22:43:20.01ID:???date("YmdHis") で出して、それがINT範囲の上限を超えていたのが原因のようです。
floatval で浮動小数点型に直したら問題なく利用できました。
0803nobodyさん
2011/04/21(木) 23:05:21.28ID:???文字列のままでいいじゃん
0804799
2011/04/21(木) 23:10:12.47ID:???データベースにぶっこんだ後、比較演算子利用して指定データを取り出したりしたかったので
文字ではなく数字に変える必要がありました。
0805nobodyさん
2011/04/21(木) 23:12:20.81ID:???文字列のままつっこめばいいのに。
データベースが文字列でも比較できるんだし、
データベースが数値型でも文字列で突っ込めばいい。
0806nobodyさん
2011/04/21(木) 23:28:01.49ID:???0807nobodyさん
2011/04/21(木) 23:48:45.32ID:???PHPの場合はINTを指定してもINTでないから受け付けないというよりINTにキャストして渡してくれるしな
0808nobodyさん
2011/04/22(金) 00:02:45.79ID:???データベースの型をINTにしたため、PHPもそれに合わせて自動でINTにキャストした結果
「DATE(”YmdHis”)=(STR)201104222359」
↓ PHPでの自動処理
「(INT)2147483647 」 ← INTでの上限値
↓
「」
0809nobodyさん
2011/04/22(金) 00:05:24.23ID:???↓ PHPからデータベースに代入
「(INT)214748347」
となっていたようです。
次からは素直にデータベース側をDATETIMEに指定して利用します。
0810nobodyさん
2011/04/22(金) 00:22:05.82ID:???あと内部ポインタ変数ってなんだったの?
0811nobodyさん
2011/04/22(金) 01:13:51.33ID:???0812nobodyさん
2011/04/22(金) 02:20:33.83ID:b2miHkLW0813nobodyさん
2011/04/22(金) 03:14:30.60ID:???0814nobodyさん
2011/04/22(金) 04:28:37.95ID:b2miHkLW何だと!?なんてリア充向けがプログラミング言語なんだ
0815。 ◆oDupeixhZv52
2011/04/22(金) 11:55:32.83ID:???0816793
2011/04/22(金) 12:01:14.75ID:???ひとまずエラー時にログファイルに出力するようにして
クーロンで定期的にファイルが更新されていないかを
確認し、更新されていたらメールで通知するようにします。
さすがに6万通もメールがきたら、
私の携帯だと、受信するだけで
バッテリーが無くなりそうなので。
そして、それとは別に生存監視もしていこうと思います。
0817nobodyさん
2011/04/22(金) 14:09:45.37ID:S4ofJDv4【PHPのバージョン】5.3
【質問内容】
$string = '1111-111111';
$search = '/[^0-9]/';
$replace = '';
if (preg_match($search, $string)) {
$string = str_replace($search, $replace, $string);
}
こんな感じで'-'を置換したのですが、なぜか出来ません。
preg_match()では、マッチしているのに。。。
ちなみに'-'であったり'ー'する可能性があるので、
str_replace()を使ってます。
よろしくお願いします。
0818。 ◆oDupeixhZv52
2011/04/22(金) 14:19:30.37ID:???$string = str_replace(array("-","ー"), $replace, $string);
0820nobodyさん
2011/04/22(金) 14:29:36.99ID:???0822nobodyさん
2011/04/22(金) 15:28:05.12ID:???$encoding = mb_detect_encoding($_POST["name"],"UTF-8,SJIS,EUC-JP");
と言うようにしますが、$_POSTだけで文字コードを検出する方法は無いでしょうか?
0823822
2011/04/22(金) 15:28:44.03ID:vE00gD2v0824nobodyさん
2011/04/22(金) 15:39:59.15ID:???最初に質問するときに sage をしている時点で疑念がわくんですよ。
残念だったね。出直してきなさい。
0825nobodyさん
2011/04/22(金) 18:09:47.75ID:BuQXBTbwどのような方法で処理するのがスマートでしょうか?
>>689-694でいう、>>689のようなやり方しかわかりません
array(
'key1' => 'val1',
'key2' => 'val2',
'key3' => 'val3'
);
↓
array(
'prefix_key1' => 'val1',
'prefix_key2' => 'val2',
'prefix_key3' => 'val3'
);
0827nobodyさん
2011/04/22(金) 18:12:57.93ID:???0828nobodyさん
2011/04/22(金) 18:36:12.84ID:BuQXBTbw値の方になら接頭辞をつけることができましたが、
キーの方に適用させる方法がわかりません
function func(&$value, $key, $prefix) {
$value = $prefix . $key;
}
array_walk($arr, 'func', 'prefix_');
print_r ($arr);
0829nobodyさん
2011/04/22(金) 19:07:50.98ID:OjtKl6VG$td->plaintextで取り出すと td内ある <br /> や <a>が削除されてしまうのですが
どのようにしたらいいでしょうか?
0830nobodyさん
2011/04/22(金) 19:14:56.34ID:BuQXBTbw$td->innertext
0831nobodyさん
2011/04/22(金) 19:19:54.18ID:OjtKl6VG助かりました!! ありがとうございます
nobodyさんが神様に見えてきました・・
0832。 ◆oDupeixhZv52
2011/04/22(金) 19:21:51.76ID:???$array =array_flip($array);
array_walk($array, function(&$v,$k,$p){ $v=$p.$v; }, 'prefix_');
$array =array_flip($array);
普通にループで回して新しい配列作った方がいいのでは。
0833nobodyさん
2011/04/22(金) 19:35:35.15ID:BuQXBTbw素晴らしい回答どうもありがとうございました。
組み合わせ技はなかなか思いつかないので勉強になります。
0834nobodyさん
2011/04/22(金) 19:52:02.53ID:???foreach ($a as $key => $value) {
$b['prefix_'.$key] = $value;
}
0836nobodyさん
2011/04/23(土) 02:03:10.97ID:F1ksq7hwprint "a"+(3+3);
?>でaが表示されす6だけ表示されるのは何故?
a6って何で表示されないんですか?
0837nobodyさん
2011/04/23(土) 02:29:12.30ID:???0838nobodyさん
2011/04/23(土) 02:48:54.94ID:5IDERpwA0839nobodyさん
2011/04/23(土) 02:59:13.26ID:F1ksq7hwCGIはほとんど勉強してません。
CGIでできることはすべてPHPでできると考えていいですか?
0840nobodyさん
2011/04/23(土) 03:28:09.39ID:5IDERpwAというかウェブ系ならphpでおk
0841nobodyさん
2011/04/23(土) 03:30:18.82ID:???0842nobodyさん
2011/04/23(土) 03:48:00.00ID:???>>840
ありがとうございます。大学でCしかやらないので、専門学校で
習うような事柄を独学してます。
0843nobodyさん
2011/04/23(土) 04:11:21.68ID:???公式マニュアルを読むかぐぐって5分で解決するレベル
0844nobodyさん
2011/04/23(土) 15:35:27.93ID:???filemtime的な
PHP5.3
0846nobodyさん
2011/04/23(土) 16:03:34.49ID:???0847nobodyさん
2011/04/23(土) 16:32:25.42ID:???0848nobodyさん
2011/04/23(土) 21:07:33.58ID:???0849nobodyさん
2011/04/23(土) 22:04:18.26ID:???0850849
2011/04/23(土) 22:06:32.15ID:HKeSVDgr0851nobodyさん
2011/04/24(日) 00:07:47.59ID:???0852nobodyさん
2011/04/24(日) 00:17:33.98ID:???http://www.php.net/manual/ja/reserved.variables.httpresponseheader.php
0853。
2011/04/24(日) 00:22:34.71ID:???file_get_contentsのCookie取得 ってそのままググレ
0854nobodyさん
2011/04/24(日) 00:35:08.26ID:???0856nobodyさん
2011/04/24(日) 09:26:08.28ID:EQCQhmqqhead linkをいろいろ弄ってるのですができないです・・・
<?php
include('simple_html_dom.php');
$html = file_get_html('http://blog.livedoor.jp/dqnplus/');
foreach($html->find('head link') as $e)
echo $e->outertext;
?>
0857nobodyさん
2011/04/24(日) 09:39:30.79ID:EQCQhmqq今後検索できた人用
p://www.syboos.jp/opensource/bookmark/detail/php-simplehtmldom.html
お騒がせしました
0859nobodyさん
2011/04/25(月) 11:55:06.60ID:Im0lc7sD↓の「データベースの中身」の部分を4列4行ずつで並べたいとのですが、
データベースの中身をすべて並べる方法がわかりません
データベースに接続することはできるのですが、先頭の1つのデータで全部埋まったりしてしまいます
どうしたらよいでしょうか
echo "<table width=\"300\">";
$a = 4;
for ($b = 0; $b < $a; $b++) {
echo "<tr>";
$c = 4;
for ($d = 0; $d < $c; $d++) {
echo "データベースの中身";
}
echo "</tr>";
}
echo "</table>";
0860nobodyさん
2011/04/25(月) 11:59:54.88ID:???0861nobodyさん
2011/04/25(月) 12:02:12.70ID:Im0lc7sDすみません
今は「データベースの中身」になっていますが、実際はちゃんと<td>入れて書いてます
0862。 ◆oDupeixhZv52
2011/04/25(月) 12:04:56.50ID:???0863nobodyさん
2011/04/25(月) 12:19:44.39ID:Im0lc7sD<td width="150">
<p><a href="items.php?=$items[0]">$items[1]</a></p>
</td>
EOF;
「データベースの中身」の部分はこんな感じです
データベースには接続できています
htmlは
<table width="300"><tr><td width="150">
<td width="150">
<p><a href="items.php?=1">AAA</a></p>
</td><td width="150">
<p><a href="items.php?=1">AAA</a></p>
</td><td width="150">
<p><a href="items.php?=1">AAA</a></p>
</td><td width="150">
<p><a href="items.php?=1">AAA</a></p>
</td><td width="150">
……
</td></tr></table>
すみません
これで大丈夫でしょうか?
0864nobodyさん
2011/04/25(月) 12:28:11.72ID:???0865。 ◆oDupeixhZv52
2011/04/25(月) 12:30:55.93ID:???$items = の ある行辺りを見せて。
0866nobodyさん
2011/04/25(月) 12:41:57.00ID:Im0lc7sDwhile (echo <<< EOF
<td width="150">
<p><a href="items.php?=$items[0]">$items[1]</a></p>
</td>
EOF;) {
echo <<< EOF
<td width="150">
<p><a href="items.php?=$items[0]">$items[1]</a></p>
</td>
EOF;
}
↑これだけだとデータベースの中身が表示されるのですが、
これを>>859のfor文で囲うと、先頭の1つのデータで全部埋まったりします
>>865
すみません、データベースに接続する文以外はこんな感じです
わかりずらくてすみません
0867nobodyさん
2011/04/25(月) 12:44:22.10ID:Im0lc7sDwhile ($items = mysql_fetch_array($result))
echo <<< EOF
<td width="150">
<p><a href="items.php?=$items[0]">$items[1]</a></p>
</td>
EOF;
0868nobodyさん
2011/04/25(月) 12:44:35.44ID:???意味不明な感じになってるぞ
■ このスレッドは過去ログ倉庫に格納されています