【PHP】下らねぇ質問はID出して書き込みやがれ 110
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/08/30(火) 17:23:31.78ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 109
http://hibari.2ch.net/test/read.cgi/php/1311803617/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0441nobodyさん
2011/09/10(土) 16:52:49.90ID:???0443nobodyさん
2011/09/10(土) 18:02:55.50ID:8J+b/p280445nobodyさん
2011/09/10(土) 18:33:26.13ID:b1uhXqivmysqlターミナルを使ってMySQLサーバーにアクセスしたいです
どのようにするとよいでしょうか?
環境 mac
XAMPPを、インストールして、MySQLの動作を確認しました。
0446nobodyさん
2011/09/10(土) 18:38:51.61ID:???XAMPPスレで聞け
http://hibari.2ch.net/test/read.cgi/mysv/1128262593/l50
0447nobodyさん
2011/09/10(土) 19:00:10.00ID:???0448nobodyさん
2011/09/10(土) 19:17:37.88ID:???0449nobodyさん
2011/09/10(土) 19:25:22.80ID:8f05fZx5のstageの後の:て何を表しているんでしょうか?
0450nobodyさん
2011/09/10(土) 19:31:39.79ID:???0453nobodyさん
2011/09/10(土) 19:57:58.86ID:???ありがとうございます。勘違いをしていました。
あと一つ質問があります。
$_SERVER変数の中身で
["QUERY_STRING"]=>
string(39) "type=book&seq=4097360221&seq_review=320"
["REQUEST_URI"]=>
string(36) "/book/feed/4097360221/320?stage=ques"
["SCRIPT_NAME"]=>
string(25) "/book/feed/4097360221/320"
というものがあります。
これらからどうにかして
/book/feed/4097360221を抜き出したいです。
320の部分は変数で渡していて定数ではないので320を消す
とかでは無理そうです。どうすればよいでしょうか?
0454nobodyさん
2011/09/10(土) 19:59:00.23ID:8f05fZx5/4097360221の部分も変数で渡していて
文字数などが変化します。
0455nobodyさん
2011/09/10(土) 20:05:54.75ID:???最後の/(スラッシュ)以降を削除するという考えであればこれでいけんじゃね?
preg_replace('/\/[^\/]*/', '', $_SERVER["SCRIPT_NAME"]);
0456nobodyさん
2011/09/10(土) 20:06:23.24ID:???http://toki.2ch.net/test/read.cgi/wildplus/1315628224/
0457nobodyさん
2011/09/10(土) 20:07:31.42ID:???間違えた
preg_replace('/\/[^\/]*$/', '', $_SERVER["SCRIPT_NAME"]);
0458nobodyさん
2011/09/10(土) 22:20:49.07ID:8f05fZx5ありがとうございます!
おかげさまでできました!
0459nobodyさん
2011/09/10(土) 23:49:31.25ID:???0460nobodyさん
2011/09/11(日) 00:18:05.37ID:5ZyXBnROあるのですか?
0462nobodyさん
2011/09/11(日) 04:09:45.23ID:5ZyXBnRO判定するのですか? ''というのは$lang[$i]の値が数値と文字列の
両方を表しているのですか?
0463nobodyさん
2011/09/11(日) 04:26:41.01ID:???$lang = array ('a', 1, 'abc', 123, '');
$n = count($lang);
for ($i = 0; $i < $n; $i++)
{
if ($lang[$i] == '')
{
echo 'nothing' . "\n";
}
else
{
echo $lang[$i] . "\n";
}
}
?>
この場合、$lang[$i] に、値(文字列や数値)が入っていないか判定し、値が入っていなければ 'nothing' を表示する。
$lang[$i] に値が入っている場合は、その値を表示する。
0464nobodyさん
2011/09/11(日) 07:14:32.87ID:???$lang[$i]の中身が文字列の場合、右辺の文字列''(この場合は空文字列)と比較する。
$lang[$i]の中身が数値だった場合、右辺の文字列''が数値に型変換されて 0 と評価されてから比較される。
(数値と文字列の比較では文字列が数値に型変換される。例:'123'→123、'ABC'→0)
よって、if($lang[$i] == '') は、$lang[$i] の中身がが空文字列''であるか、数値 0 の場合に真になる。
0465nobodyさん
2011/09/11(日) 07:41:17.11ID:???0466nobodyさん
2011/09/11(日) 07:57:18.58ID:???strcmpはあくまで「文字列」比較だから==や===と同等ではない。
strcmpの引数に数値(int型等)を代入すると文字列型に変換して比較する。
よって比較する変数の型が文字列でなくてもtrueとなることもある。
==では逆に文字列の方が数値(intだったりfloatだったり)に型変換して比較する。
===では型キャストせず、型も同一かどうかを検査する。
用途によって使い分ければいい。
0467nobodyさん
2011/09/11(日) 08:16:13.63ID:???0468nobodyさん
2011/09/11(日) 08:29:38.28ID:???if($a=='')でいいじゃん。
ばかみたい。
0470nobodyさん
2011/09/11(日) 08:50:06.12ID:???0と""は同じじゃねぇだろ。だれが考えても。
0471nobodyさん
2011/09/11(日) 08:55:17.87ID:???0472nobodyさん
2011/09/11(日) 08:59:40.77ID:???を見ればわかるように、""(空文字列)と==で比較してtrueになるのは、
FALSE、0、NULL、""(空文字列)の4種類もある。
===で比較すればtrueになるのは ""(空文字列)だけ。
0475nobodyさん
2011/09/11(日) 09:06:04.27ID:???0と""は同じじゃねぇ。
0476nobodyさん
2011/09/11(日) 09:09:13.69ID:???知らずに==で比較してると意外な落とし穴があるかもだけど、
大抵の場合は比較する変数にどんな値が入り得るか自分でわかってるだろうからあまり問題ない。
0477nobodyさん
2011/09/11(日) 09:13:16.26ID:???0478nobodyさん
2011/09/11(日) 09:22:39.76ID:???0479nobodyさん
2011/09/11(日) 11:29:38.65ID:???クソじゃん
0480nobodyさん
2011/09/11(日) 12:28:56.02ID:???こういうのって結局、変数に型がないから
演算子の方でがんばろうかってなっちゃって
複雑になってるんだよな。
型があればこんなに演算子は必要なくなるのにね。
0483nobodyさん
2011/09/11(日) 12:53:54.38ID:???a) if ( $a === '' )
b) if ( '' === $a )
a) と b) の違いを教えてください。
0484nobodyさん
2011/09/11(日) 13:57:30.64ID:???このスレでID出すにはどうすればいいのでしょうか。
専ブラはBathyScaheです
0487nobodyさん
2011/09/11(日) 14:25:50.96ID:???多重継承こそクソだと思うけどな
まぁPHPはそんなクソなものでも実装しかねないのが面白いところ
将来的にもしかしたら実装されるかもな
0489nobodyさん
2011/09/11(日) 14:59:55.23ID:???人を無知呼ばわりする前に
コミュニティに参加しろよ
0492nobodyさん
2011/09/11(日) 16:42:50.58ID:5ZyXBnROなんか2chのおすすめはありますか?
0495nobodyさん
2011/09/11(日) 17:05:58.94ID:5ZyXBnROとりあえず、金がないのでFC2のライトプラン月250円
にしようと考えてまがBig-severの方がいいのでしょうか?
0496nobodyさん
2011/09/11(日) 17:28:02.91ID:???CMSのコミュ見てっと、サーバー借りたけど、○○CMSがうまく動かせません、っつよーな質問が結構ある。
0497nobodyさん
2011/09/11(日) 17:34:56.65ID:TcayCkxLif ($result->num_rows > 0) {
$row = $result->fetch_array(MYSQLI_NUM);
$result->close();
}
}
この文の一行目で
Fatal error: Call to a member function query() on a non-object in
というエラーが出ます。
mysqlにSELECT title FROM tbReview WHERE seq = 903;などで
打ち込むとちゃんと値が取れるのですが、
エラーはどうすれば解消されるでしょうか?
0498nobodyさん
2011/09/11(日) 17:47:04.80ID:???0499nobodyさん
2011/09/11(日) 17:50:08.82ID:???旧携帯のdocomo用は下のような感じで出力しています。
$agent = $_SERVER['HTTP_USER_AGENT'];
if (preg_match("/^DoCoMo/i", $agent)) {
srand((double)microtime()*1000000);
$ad_list1 = file("ファイル);
$ad_key1 = array_rand($ad_list1, 2);
$ad1 = $ad_list1[$ad_key1[0]];
// 表示
echo $ad1;
>if (preg_match("/^DoCoMo/i", $agent)) {
ここのユーザーエージェント部分を変えればいいだけなのかと
単純にif (preg_match("iPhone|Android|iPod", $agent)) { と入力しても出力されませんでした。
わかる方お願いします。
0500nobodyさん
2011/09/11(日) 18:01:06.48ID:???にすればいいんじゃない?
0502nobodyさん
2011/09/11(日) 18:10:38.23ID:rcvtLkju$mysqli変数がnullになってるよん。
queryメソッドを呼び出す前を辿っていって、ちゃんと$mysqli変数にオブジェクトがセットされているかを確認すべし。
0503nobodyさん
2011/09/11(日) 18:13:45.68ID:???>>500さんが指摘してる様に、パターンの構文がおかしい。
ここ読んでみて↓
正規表現 (Perl 互換) 導入
ttp://www.php.net/manual/ja/intro.pcre.php
正規表現 (Perl 互換) 例
ttp://www.php.net/manual/ja/pcre.examples.php
0504nobodyさん
2011/09/11(日) 18:15:33.75ID:rcvtLkjuphp5.4からだけど、trait(scalaのぱくりかな?)が使えるようになる。
ようするにmix-in。
まぁそれがいいか悪いかは別として、便利だから使うと思う。
0507nobodyさん
2011/09/11(日) 20:06:35.97ID:H0qzNaRx0509nobodyさん
2011/09/11(日) 20:33:21.53ID:???0510nobodyさん
2011/09/11(日) 20:39:54.30ID:???$b=simplexml_load_file('site2');
0511nobodyさん
2011/09/11(日) 20:43:49.71ID:vvss0p+f【PHPのバージョン】5.2.17
【連携ソフトウェア】MySQL
【質問内容】
実行に15分くらいかかるphpを一日一回定期実行させたいのですがどのような方法がいいでしょうか
・phpファイルはさくらのレンサバにある
・cron使ったら当然のごとくkillされた
・ブラウザ上でなら普通に完走する
・使用PCはOS X Lion
あと,別の軽いphpもcronで動かしてみたのですが稀にkillされます
こっちもいい方法ないでしょうか?
よろしくお願いします
0512nobodyさん
2011/09/11(日) 20:50:54.33ID:???0513nobodyさん
2011/09/11(日) 22:14:07.35ID:???>・cron使ったら当然のごとくkillされた
>あと,別の軽いphpもcronで動かしてみたのですが稀にkillされます
さくらでcronでkillされるなんて聞いたことないな。
killされたことをどうやって判断してるの?
0514nobodyさん
2011/09/11(日) 22:18:00.84ID:vvss0p+fkillされる度にCron Daemonさんからメールが来るよ
どっかに1分以上動かしてたら怒るよって書いてあったと思う
0515nobodyさん
2011/09/11(日) 22:24:17.53ID:???金払って第三者に毎日アクセスするように頼む
後者がおすすめです
0516nobodyさん
2011/09/11(日) 22:53:58.04ID:???0517nobodyさん
2011/09/11(日) 22:56:48.94ID:???0519nobodyさん
2011/09/11(日) 23:24:30.70ID:fFrzDoDT--with-intl=shared
としてもそれらしきshared objectが作られないのですが
intlはsharedにすることはできないのでしょうか?
0520nobodyさん
2011/09/11(日) 23:31:32.04ID:???file_get_contentsとか使ってURL経由でキックすれば
ブラウザ出動作させたときと同じ条件にならないかな
0521nobodyさん
2011/09/11(日) 23:33:23.48ID:???file_get_contentsが終了するまで結局cronのプログラムが実行されたままにならないか?
0522nobodyさん
2011/09/12(月) 00:05:10.62ID:???あーそうか
結局は1分縛りの無い別サーバから叩かないといけないか
デスクトップやAndroidから叩くよりはいいと思うけど、いまいちやね。
0523nobodyさん
2011/09/12(月) 00:52:23.33ID:???今は月500円以下でroot権限もてるVPSが
借りられるんだからさ。
0524nobodyさん
2011/09/12(月) 01:12:55.81ID:???現在のサーバーの制約内でどう解決するかって話じゃないのか。
0525nobodyさん
2011/09/12(月) 01:22:30.85ID:???0526nobodyさん
2011/09/12(月) 01:37:02.27ID:???0527526
2011/09/12(月) 01:54:51.04ID:uM4EX7+a0528nobodyさん
2011/09/12(月) 02:27:45.01ID:???0529519
2011/09/12(月) 04:19:30.32ID:???てゆうかpeclでインストールした方がはやかった
ピックルピックル
0530511
2011/09/12(月) 08:50:24.72ID:kBzzbu41root権付きVPSに乗り変えるのも面白そう。他にも出来ること増えるし
サンクス
0531nobodyさん
2011/09/12(月) 11:10:47.12ID:???0532nobodyさん
2011/09/12(月) 15:02:49.71ID:WoFdKos4$hoge ="abcdefgijk"
を正規表現で"de"がマッチしたら"<br>「defg」が含まれています"を追加して
$hoge ="abcdefg"."<br>「defg」が含まれています"
と$hogeに追加されるようにしたいのですがいい方法とかありますでしょうか?
0534nobodyさん
2011/09/12(月) 15:05:23.41ID:???検索して見つかった位置から検索文字数+2文字分とりだすのと
先頭からその位置まで取り出せればいいんじゃない?
0535nobodyさん
2011/09/12(月) 15:30:27.25ID:WoFdKos4検索して、マッチしたらマッチした部分を取り出すというのがどうも見当たらなくて
それにreplaceじゃ置き換えてしまうので、追加するという形にはできませんし、もう何が何やら
0536nobodyさん
2011/09/12(月) 15:37:03.67ID:???http://php.net/manual/ja/function.preg-match.php
matches辺り
例題4のようにprint_rしてみればなんとなくわかるんでない
0537nobodyさん
2011/09/12(月) 15:37:13.40ID:???$hoge ="abcdefgijk";
if(preg_match("/(de)/",$hoge,$match)){
$hoge .= "<br>「".$match[1]."」が含まれています";
}
0538nobodyさん
2011/09/12(月) 15:39:02.18ID:WoFdKos4ありがとうございます
$matchに格納するやり方もあるんですね、助かりました!
0539nobodyさん
2011/09/12(月) 15:42:09.04ID:???0540nobodyさん
2011/09/12(月) 15:54:00.55ID:+PNH4AO0■ このスレッドは過去ログ倉庫に格納されています