トップページphp
1001コメント279KB

【PHP】下らねぇ質問はID出して書き込みやがれ 116

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/02/26(日) 11:49:58.54ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、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
>>41
組み込み関数とはどういう意味でしょうか?
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:???
42 名前: nobodyさん [sage] 投稿日: 2012/02/27(月) 00:59:20.23 ID:???
えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
0047nobodyさん2012/02/27(月) 02:14:52.39ID:???
えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます

そうなんだ・・・。
0048nobodyさん2012/02/27(月) 04:22:47.80ID:???
>>43
if文とかfor文とかをオブジェクトとしてPHPに実装している凄腕なひとなんだな
ならもぉPHPやる必要ないよね〜
自分専用の言語作ったほうが早くない?
0049nobodyさん2012/02/27(月) 07:33:52.55ID:???
ニートならできる
まあ頑張れよ(棒読み)
0050nobodyさん2012/02/27(月) 09:06:51.34ID:???
>>48

>>43でもないんだけどオブジェクト指向言語のご経験は?


このスレは
質問する奴も馬鹿、答える奴も馬鹿
0051nobodyさん2012/02/27(月) 09:08:38.45ID:???
>>50
>>1
0052nobodyさん2012/02/27(月) 09:10:12.74ID:???
>>50
荒らしに反応してるのもな
0053nobodyさん2012/02/27(月) 09:32:22.59ID:3PUrmhLe
適当に画像をうpして、作った画像アップローダーのテストしてたら、
mimeタイプがx-pngが出てきて、pngを許可にしてたが弾かれた、
x-pngってよく出てくるのでしょうか?
php歴2年で初めてみました。
0054nobodyさん2012/02/27(月) 09:47:49.06ID:???
IE8以前とレガシーモードだな
0055nobodyさん2012/02/27(月) 12:48:43.03ID:???
Ieは滅びろ
0056nobodyさん2012/02/27(月) 13:27:13.17ID:???
>>55
CSSやHTMLレベルからやってんのかどうかわかる言葉だなw
0057nobodyさん2012/02/27(月) 13:43:58.51ID:???
日本語でおk
0058nobodyさん2012/02/27(月) 13:44:04.60ID:???
>>53
MIMEタイプをどう拾うかにもよるけれども
$_FILEで見てるならば、ブラウザの申告したものを見てることになる。
image/pjpegとか出てくるだろ。その環境だと。
0059nobodyさん2012/02/27(月) 15:13:08.80ID:EtiAdS4g
【OS名】UNIX系(共用サーバーのため詳細不明)
【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
>>60-61
解決しました!
どうもありがとうございました。
0063nobodyさん2012/02/27(月) 19:29:00.80ID:4hoIqr2g
あるURLから、file_get_contentsで画像を取得し、
それを、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:???
FFって何?
0065632012/02/27(月) 20:03:10.95ID:4hoIqr2g
FireFoxです
周りではこう呼んでるんで。。
0066nobodyさん2012/02/27(月) 20:21:08.36ID:???
>>63
一個ずつ変数をechoってってどこにちゃんと何が入っているかとか
確認していけばすぐ解決するよ。それ。
0067632012/02/27(月) 20:43:16.07ID:4hoIqr2g
>>66
ありがとうございます。地道にやってみます^^;
0068nobodyさん2012/02/27(月) 21:36:53.59ID:???
>>65
まずPear:Cache_Liteを使わないとどうなのか
0069nobodyさん2012/02/28(火) 00:08:14.80ID:???
$url = 'http://example.com/'.$_GET['id'].'.jpg';
これ、本当にこうなのかなぁ
0070nobodyさん2012/02/28(火) 00:09:33.73ID:???
header already sentみたいなメッセージが出てたりして。
0071nobodyさん2012/02/28(火) 00:20:13.97ID:???
42 名前: nobodyさん [sage] 投稿日: 2012/02/27(月) 00:59:20.23 ID:???
えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
0072nobodyさん2012/02/28(火) 00:20:47.93ID:???
エロ画像うpでもつくんのかな
0073nobodyさん2012/02/28(火) 00:24:21.48ID:???
$imgUrlって$urlじゃないのかとか、そんな話じゃないよな?
0074nobodyさん2012/02/28(火) 00:43:53.69ID:???
あれ生きてる?
0075nobodyさん2012/02/28(火) 00:44:16.09ID:???
テスト
死亡
0076nobodyさん2012/02/28(火) 00:49:28.33ID:???
なんかkohadaおかしい
0077nobodyさん2012/02/28(火) 00:50:49.23ID:???
この板って5スレしか無いの?死ぬの?
0078nobodyさん2012/02/28(火) 00:53:26.65ID:???
うっせえ死ね
0079nobodyさん2012/02/28(火) 00:58:58.90ID:???
今をときめく、ウェブ言語「PHP」
0080nobodyさん2012/02/28(火) 01:43:48.55ID:???
このスレあれば事足りる
0081nobodyさん2012/02/28(火) 01:46:05.34ID:???
また勝ってしまったか・・・
0082nobodyさん2012/02/28(火) 04:27:44.62ID:???
>>73
あー見落としてた。きっとそれが正解だと思う
0083nobodyさん2012/02/28(火) 04:39:26.03ID:???
>>63
それgzipが返ってるはず間違いない

