【PHP】下らねぇ質問はID出して書き込みやがれ 116
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/02/26(日) 11:49:58.54ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 115
http://kohada.2ch.net/test/read.cgi/php/1327005803/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0042nobodyさん
2012/02/27(月) 00:59:20.23ID:???0043nobodyさん
2012/02/27(月) 01:10:58.93ID:hV/3kGWo組み込み関数とはどういう意味でしょうか?
phpはオブジェクト指向言語ではないのですか?
>>42
そうなんですか!
0044nobodyさん
2012/02/27(月) 01:21:29.62ID:???0045nobodyさん
2012/02/27(月) 01:27:31.61ID:???メモメモ・・・・。
0046nobodyさん
2012/02/27(月) 01:58:57.65ID:???えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
0047nobodyさん
2012/02/27(月) 02:14:52.39ID:???そうなんだ・・・。
0048nobodyさん
2012/02/27(月) 04:22:47.80ID:???if文とかfor文とかをオブジェクトとしてPHPに実装している凄腕なひとなんだな
ならもぉPHPやる必要ないよね〜
自分専用の言語作ったほうが早くない?
0049nobodyさん
2012/02/27(月) 07:33:52.55ID:???まあ頑張れよ(棒読み)
0050nobodyさん
2012/02/27(月) 09:06:51.34ID:???>>43でもないんだけどオブジェクト指向言語のご経験は?
このスレは
質問する奴も馬鹿、答える奴も馬鹿
0053nobodyさん
2012/02/27(月) 09:32:22.59ID:3PUrmhLemimeタイプがx-pngが出てきて、pngを許可にしてたが弾かれた、
x-pngってよく出てくるのでしょうか?
php歴2年で初めてみました。
0054nobodyさん
2012/02/27(月) 09:47:49.06ID:???0055nobodyさん
2012/02/27(月) 12:48:43.03ID:???0057nobodyさん
2012/02/27(月) 13:43:58.51ID:???0058nobodyさん
2012/02/27(月) 13:44:04.60ID:???MIMEタイプをどう拾うかにもよるけれども
$_FILEで見てるならば、ブラウザの申告したものを見てることになる。
image/pjpegとか出てくるだろ。その環境だと。
0059nobodyさん
2012/02/27(月) 15:13:08.80ID:EtiAdS4g【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】
以下のようにすると、POSTで取得した値が2012-02-27になるのですが、
print '<td>' . $day . '<input type="radio" ';
print 'name="myday" value="2012-02-27">';
以下のように変数でいったん置き換えると0000-00-00になります。
$s = "2012-02-27";
print '<td>' . $day . '<input type="radio" ';
print 'name="myday" value=$s>';
どこがどう間違っているんでしょうか?
教えてください。よろしくお願いします。
0060nobodyさん
2012/02/27(月) 15:16:46.65ID:???0061nobodyさん
2012/02/27(月) 15:18:35.12ID:???0062nobodyさん
2012/02/27(月) 15:30:27.64ID:EtiAdS4g解決しました!
どうもありがとうございました。
0063nobodyさん
2012/02/27(月) 19:29:00.80ID:4hoIqr2gそれを、Cache_Liteでキャッシュしつつ表示するっていうものを作りたいのですが
どうやっても、FFで確認したら
「画像ファイル http://~/img.php は壊れているため 表示できませんでした。」
と表示されます。
内容としては、
img.php
<?php
$url = 'http://example.com/'.$_GET['id'].'.jpg';
$image = file_get_contents($imgUrl);
header('Content-Type: image/jpeg');
echo $image;
?>
を、
<img src="http://example2.com/img.php?id=hoge" />
という感じで呼んでいるだけなのですが。。。なぜか上手く表示されません。
すいません。宜しくお願いします。
0064nobodyさん
2012/02/27(月) 19:49:40.69ID:???006563
2012/02/27(月) 20:03:10.95ID:4hoIqr2g周りではこう呼んでるんで。。
0066nobodyさん
2012/02/27(月) 20:21:08.36ID:???一個ずつ変数をechoってってどこにちゃんと何が入っているかとか
確認していけばすぐ解決するよ。それ。
006763
2012/02/27(月) 20:43:16.07ID:4hoIqr2gありがとうございます。地道にやってみます^^;
0069nobodyさん
2012/02/28(火) 00:08:14.80ID:???これ、本当にこうなのかなぁ
0070nobodyさん
2012/02/28(火) 00:09:33.73ID:???0071nobodyさん
2012/02/28(火) 00:20:13.97ID:???えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
0072nobodyさん
2012/02/28(火) 00:20:47.93ID:???0073nobodyさん
2012/02/28(火) 00:24:21.48ID:???0074nobodyさん
2012/02/28(火) 00:43:53.69ID:???0075nobodyさん
2012/02/28(火) 00:44:16.09ID:???死亡
0076nobodyさん
2012/02/28(火) 00:49:28.33ID:???0077nobodyさん
2012/02/28(火) 00:50:49.23ID:???0078nobodyさん
2012/02/28(火) 00:53:26.65ID:???0079nobodyさん
2012/02/28(火) 00:58:58.90ID:???0080nobodyさん
2012/02/28(火) 01:43:48.55ID:???0081nobodyさん
2012/02/28(火) 01:46:05.34ID:???0084nobodyさん
2012/02/28(火) 08:17:07.40ID:MraNK8dlindex.phpを振り分けファイルにして、作業ごとにphpファイルを振り分けようと思っています。
ニーズにより、$_POST["mode"]や $_GET["mode"]を持って飛んでくるので、それらを
if else か switch で振り分けて、表示させるところまではできました。
index.php で振り分ける前に、ちょっと何かして、変数を渡す必要があるので、
header('Location: ./index.php?mode=hoge');
ではなく、require か include で次のページに移っています。
それで、たとえばhoge.php で作業をして、index.php経由でどこかのページに行ったときに、
今度は作業をしたあとなので(データベースの変更など)内容が変わって表示されるべきところ
さっき表示したキャッシュが残っていて、表示される内容が更新されません。
ヘッダ送信ならno-cacheを送信することもできますが、requireで読み込むファイルを
再読み込みさせるにはどうしたらいいでしょうか。
require しているのは、作業するphp で、そこで加工して、smartyに渡して表示させています。
今は、FTP でindex.phpを一度削除しない限り、内容が更新されません。
smarty の moge.tpl をいったん削除しても、(そのファイルがなくても)index.php で
require した時のキャッシュが残っているのか、表示されます。
【PHPのバージョン】PHP 5.2.17
【OS】わかりません、さくらインターネットのレンタルサーバーです
どこに問題があるのか、把握できないため、わかりにくくて申し訳ありません。
そもそもこういう仕様が間違っているのでしょうか。何かアドバイスがありましたら
よろしくお願いします。
0085nobodyさん
2012/02/28(火) 08:29:59.03ID:???素直にZendやcakeを勉強して見ては
0086nobodyさん
2012/02/28(火) 09:01:53.67ID:???キャッシュやめてしまえ。
テンプレート消しても表示するんなら、compile_check falseになってんだろ。
008784
2012/02/28(火) 10:46:21.69ID:MraNK8dl趣味でしょぼしょぼやっているので、フレームワークというとなんだか大げさな
気がしてしまって・・・
>>86
いま調べてきたら trueになっています。
ブラウザの問題かと思って、IEとFirefoxを試してみましたが結果は同じでした。
毎回requireさせる方法ってないもんでしょうか。また、問題切り分けのための
何かテストできることがありましたら、アドバイスお願いします・・・。
0088nobodyさん
2012/02/28(火) 11:17:57.96ID:???0089nobodyさん
2012/02/28(火) 11:19:33.76ID:???0090nobodyさん
2012/02/28(火) 12:45:49.64ID:gmDIsIfQ検索サービスから検索されなくするにはどうするのですか?
0091nobodyさん
2012/02/28(火) 13:28:53.34ID:???たぶん、質問している側と読んでいる側で
「ページを移る」の意味に混乱が生じていると思う。
includeやrequireは「移る」って言わず整理しなおして
もっかい説明してちょ。
なんとなく理解できるけど、そしたらもうちょっとがんばれるかもなんで。
0092nobodyさん
2012/02/28(火) 13:32:43.22ID:???0093nobodyさん
2012/02/28(火) 13:42:20.11ID:???smartyのキャッシュじゃなくて、PHPのキャッシュかもしれない。
eAcceleratorとかAPCとか
0094nobodyさん
2012/02/28(火) 14:26:48.13ID:???めんどくさい質問の時は
公開できる範囲内でできるだけ具体的なコード貼ってくれ
複数レスにまたがってもいいから
009584
2012/02/28(火) 14:33:41.95ID:MraNK8dl自分でも何がわからないのかよくわからなくて混乱しています。
>>88
index.phpのキャッシュといわれれば、そういう風な気もしてきます。(smartyの
テンプレートを削除しても問題なくページが表示されていたので)
>>91
ちょっとわたしの勘違いがあったかもしれませんが、index.php の終わりの方で
include 'moga.php';
exit;
としたら、そのmoga.phpを実行する---そっちのページに行くと思っていました。
マニュアルや、includeについて説明されているページをあちこち読んできたのですが
includeするってことは、読み込まれたページがindex.phpの一部になるのですか?
>>93
phpのキャッシュというのもありそうですね・・・
eAccelerator等は、特に追加でいれていません(デフォルトで入っているかどうか
調べ方もわかりません、すみません)
0096nobodyさん
2012/02/28(火) 14:34:31.94ID:MraNK8dlはい、すみません。これからちょっと用意してきます。
0098nobodyさん
2012/02/28(火) 15:57:54.55ID:???【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】
定期的にバックアップを自動で行いたいのですがテーブル数が多いので一括でバックアップできる方法を探しております。
execやsystemが使用出来ないサーバーなんですが、PHPからmysqldumpと
同じ効果がある関数などあったりしますか?
0099nobodyさん
2012/02/28(火) 16:03:41.12ID:???010098
2012/02/28(火) 16:03:59.59ID:2XRQp2f6ID出てませんでした。
010198
2012/02/28(火) 16:04:44.10ID:2XRQp2f6cronは使えます。
0102nobodyさん
2012/02/28(火) 16:46:24.37ID:???0103nobodyさん
2012/02/28(火) 16:50:53.65ID:???010484
2012/02/28(火) 17:15:31.16ID:MraNK8dlPHPを使って、うちの事業所の発送管理をしようと思っています。
[index.php]
<?php
session_cache_limiter("public");
session_start();
session_regenerate_id();
〜ここでセッションに前に渡した鍵を持っているか確認〜
login名により、実施可能な処理を振り分けとか
if ($_GET["mode"]=="denpyo_input"){
include "denpyo_input.php";
exit;
} else if($_POST["mode"]=="hasso") {
include "hasso.php";
exit;
} else if(($_POST["mode"]=="hasso_mail")||($_GET["mode"]=="hasso_mail")) {
include "hasso_mail.php";
exit;
} else if($_POST["mode"]=="send_hasso_mail"){
include "send_hasso_mail.php";
exit;
・・・と似たような処理がたくさんあります
今つまっているのは、hasso_mailで呼ばれた時の処理です。
010584
2012/02/28(火) 17:19:33.39ID:MraNK8dlある人 & 発送済みメールの必要な人(メールアドレスがあっても、
発送したというメールの必要のない相手もいるので)」をデータベースで検索します
0件だったら「今日はメールを出す必要はありません」と表示して終わり
1件以上見つかったら、配列にデータを持ってsmartyにわたして表示
010684
2012/02/28(火) 17:20:27.59ID:MraNK8dl〜最初に、各設定ファイルの読みこみや
データベースの接続のため前半省略 〜
$sql = "SELECT * FROM order LEFT JOIN customer USING(customer_id) ";
$sql .= "WHERE shipping_day IS NOT NULL AND hasso_mail='0' ";
$sql .= "AND ・・・・他いくつか条件";
// hasso_mail 0:これから出す人 1:メール発送済み 2:メール不要 9:メールアドレスなし
$result = mysqli_query($conn, $sql);
$num = mysqli_num_rows($result);
if($num === 0){
$smarty=new Smarty();
$smarty->display("no_mail.tpl"); // 今日はメールを出す必要がありません
exit;
}
while($row = mysqli_fetch_assoc($result)){
$order_id = $row[id];
$name = $row[name];
$date = $row[shipping_date];
}
$smarty->assign("order_id",$order_id);
$smarty->assign("name",$name);
$smarty->assign("date",$date);
$smarty->display("hasso_mail.tpl"); // ここでメールを出す必要のあるお客さんのリストを出す
exit;
010784
2012/02/28(火) 17:22:07.05ID:MraNK8dl表示して、ラジオボタンで、誰にメールを出すか選択させる
sumbitボタンを押すと、メールを出すお客さんの伝票番号を持って、今度は
send_hasso_mail.phpへ
010884
2012/02/28(火) 17:23:37.58ID:MraNK8dl〜最初に、各設定ファイルの読みこみや
データベースの接続のため前半省略 〜
if($_POST["send"]=="yes"){
〜ここでメールを送信する処理〜
$sql = "UPDATE order SET hasso_mail=1 WHERE order_id=";
$sql .= $_POST["order_id"]; ← 本当は中身を確認してから処理してます
$result = mysqli_query($conn, $sql);
if(mysqli_error($conn)){
die("更新失敗".mysqli_error($conn));
}
mysqli_close($conn);
header('HTTP/1.1 303 See Other');
header('Location: ./index.php?mode=hasso_mail');
/* ここでhasso_mailを呼び出すと、複数あった「メールを出す
必要のある人が、だんだんに減っていって、最後は0件になって
「今日はメールを出す必要がありません」のページに行かれる予定・・・なんですが・・・*/
}
0109nobodyさん
2012/02/28(火) 17:25:19.42ID:MraNK8dl・データベースでSQL文を発行して確認すると確かにメールを出す必要のある人の数は減っている。
・直接hasso_mail.phpを呼び出してリロードすると、数は減っている。
・index.php?mode=hasso_mail で呼び出すと減っていない(何回リロードしても減らない)
・hasso_mail.tpl を削除してみても、正しく?表示されて数は減らない
・index.phpを削除して、すぐにアップロードしてリロードしても減らない
・index.phpを削除して、いったんリロードして(エラーをだして) アップロードしなおすとようやく内容が反映されます。
0110nobodyさん
2012/02/28(火) 17:29:14.28ID:MraNK8dl0111nobodyさん
2012/02/28(火) 17:41:24.43ID:???仕事忙しくなってきてちょと読めてないけど
>includeするってことは、読み込まれたページがindex.phpの一部になるのですか?
そうです。その通りです。
$_SERVER['PHP_SELF']してみそれ。
0112nobodyさん
2012/02/28(火) 17:59:50.11ID:???./:::::\ /::::::ヽ
/::::::::::::;ゝ--──-- 、._/::::::::::::::|
/,.-‐''"´ \:::::::::::|
/ ヽ、::::|
/ ヽ|
l l
.| ● | んーと
l , , , ● l
` 、 (_人__丿 、、、 /
`ー 、__ /
/`'''ー‐‐──‐‐‐┬'''""´
,-、 ,.-、
./:::::\ /::::::ヽ
/::::::::::::;ゝ--──-- 、._/::::::::::::::|
/,.-‐''"´ \:::::::::::|
/ ヽ、::::|
/ ● ヽ|
l , , , ● l
.| (_人__丿 、、、 | よく分かんない
l l
` 、 /
`ー 、__ /
/`'''ー‐‐──‐‐‐┬'''""´
0114nobodyさん
2012/02/28(火) 18:53:03.28ID:???011584
2012/02/28(火) 19:33:40.33ID:MraNK8dlindex.php に echo time() を追加して、リロードしたりいろいろ試してみました。
Firefox
・リロード、F5、スクリプト経由で(DBで処理した後)
index.php?mode=hasso_mail を呼び出しても、表示結果変わらず
IE
・最新の情報に更新、F5でも表示変わらず
・スクリプト経由で(DBで処理した後) index.php?mode=hasso_mail を
呼び出したら、timeスタンプ更新されて、メールを出す必要のある人の行も減っていました!
smarty で表示させているテンプレートのヘッダのmetaタグに下記を追加 → 効果なし
<meta http-equiv="Cache-Control" content="no-cache">
011684
2012/02/28(火) 19:41:21.53ID:MraNK8dl情報が更新されました。(その後データベース更新して、戻ってくると先ほどと同じ状況。
でも、再びキャッシュを削除してリロードすると反映されます)
ということで、index.php のキャッシュが表示されているようです。
index.phpをキャッシュさせずに、毎回新規に読ませれば解決しそうです・・・といっても
どうすればいいのか、これから調べるところですが・・・
解決の糸口が見えてきたような気がします。
みなさん、本当にありがとうございました。
0117nobodyさん
2012/02/28(火) 20:00:09.15ID:???たとえば>>84がそのPHPにアクセスした結果がプロキシにキャッシュされて、
赤の他人がそのキャッシュを表示しても問題ないのか?
そういうコードになってると思うけど。
0118nobodyさん
2012/02/28(火) 20:07:57.96ID:MraNK8dlうーん、よくわかりません。どのあたりでしょうか・・・
011984
2012/02/28(火) 20:14:24.21ID:MraNK8dl>>117
今の予定では、これらのphpスクリプトは、非公開ディレクトリ(.htaccessでアクセス制限)で
実行するつもりです。ローカルにサーバたててやったほうがいいでしょうか・・・
0120nobodyさん
2012/02/28(火) 20:18:59.51ID:???キャッシュじゃなくて、なんか勘違いしてる気がするなぁ。
hasso_mail.tplのformのとこどーなってる?
0121nobodyさん
2012/02/28(火) 20:28:47.33ID:MraNK8dlどうなってるの?・・・っていわれてもよくわかりません。普通だと思います。
method="post" で、action="index.php"
お客さんごとにラジオボタンを持たせて、そこに伝票番号がついています。そのほか
いくつかの情報を <input type="hidden">で渡しています。
submitで送信しています。
0122nobodyさん
2012/02/29(水) 00:25:04.12ID:???えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
0123nobodyさん
2012/02/29(水) 09:24:12.49ID:???0126nobodyさん
2012/02/29(水) 11:53:16.27ID:???ttp://j.ktamura.com/archives/1944
0127nobodyさん
2012/02/29(水) 12:00:13.61ID:???0128nobodyさん
2012/02/29(水) 15:05:49.16ID:i0fISUeh例えば
$url ="http://www.amazon.co.jp/gp/offer-listing/4044292108/ref=dp_olp_used?ie=UTF8&condition=used";
echo file_get_contents( $url , false , null , 108741 , 300);
こうした場合このような結果が帰ってきます。
Warning: file_get_contents() [function.file-get-contents]: stream does not support seeking
Warning: file_get_contents() [function.file-get-contents]: Failed to seek to position 108741
開始文字数を現在は 108741 にしていますが 2000 にしたら正常に動作したのですが、この開始文字数は制限があるのですか?
0129nobodyさん
2012/02/29(水) 15:08:52.19ID:???curlを使え
0130nobodyさん
2012/02/29(水) 16:28:56.78ID:???http://www.php.net/manual/ja/function.fseek.php
0131nobodyさん
2012/02/29(水) 17:09:43.10ID:i0fISUeh>>129
curl使う方がいいですか・・・
ぱっと調べてみたんですが、任意の範囲(何文字〜何文字,<div class="A">〜</div>だけ 等)の取得が出来なさそうだったので
file_get_contentsで必要そうな部分だけを抜き出し、そこからpreg_match()などで検索しようとおもったのです。
もう少しcurlについて勉強してみます。
>>130
これはfile_get_contentsが文字数制限あるとかじゃなくて、htmlのどれかのタグ要素が読み込めないためそれ以降の文字数が指定できないということですか?
だとしたらcurlでも何らかのオプションを設定してもできないんでしょうか?
0133nobodyさん
2012/02/29(水) 18:35:33.72ID:???シーク操作に対応していないサーバということで諦めるしかない
ダウンローダーとかでもたまにあるでしょ
resumeができないとことか
イメージとしてはあんな感じ
0134nobodyさん
2012/02/29(水) 18:59:17.42ID:i0fISUehやはりそういうことですか
処理速度を速くしたかったんですが、諦めて全文取得します。
ありがとうございました。
0136nobodyさん
2012/03/01(木) 00:50:28.34ID:???えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
0137nobodyさん
2012/03/01(木) 02:37:22.78ID:QEq3BeNxえーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
0138nobodyさん
2012/03/01(木) 06:12:56.73ID:???これまで23時から8時まではメールを送らないよう次の設定をしていて
この時間はメールを送れないようしていました。
$time=date("H");
if($time < 23 or $time < 8){
条件が真の場合の処理←メール送らない
else
条件が偽の場合の処理←メール送る
これを深夜1時から朝8時までに変更したい場合は
どのような条件文になりますでしょうか?
次のようにしてみたところ
日中(朝8時以降)のメールが送れなくなってしまいます。
$time=date("H");
if($time < 1 or $time < 8){
条件が真の場合の処理←メール送らない
else
条件が偽の場合の処理←メール送る
0139nobodyさん
2012/03/01(木) 06:16:45.88ID:???if($time < 23 or $time < 8){
↓
if($time >= 23 or $time < 8){
でした。。。
0140nobodyさん
2012/03/01(木) 07:31:46.55ID:???0141nobodyさん
2012/03/01(木) 07:51:19.40ID:???if文考える前に 日 本 語 で 条件を考えてみたりしないのか。
■ このスレッドは過去ログ倉庫に格納されています