【PHP】下らねぇ質問はID出して書き込みやがれ 131
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/11/10(日) 15:46:09.34ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 130
http://kohada.2ch.net/test/read.cgi/php/1379566039/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0695nobodyさん
2013/12/10(火) 03:34:52.84ID:???0696nobodyさん
2013/12/10(火) 08:21:30.23ID:???自分で確認するわけが無い。
0697nobodyさん
2013/12/10(火) 12:54:42.14ID:???0698nobodyさん
2013/12/10(火) 17:13:14.99ID:ZXq0cpwgvar hairetu = array();
}
$h = new none;
$h->hairetu['newkey'] = ''newvalue;
こういうことをしようとすると
Cannot use object of type stdClass as array
と怒られるわけですがnewkey付きで要素は追加できないの?
0699698
2013/12/10(火) 17:24:01.12ID:???$h->hairetu['newkey'] = ''newvalue; ←こっちだと
arrayではなくてobject(stdClass)になるからだめなんだね
classを違う書き方することにします。
0700nobodyさん
2013/12/10(火) 17:46:31.39ID:???うちの環境(5.3でも5.5でも)だと普通にそのソースで通る
ダブルクォーテーションは足した
何か他間違えてるよ
0703698
2013/12/10(火) 18:05:04.88ID:???PHP 5.5.6-1 (cli) (built: Nov 21 2013 09:55:16)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies
$time = time();
$h->hairetu[] = $time; ←これだとvar_dumpはarray()だしvalueはintだけど
$h->hairetu[$time] = 'value';←これにするとarrayではなくobject(stdClass)になって
キーがstringにになってしまう。$timeを123の数字に置き換えても文字列になるから
仕様なのだと思う。
0704698
2013/12/10(火) 18:10:49.00ID:???確かにこっちに書いた部分だと通ったw
出直してきます!
0705nobodyさん
2013/12/10(火) 18:11:40.85ID:???0706698
2013/12/10(火) 18:31:47.41ID:???お騒がせしました。
夕食後にserializeにしたいと思います。
class none {
var $hairetu = array();
}
class s {
var $Value = 'value';
}
$s = new s();
$h = new none;
$time = time();
$name = 'hairetu';
$h->{$name}[$time] = $s->Value;
var_dump($h);
$json = json_encode($h);
var_dump(json_decode($json));
0707nobodyさん
2013/12/10(火) 20:40:26.57ID:???0708nobodyさん
2013/12/12(木) 18:44:48.26ID:fJCy4SYM変数を <?=変数?> で表示してたんですが、PHP5で表示されなくなりました
この書き方は廃止されたのでしょうか?
また廃止されていた場合、
<?php
echo 変数;
?>
の書き方しかないのでしょうか?
ググりたいんですがなかなかこの点について書いてるサイトが見つからず困ってます
0710nobodyさん
2013/12/12(木) 19:16:08.72ID:???やっちゃったか
0712nobodyさん
2013/12/12(木) 20:07:51.06ID:fJCy4SYMいけました!
ありがとうございます
0714nobodyさん
2013/12/13(金) 01:47:44.69ID:???0716nobodyさん
2013/12/13(金) 09:39:31.42ID:???0718nobodyさん
2013/12/13(金) 15:25:45.87ID:???0719nobodyさん
2013/12/13(金) 15:53:22.32ID:???功績は認めるけど、性格が小物すぎる
0720nobodyさん
2013/12/13(金) 15:56:19.52ID:???0721719
2013/12/13(金) 16:28:40.67ID:yL3mhT89ID出しておくわ
0722nobodyさん
2013/12/13(金) 16:50:28.51ID:???わざわざって、2chでPHP関連の総合スレ的役割なのは、このスレしかないじゃん
俺からすると、別の場所で書く方がわざわざ感を感じるけどな
0723nobodyさん
2013/12/13(金) 17:04:47.52ID:???それを言うなら2chで大垣関連の総合スレがこのスレだからここでやるおだろ
0724nobodyさん
2013/12/13(金) 17:11:03.83ID:???PHPとセキュリティの解説書12種類を読んでSQLエスケープの解説状況を調べてみた
http://blog.tokumaru.org/2013/12/php12sql.html
> 安全なSQLの呼び出し方は、公開されてから一度も改版されていないので、「安全になった」という表現は
> 適当でありません。現在のものが安全だとすれば、それはもともと安全であったことを意味します。
バッサリ
0725nobodyさん
2013/12/13(金) 17:15:45.51ID:???どこがどうおかしいのかの説明がなければ意味不明だぞ。
0726nobodyさん
2013/12/13(金) 17:25:56.11ID:???つい最近、大垣氏が次のようなブログを書いたんだけど、
IPAの「安全なSQLの呼び出し方」が安全になっていた
http://blog.ohgaki.net/ipa-how-to-use-sql-calls-to-secure-your-web-site
徳丸先生が、それをバッサリと切り捨てたって話ね。
関連Togetter:
大垣さんのIPA批判
http://togetter.com/li/599648
0727nobodyさん
2013/12/13(金) 17:27:51.83ID:yL3mhT89さすが徳丸さんだな
とてもわかりやすい解説してるし、意見を押し付けていない
何より徳丸本と大垣本も解説してくれたのはよかった
0728nobodyさん
2013/12/13(金) 17:31:38.18ID:???0729nobodyさん
2013/12/13(金) 18:55:09.64ID:???そもそも質問じゃねーから、勝手に総合スレ扱いするのが間違い。
俺様の気になった事柄がみんなの話題になるとうれしいだけだろう。
0730nobodyさん
2013/12/14(土) 00:28:35.98ID:???ツイッター参戦すればいいだけでここは場違い
0731nobodyさん
2013/12/14(土) 01:37:34.24ID:???このスレの回答者も平気でプリペアてかバインド使わないで良いとか言うから心配だ
0732nobodyさん
2013/12/14(土) 06:29:09.87ID:???0733nobodyさん
2013/12/14(土) 09:05:24.68ID:???そんなの見たことないけど無理して妄想ででっちあげしなくてもいいのよ
0734nobodyさん
2013/12/14(土) 13:34:25.00ID:N7nQofZQcmsを使わずに、phpのみのプレーンでサイト製作中なのですが、
cmsのような投稿記事の仕組みを実現したいと思っています。
トップページ(index.php)に「お知らせ記事」の最新1件だけ、表示させて、「全件見る」のリンクから「お知らせ記事」のアーカイブページ(archive.php)に全件表示させたいです。
それで記事なのですが、archive.phpにソースを追加していくのではなくて外部ファイル(info.inc)に記述してそれを読み込む形にしたいと思っています。
info.incには
<div class="post num001">
<h3>お知らせ1</h3>
<p>文章。文章。文章。文章。文章。</p>
</div>
<div class="post num002">
<h3>お知らせ2</h3>
<p>文章。文章。文章。文章。文章。</p>
</div>
・・・続く
といった形で、お知らせ記事をエディタで追加記述しようと思っています。
・index.php、・archive.php、・info.inc
にどのような構文を書けば実現できるでしょうか?宜しくお願いします。
0735nobodyさん
2013/12/14(土) 13:40:22.39ID:???info.inc のフォーマットにもよるけど、上のような内容なら、index.php では空行まで読めばいいんじゃないかな
もちろん、require は使えないから、ファイルを読む関数を使って echo で出す感じになると思う
archive.php では単純に require すればいいと思う
0736nobodyさん
2013/12/14(土) 13:46:08.86ID:N7nQofZQ早速のご回答ありがとうございます。
しかしながら、php素人でして、具体例的なソースコードを教えていただければ幸いです。
0737nobodyさん
2013/12/14(土) 13:50:00.54ID:???素人でも書いてみなよ
そしたらコメントつけるからさ。他の人もコメントしてくれるよ
ただ教えてもらうより、学習の能率が断然違う
0738nobodyさん
2013/12/14(土) 22:10:27.56ID:???>>1-5 読め
お前が書いたソースを貼れば校正や意見はもらえる。
てめえの仕事を人に無料でやらせようとすんな。入門書読んでから取り組む程度のことができないなら大人しく人に金払ってやってもらえカス。
皆さん、こういうカスは職業プログラマの質を下げ単価を下げる原因を作り技術者を安くこき使うことしか考えないカスな輩ですので相手にしないようにしましょう。
0739nobodyさん
2013/12/14(土) 23:01:51.81ID:N7nQofZQinfo.incには
<!--Post STA-->
<div class="post num001">
<h3>お知らせ1</h3>
<p>文章。文章。文章。文章。文章。</p>
</div>
<!--Post END-->
<!--Post STA-->
<div class="post num002">
<h3>お知らせ2</h3>
<p>文章。文章。文章。文章。文章。</p>
</div>
<!--Post END-->
とコメントをいれ、
archive.phpには
<?php
$src = file_get_contents('http://URL');
$src = mb_convert_encoding($src, 'UTF-8', 'auto');
$res = preg_match('/<!--Post STA-->(.*)<!--Post END-->/su', $src, $mch);
echo $mch[1];
?>
こんな感じでなんとか表示させることはできました。
あと、indexの最新が分かっていない状況です。
修正やご指南宜しくお願いします。
0740nobodyさん
2013/12/14(土) 23:58:11.16ID:3rH+tT3Xプログラムは魔法じゃない
つまり
指示したようにしか動作しない
つまり
1件だけ取り出したいなら
基本的にはそれを区別して取り出せるように保存する必要がある
細かいところにまで行き届いてるプログラムには一々そういう手間をかけてこさえてあるんだよ
0741nobodyさん
2013/12/15(日) 00:01:18.71ID:???自分である程度やったなら少しアドバイスする。
最新をinfoの上に追記するか下に追記するかでプログラムは変わるが、お知らせなら上に追加して行く方がいいだろう。
上に追加するならstrpos関数で最初に出てくる<!--Post END-->の位置までを取得してsubstrで一つ目の記事を取得するといい。
$latest = substr($text, 0, strpos($text, '
<!--Post END-->'));
みたいな感じだな。
保存フォーマットがスマートじゃないが手書きなら仕方あるまい。
0742nobodyさん
2013/12/15(日) 00:08:18.33ID:???ではヒントを
正規表現の (.*) の部分は greedy match といってなるべく長い文字列にマッチするようになっている
abcabcabc に a(.*)c をマッチさせると、 bcabcab がひっかかる
0743nobodyさん
2013/12/15(日) 00:13:23.33ID:???自分である程度やったなら少しだけアドバイスしてやる。
最新をinfoの上に追記するか下に追記するかでプログラムは変わるが、お知らせなら上に追加して行く方がいいだろう。
上に追加するならstrpos関数で最初に出てくる<!--Post END-->の位置までを取得してsubstrで一つ目の記事を取得するといい。
$latest = substr($text, 0, strpos($text, '
<!--Post END-->'));
みたいな感じだな。
保存フォーマットがスマートじゃないが手書き更新で素人でもできるが目的があるなら仕方あるまい。
だが、なぜURLから読み込むのとかarchiveはそんなプログラム書く必要あんの?とかツッコミどころは多すぎるからもう身近な人にレビューしてもらえよ。あんた一人で納品は無理だわ。
0744nobodyさん
2013/12/15(日) 01:23:13.20ID:ASKbBAVd大人しく聞いてたらアンタ何様?趣味で作っているサイトだから納品とか言ってもねーこと勝手に述べてんじゃねーよ。
たかだかphpごときで、2chで素人相手にえらそーにして喜んでるレベルじゃ、現実社内で誰にも相手されて無い日陰もんのさびしー奴なんだろな。
ろくに教える事もできないんだったら黙ってろよ。無視すればいいだろ?お前みたいな存在が、掲示板の質を落とすんだよ。
注意したいことがあっても、いい大人だったら言葉使いくらいちゃんとしろよ。
「カス」とか言ってる事が低俗な人間だぞ。まあ頑張れ
0745nobodyさん
2013/12/15(日) 01:38:10.14ID:???0746nobodyさん
2013/12/15(日) 02:35:53.39ID:???たかがそのpho「ごとき」だってさ。たかがなら人に聞かずにひとりでやれば?
0747nobodyさん
2013/12/15(日) 03:47:29.81ID:???archive.php:
<?php
$src = file_get_contents('./info.inc');
preg_match_all('/<!.+?>(.*?)<!.+?>/s', $src, $m);
foreach ($m[1] as $v) {
print($v);
}
index.php:
<html>
<body>
<?php require './archive.php'; ?>
</body>
</html>
0748nobodyさん
2013/12/15(日) 08:21:04.01ID:???0750nobodyさん
2013/12/15(日) 11:59:54.80ID:???その要求自体がなんだかなあと思わないでもないが、分からないでもない
0751nobodyさん
2013/12/15(日) 12:40:58.89ID:???やっぱ教えて君で人に仕事させようとするカスだな。もうスルーしよ。
0752nobodyさん
2013/12/15(日) 13:15:52.51ID:???やりたいなら場数を踏みなさいって言ってあげればよかったのに
0753nobodyさん
2013/12/15(日) 13:43:32.16ID:???趣味なんだから自分からの要求だろ
自分からの要求は容易に変えられる
CSVに変えるのが一番まとも
0754nobodyさん
2013/12/15(日) 13:55:45.36ID:NrEa4WncError:Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13)
phpのソースはこれ。
<html>
<body>
<?php
$link = mysql_connect('localhost:/tmp/mysql.sock', ‘root’, ‘password’);
if (!$link) {
die('Error:'.mysql_error());
}
$close_flag = mysql_close($link);
?>
</body>
</html>
コマンドラインでは接続できる。
# mysql -S /tmp/mysql.sock -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.5.31-log Source distribution
環境はCentOS 6.4でhttpdもphpもyumで入れた。
なんでこんな簡単そうなのが動かないんだろう?
0755nobodyさん
2013/12/15(日) 14:45:50.72ID:???エラーメッセージの13はpermission deniedだから、その辺を疑ってみては?
httpdユーザから/tmp/mysql.sockにアクセスする権限があるかどうか、とか
0756nobodyさん
2013/12/15(日) 15:05:17.54ID:???サンキュウ。一応誰でもアクセスできるはずなんだけど。勘違いしてるかな?
# ls -la /tmp/
drwxrwxrwt. 13 root root 4096 Dec 15 05:03 .
dr-xr-xr-x. 23 root root 4096 Dec 15 03:38 ..
…
srwxrwxrwx. 1 mysql mysql 0 Dec 15 05:03 mysql.sock
httpdはユーザapacheで動いてる。
0757nobodyさん
2013/12/15(日) 16:17:11.22ID:???apache使わずに直接phpでならアクセスできるんで、
apache側の権限の問題みたい。
とりあえず、ありがとう。
0758nobodyさん
2013/12/15(日) 17:15:35.68ID:???0759nobodyさん
2013/12/15(日) 18:30:48.75ID:???httpd.confもいじるところがない。困った。
php単体では動くからスレ違いだよね。
0760nobodyさん
2013/12/15(日) 18:40:18.06ID:???0761nobodyさん
2013/12/15(日) 19:03:59.94ID:???apacheからだとダメ。
明示的にソケット名を書いても書かなくても同じ。
そのくらいは全部試してるよ。
0763nobodyさん
2013/12/15(日) 20:31:36.75ID:y5Xmkgcg,使うだけで面倒な手間かかるとかないわー
0765nobodyさん
2013/12/15(日) 22:30:06.88ID:r6HNRZ2+centosでyumで入れた、php.iniの
mysql.default_scoket =
は空。空だと、mysqlの設定に従う。
こっちはデフォルトだと
/var/lib/mysql/mysql.sock
/tmp/mysql.sock
になってるってことは、どっかの設定をいじってるか、
他の環境で書かれた見本をそのまま使ってしまったか。
0766nobodyさん
2013/12/15(日) 22:31:29.50ID:???0767nobodyさん
2013/12/16(月) 03:03:17.87ID:???そもそも最初の質問時、mysqlコマンドでソケット名を明示的に書いてるよ。
そんで、やっとわかった。SELinuxが邪魔してた!!!
/etc/selinux/configでdisabledにしてやった。ざまあみろ
SELinux最低。あの海外って奴も最低。ろくなドキュメントも資料もなしで
こんなダメダメ機能作っちまうんだから。
0769nobodyさん
2013/12/16(月) 08:25:20.63ID:???0770nobodyさん
2013/12/16(月) 09:12:48.07ID:???クリアできて良かったですな
0772nobodyさん
2013/12/16(月) 11:52:15.85ID:???ソケット名がどうしたとかrestartしろとか、見当違いの意見ばっか書きやがって。
何にもわかってないの、お前らだろ。
基本的な設定でつまずいた?その基本的な設定について想いもよらず、書いておいたソケット名も観ないで、
php.iniがどうしたとか、知ったかかましたのは誰だよw
そもそもこんなレベルのyohgakiってバカがPHP認定試験なんてやってる時点で
お前らPHPやろうどものオツムのレベルも知れるってもんだよw
http://bogus.jp/wp/?p=1452
0773nobodyさん
2013/12/16(月) 11:56:52.97ID:???0774nobodyさん
2013/12/16(月) 12:09:30.34ID:???0776nobodyさん
2013/12/16(月) 14:13:55.53ID:???一番模範にならんといかんのに、あんだけ重いと、
PHPで作ったサイトなんてゴミじゃないかと思うだろ
0778nobodyさん
2013/12/16(月) 15:01:07.85ID:???0780nobodyさん
2013/12/16(月) 16:20:51.66ID:AASW/wKp使ってる人PHPerいると思うんだけど
昔のEclipsePDTと設定方法変わってるようで出来ないんだけど
0781nobodyさん
2013/12/16(月) 16:23:13.48ID:AASW/wKphttp://www.javadrive.jp/eclipse3/install/index4.html
見たら出来た
0782nobodyさん
2013/12/16(月) 22:30:47.92ID:xJSmvJCz0783nobodyさん
2013/12/17(火) 15:03:14.51ID:YSE5hBqx天和というオンライン麻雀のURLなんですが、
この?以降ってGETで取れるんでしょうか?
0785nobodyさん
2013/12/17(火) 15:35:45.50ID:YSE5hBqxありがとうございます!
0786nobodyさん
2013/12/17(火) 16:13:22.84ID:???0787nobodyさん
2013/12/17(火) 23:13:47.59ID:???php.iniのdefault_socket_timeoutの設定を30として、
30秒以上たったらタイムアウト処理をしたいのですが、
file_get_contentsがタイムアウトの判定をして戻り値が帰ってくるのがリクエストしてから60秒後になります。
なぜ30秒後ではなく60秒後になるのか理由がわかる方いましたらお願いします。
0788nobodyさん
2013/12/17(火) 23:32:30.00ID:???0789787
2013/12/17(火) 23:40:28.62ID:3IDEqrk4>>787宜しくお願いします
0790nobodyさん
2013/12/18(水) 00:39:42.75ID:???俺はhttpリクエストにfile_get_contents使ったことないから内部実装知らんし
使う気ないから調べる気もないから確認手順くらいだが。
iniに直接書いたんだよな?webサーバの再起動はしたよな?
直前でini_getしてみたか?タイムアウトの値はちゃんと変わってる?
変わってないなら書き換えたiniは正しい?
ini_set使ってるなら権限あるか?
ちゃんと反映されてるのにそうなるなら
ソケットタイムアウトとリクエストタイムアウトの設定別なんじゃないか?
他の言語でもcurl関数でも別に設定できるもんだし。リクエストタイムアウトの方が60になってるとかじゃないの?
第三引数にstream contextでタイムアウト渡せるみたいだし、それも渡して見たらどうだい?
0791nobodyさん
2013/12/18(水) 00:44:20.61ID:???30秒指定して60秒になるなら15秒に設定すればよい
0792nobodyさん
2013/12/18(水) 00:49:40.83ID:???それでうまくいかない(60秒のまま)なら、設定すべき場所が違うってことだな。
しかしなんでPHPは設定ファイルが変に散らばってるんだ
■ このスレッドは過去ログ倉庫に格納されています