0084nobodyさん2012/02/28(火) 08:17:07.40ID:MraNK8dl
質問があります。旨く説明できなくてごめんなさい。どうぞよろしくお願いします。

index.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:???
smartyのキャッシュなら、キャッシュのパラメータ工夫するか、
キャッシュやめてしまえ。
テンプレート消しても表示するんなら、compile_check falseになってんだろ。
0087842012/02/28(火) 10:46:21.69ID:MraNK8dl
>>85
趣味でしょぼしょぼやっているので、フレームワークというとなんだか大げさな
気がしてしまって・・・

>>86
いま調べてきたら trueになっています。

ブラウザの問題かと思って、IEとFirefoxを試してみましたが結果は同じでした。
毎回requireさせる方法ってないもんでしょうか。また、問題切り分けのための
何かテストできることがありましたら、アドバイスお願いします・・・。
0088nobodyさん2012/02/28(火) 11:17:57.96ID:???
requireが問題なの?index.phpそのもののキャッシュだと思うけど
0089nobodyさん2012/02/28(火) 11:19:33.76ID:???
正直に言えば、これ以上はエスパーでないと無理です。
0090nobodyさん2012/02/28(火) 12:45:49.64ID:gmDIsIfQ
ログインして入った、master_yu_kun.phpを
検索サービスから検索されなくするにはどうするのですか?
0091nobodyさん2012/02/28(火) 13:28:53.34ID:???
>>84
たぶん、質問している側と読んでいる側で
「ページを移る」の意味に混乱が生じていると思う。
includeやrequireは「移る」って言わず整理しなおして
もっかい説明してちょ。
なんとなく理解できるけど、そしたらもうちょっとがんばれるかもなんで。
0092nobodyさん2012/02/28(火) 13:32:43.22ID:???
自分でデバッグさせればいいじゃん鬱陶しい
0093nobodyさん2012/02/28(火) 13:42:20.11ID:???
>>84
smartyのキャッシュじゃなくて、PHPのキャッシュかもしれない。
eAcceleratorとかAPCとか
0094nobodyさん2012/02/28(火) 14:26:48.13ID:???
>>87
めんどくさい質問の時は
公開できる範囲内でできるだけ具体的なコード貼ってくれ
複数レスにまたがってもいいから
0095842012/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
>>94
はい、すみません。これからちょっと用意してきます。
0097nobodyさん2012/02/28(火) 14:38:36.74ID:???
>>95
echo time();

とか毎回変わる内容を入れてみてどうなの?
キャッシュしないでしょ。
0098nobodyさん2012/02/28(火) 15:57:54.55ID:???
【OS名】CentOS 6
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】
定期的にバックアップを自動で行いたいのですがテーブル数が多いので一括でバックアップできる方法を探しております。
execやsystemが使用出来ないサーバーなんですが、PHPからmysqldumpと
同じ効果がある関数などあったりしますか?
0099nobodyさん2012/02/28(火) 16:03:41.12ID:???
cron使えないの?
0100982012/02/28(火) 16:03:59.59ID:2XRQp2f6
すいません
ID出てませんでした。
0101982012/02/28(火) 16:04:44.10ID:2XRQp2f6
>>99
cronは使えます。
0102nobodyさん2012/02/28(火) 16:46:24.37ID:???
じゃシェルスクリプト書いて実行させればいいのでは?
0103nobodyさん2012/02/28(火) 16:50:53.65ID:???
PHPのプロならCLIだなw
0104842012/02/28(火) 17:15:31.16ID:MraNK8dl
これでもだいぶ整理してきたつもりなのですが、長くてすみません
PHPを使って、うちの事業所の発送管理をしようと思っています。

[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で呼ばれた時の処理です。
0105842012/02/28(火) 17:19:33.39ID:MraNK8dl
hasso_mail.phpが呼び出されたら、「商品発送済み & メールアドレスが
ある人 & 発送済みメールの必要な人(メールアドレスがあっても、
発送したというメールの必要のない相手もいるので)」をデータベースで検索します

0件だったら「今日はメールを出す必要はありません」と表示して終わり
1件以上見つかったら、配列にデータを持ってsmartyにわたして表示
0106842012/02/28(火) 17:20:27.59ID:MraNK8dl
[ hasso_mail.php ]

〜最初に、各設定ファイルの読みこみや
データベースの接続のため前半省略 〜

$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;
0107842012/02/28(火) 17:22:07.05ID:MraNK8dl
hasso_mail.tpl では、メールを出す必要のあるお客さんのリストを
表示して、ラジオボタンで、誰にメールを出すか選択させる
sumbitボタンを押すと、メールを出すお客さんの伝票番号を持って、今度は
send_hasso_mail.phpへ
0108842012/02/28(火) 17:23:37.58ID:MraNK8dl
[ hasso_mail_send.php ]

〜最初に、各設定ファイルの読みこみや
データベースの接続のため前半省略 〜

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
実際は、メールを出す必要のある人が減りません。orz

・データベースでSQL文を発行して確認すると確かにメールを出す必要のある人の数は減っている。
・直接hasso_mail.phpを呼び出してリロードすると、数は減っている。

・index.php?mode=hasso_mail で呼び出すと減っていない(何回リロードしても減らない)
・hasso_mail.tpl を削除してみても、正しく?表示されて数は減らない
・index.phpを削除して、すぐにアップロードしてリロードしても減らない
・index.phpを削除して、いったんリロードして(エラーをだして) アップロードしなおすとようやく内容が反映されます。
0110nobodyさん2012/02/28(火) 17:29:14.28ID:MraNK8dl
すみません >>108 は一行目 [ send_hasso_mail.php ] の間違いです。
0111nobodyさん2012/02/28(火) 17:41:24.43ID:???
>>95
仕事忙しくなってきてちょと読めてないけど
>includeするってことは、読み込まれたページがindex.phpの一部になるのですか?
そうです。その通りです。
$_SERVER['PHP_SELF']してみそれ。
0112nobodyさん2012/02/28(火) 17:59:50.11ID:???
        ,-、            ,.-、
        ./:::::\          /::::::ヽ
       /::::::::::::;ゝ--──-- 、._/::::::::::::::|
       /,.-‐''"´          \:::::::::::|
     /                ヽ、::::|
    /                   ヽ|
     l                         l
    .|    ●                |    んーと
     l  , , ,           ●     l
    ` 、      (_人__丿    、、、   / 
      `ー 、__               /
         /`'''ー‐‐──‐‐‐┬'''""´

         ,-、            ,.-、
        ./:::::\          /::::::ヽ
       /::::::::::::;ゝ--──-- 、._/::::::::::::::|
       /,.-‐''"´          \:::::::::::|
     /                ヽ、::::|
    /    ●                  ヽ|
     l   , , ,             ●      l
    .|        (_人__丿     、、、  |    よく分かんない
     l                      l
    ` 、                       /
      `ー 、__               /
         /`'''ー‐‐──‐‐‐┬'''""´
0113nobodyさん2012/02/28(火) 18:41:55.18ID:???
>>110
長い。3行にまとめてくれ。
0114nobodyさん2012/02/28(火) 18:53:03.28ID:???
試しにリロードをCtrl-F5でやるとか
0115842012/02/28(火) 19:33:40.33ID:MraNK8dl
解決していませんが、とりあえずご報告 
index.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">
0116842012/02/28(火) 19:41:21.53ID:MraNK8dl
Firefoxの、キャッシュを全て削除して、その後にリロードしたら
情報が更新されました。(その後データベース更新して、戻ってくると先ほどと同じ状況。
でも、再びキャッシュを削除してリロードすると反映されます)

ということで、index.php のキャッシュが表示されているようです。
index.phpをキャッシュさせずに、毎回新規に読ませれば解決しそうです・・・といっても
どうすればいいのか、これから調べるところですが・・・

解決の糸口が見えてきたような気がします。
みなさん、本当にありがとうございました。
0117nobodyさん2012/02/28(火) 20:00:09.15ID:???
>>84
たとえば>>84がそのPHPにアクセスした結果がプロキシにキャッシュされて、
赤の他人がそのキャッシュを表示しても問題ないのか?
そういうコードになってると思うけど。
0118nobodyさん2012/02/28(火) 20:07:57.96ID:MraNK8dl
>>117
うーん、よくわかりません。どのあたりでしょうか・・・
0119842012/02/28(火) 20:14:24.21ID:MraNK8dl
あ、名前でてませんでした。84です

>>117
今の予定では、これらのphpスクリプトは、非公開ディレクトリ(.htaccessでアクセス制限)で
実行するつもりです。ローカルにサーバたててやったほうがいいでしょうか・・・
0120nobodyさん2012/02/28(火) 20:18:59.51ID:???
セッションでいろいろやれているなら問題ないはずではあるけど、こっちではわかんないし。
キャッシュじゃなくて、なんか勘違いしてる気がするなぁ。
hasso_mail.tplのformのとこどーなってる?
0121nobodyさん2012/02/28(火) 20:28:47.33ID:MraNK8dl
>>120
どうなってるの?・・・っていわれてもよくわかりません。普通だと思います。
method="post" で、action="index.php"
お客さんごとにラジオボタンを持たせて、そこに伝票番号がついています。そのほか
いくつかの情報を <input type="hidden">で渡しています。
submitで送信しています。
0122nobodyさん2012/02/29(水) 00:25:04.12ID:???
42 名前: nobodyさん [sage] 投稿日: 2012/02/27(月) 00:59:20.23 ID:???
えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
0123nobodyさん2012/02/29(水) 09:24:12.49ID:???
回答者のバカぶりはすごい
0124nobodyさん2012/02/29(水) 10:12:12.57ID:???
>>123
そっすねー、すごいっすよねーw
0125nobodyさん2012/02/29(水) 10:33:46.16ID:???
>>123
そっすねー、すごいっすよねーw
0126nobodyさん2012/02/29(水) 11:53:16.27ID:???
だからてめえらPHPerはRubyになめられるんだよ
ttp://j.ktamura.com/archives/1944
0127nobodyさん2012/02/29(水) 12:00:13.61ID:???
Ruby使いの悪口はやめようよ
0128nobodyさん2012/02/29(水) 15:05:49.16ID:i0fISUeh
file_get_contentsでhtmlを取り込む際、ページ全体取り込むと時間がかかるため文字数をを指定して取り込もうとおもうのですがうまくいきません。
例えば

$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:???
そういうことがやりたい場合はfile_get_contentsは使うな
curlを使え
0130nobodyさん2012/02/29(水) 16:28:56.78ID:???
fseekの注意書きを見るとよい
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でも何らかのオプションを設定してもできないんでしょうか?
0132nobodyさん2012/02/29(水) 17:18:00.65ID:???
>>131
file_get_contentsなんて今すぐ使うのをやめろ
0133nobodyさん2012/02/29(水) 18:35:33.72ID:???
>>131
シーク操作に対応していないサーバということで諦めるしかない
ダウンローダーとかでもたまにあるでしょ
resumeができないとことか
イメージとしてはあんな感じ
0134nobodyさん2012/02/29(水) 18:59:17.42ID:i0fISUeh
>>133
やはりそういうことですか
処理速度を速くしたかったんですが、諦めて全文取得します。
ありがとうございました。
0135nobodyさん2012/02/29(水) 20:02:50.97ID:???
>>131
お前元優等生だろ?
0136nobodyさん2012/03/01(木) 00:50:28.34ID:???
42 名前: nobodyさん [sage] 投稿日: 2012/02/27(月) 00:59:20.23 ID:???
えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
0137nobodyさん2012/03/01(木) 02:37:22.78ID:QEq3BeNx
42 名前: nobodyさん [sage] 投稿日: 2012/02/27(月) 00:59:20.23 ID:???
えーと メソッドは引数を持たなく、関数は引数を持つんだとおもいます
0138nobodyさん2012/03/01(木) 06:12:56.73ID:???
phpのsendmailで以下の時間指定のメール配信をしているんですが、
これまで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:???
修正します。6行目?

if($time < 23 or $time < 8){

if($time >= 23 or $time < 8){

でした。。。
0140nobodyさん2012/03/01(木) 07:31:46.55ID:???
and使え
0141nobodyさん2012/03/01(木) 07:51:19.40ID:???
こういうの、ゆとりっていうのか?
if文考える前に 日 本 語 で 条件を考えてみたりしないのか。
■ このスレッドは過去ログ倉庫に格納されています