トップページ⇒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等)・フレームワークは各該当スレへ
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文考える前に 日 本 語 で 条件を考えてみたりしないのか。
0142nobodyさん2012/03/01(木) 08:05:44.33ID:???
スレチなんだけど、ぼくおじゃまさせてもらいます m(_ _)m

今、ぼく行方不明中なんです・・・

ぼくのことを心配している人たちも頑張っているのだけど、
もっと、もっと、沢山のひとにしってもらわないと見つからないんだって・・・

ぼくの動画もあるんだよ・・ttp://youtu.be/IERsFdY104E


ぼくのチラシもつくってもらったんだ
     アトムチラシ0226_2
     ttp://www1.axfc.net/uploader/Img/so/136842
     PW[ atom ]

ぼくのことを検索してほしい・・みつけてほしい・・おねがいします・・・

             行方不明中の九州盲導犬協会所属 盲導犬アトムより

※「盲導犬とのよりよい暮らしを考える会のブログ」 で、署名活動をしています。
  ご協力の程、宜しくお願い申し上げます。
   
ttp://ameblo.jp/moudouken-yoriyoi-kurasi/entry-11164892346.html
0143nobodyさん2012/03/01(木) 08:45:48.59ID:???
$time=date(H);
if($time > 1 and $time < 8){

か?
0144nobodyさん2012/03/01(木) 09:46:43.64ID:V6dbm0J6
Apache + PHPで全てのプログラム・全てのユーザー間で変数を保持する方法ってありますか?
具体的にやりたいのは以下のことです。

1.あるリクエストでDBサーバーが落ちたことを感知したら$_DB_DEADにtrueをぶち込む
2.次回以降のリクエストでは$_DB_DEADがtrueになっていたらエラーメッセージを出す
※すべてのリクエストごとにDBが生きているかどうか調べると時間がかかるため
3.cron等で定期的に生存判定プログラムを走らせ、復活したら$_DB_DEADをfalseにする

適当なファイルに書き出して毎回それを読み込めばできますが、メモリ上に残す方法があるんなら
それを使いたいです。
0145nobodyさん2012/03/01(木) 09:52:25.15ID:???
cronではhttpd経由でphpで判定するの?
0146nobodyさん2012/03/01(木) 09:58:10.97ID:???
>>145
どちらでも。
コマンドラインのほうが楽でしょうが、127.0.0.1:80へのリクエスト飛ばす
プログラムを走らせてもいいわけですし。
0147nobodyさん2012/03/01(木) 10:47:51.17ID:???
プロセスが別かどうか知りたかったんだけど、
まあファイルでいいと思うけどな
0148nobodyさん2012/03/01(木) 10:52:19.64ID:???
>>144
dekiruwakeneedaroks
0149nobodyさん2012/03/01(木) 10:58:22.13ID:???
ファイルにしときゃ悩むこともないのに、
なんでわざと回り道するんだろw
0150nobodyさん2012/03/01(木) 11:16:26.91ID:???
>>144
PHP走らせてるサーバ上でSQLiteはダメすか。
一応、インメモリデータベースにもなるが。
0151nobodyさん2012/03/01(木) 11:22:21.13ID:???
>>144

phpでは無理。別言語ではできるものもある。
0152nobodyさん2012/03/01(木) 14:25:30.06ID:1NaN8Vlk
function getRandomString($length) {
$max = 0;
$randstr = "";

$strchars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$max = strlen($strchars) - 1;
$randstr .= substr($strchars, rand(0, $max), 1);
$length --;

$strchars = "0123456789";
$max = strlen($strchars) - 1;
for ($i = 0; $i < $length ; $i ++) {
$randstr .= substr($strchars, rand(0, $max), 1);
}
return $randstr;
}

上のファンクションで、
真ん中あたりにある $length --;
の --;って何を表す記号でしょうか??
0153nobodyさん2012/03/01(木) 14:36:00.39ID:???
顔文字
0154nobodyさん2012/03/01(木) 14:42:55.90ID:???
$length = $length - 1;
0155nobodyさん2012/03/01(木) 14:51:35.72ID:???
>>152
デクリメントでggrks
0156nobodyさん2012/03/01(木) 14:54:49.02ID:???
ループで$i++は無意識に使ってるけど$i--がわからないってことは
内容はよくわからず慣習的に使ってるからなんだろうな
0157nobodyさん2012/03/01(木) 15:48:28.92ID:1NaN8Vlk
なるほど。デクリメントですか!
ありがとうございました!
0158nobodyさん2012/03/01(木) 15:49:17.24ID:???
くそ・・・今日は、eclipseの調子が悪い
0159nobodyさん2012/03/01(木) 17:17:36.66ID:???
eclipseなんてクソの集まり
0160nobodyさん2012/03/01(木) 20:46:54.35ID:???
IIS7でPHP動かしてるのですがDreamweaverで分割表示した時にの右側の部分でPHPの表示を確認することはできませんか?
それと、PHPを学習する上でおすすめのサイト等があれば教えて下さい。ページの自動生成くらいまで出来るようになりたいです。
0161nobodyさん2012/03/01(木) 20:51:12.94ID:???
>>160
>>1
01621602012/03/01(木) 20:54:45.07ID:MIvctavF
>>161
すみません、よく読まずに質問してしまって。
公式マニュアルがいいんですね
一つ目の質問だけ、お願いします
0163nobodyさん2012/03/01(木) 21:04:50.45ID:???
>>162
Dreamweaverスレってないの?
0164nobodyさん2012/03/01(木) 21:22:46.25ID:???
>>160
できない。確認はライブビューで行う。
01651602012/03/01(木) 21:36:46.38ID:MIvctavF
>>164
ありがとうございます
0166nobodyさん2012/03/01(木) 21:37:27.97ID:???
>>
0167nobodyさん2012/03/02(金) 00:13:55.19ID:???
//if(!array_key_exists( $attributeNo ,$indexArray))で数秒かかってたのが
@$h=$indexArray[$attributeNo];
if(!$h)としたら1ミリ秒になった。

ビルドインより早いってどういう事なの。
0168nobodyさん2012/03/02(金) 00:56:33.37ID:???
phpでOOPすると遅すぎ。
0169nobodyさん2012/03/02(金) 01:22:31.68ID:???
アルゴリズムが糞なんだろ
0170nobodyさん2012/03/02(金) 01:23:09.49ID:???
>>168
>>11
0171nobodyさん2012/03/02(金) 01:23:55.82ID:???
>>167
それ全然等価じゃないよ
0172nobodyさん2012/03/02(金) 01:36:34.01ID:???
>>170

はぁ?

phpはオブジェクト指向言語じゃないから
オーバーヘッドが大きいのは当たり前。
0173nobodyさん2012/03/02(金) 01:38:32.17ID:???
>>172
PHPに限った話ではないよ
0174nobodyさん2012/03/02(金) 01:40:45.25ID:???
>>173

へぇ?

たとえばどの言語?
0175nobodyさん2012/03/02(金) 01:44:09.83ID:???
言語全般の話だよ
0176nobodyさん2012/03/02(金) 01:44:56.54ID:???
Ruby Perl Python
0177nobodyさん2012/03/02(金) 01:44:56.92ID:???
symfonyってなんで遅いのでしょうか?
0178nobodyさん2012/03/02(金) 01:46:04.55ID:???
>>16
0179nobodyさん2012/03/02(金) 01:47:19.33ID:???
>>175

珍回答乙。

OOP以前にphp自体が遅いだけw
パフォーマンスを求める言語じゃない。
0180nobodyさん2012/03/02(金) 01:48:51.65ID:???
>>178

そうそう。php自体が遅い。
0181nobodyさん2012/03/02(金) 01:52:36.23ID:???
Hiphop for PHP入れれば早くなるんじゃね?
一度使ってみたいとは思うが環境作るのがめんどくせ
0182nobodyさん2012/03/02(金) 01:53:29.22ID:???
>>170
オブジェクト指向言語じゃないからOOPすると遅くなる。
簡単なこと。
0183nobodyさん2012/03/02(金) 01:54:17.20ID:???
>>181
facebookと同じ失敗してもしょうがない。
0184nobodyさん2012/03/02(金) 01:57:43.48ID:???
オーバークロックしろと何度いったら
0185nobodyさん2012/03/02(金) 02:13:17.44ID:???
>>176

python早いよ。
みたいなサーバー作れるくらい。
0186nobodyさん2012/03/02(金) 02:15:50.61ID:???
誰かPhalanger使ったこと無い?
0187nobodyさん2012/03/02(金) 02:20:47.80ID:???
>>186
早いけど、サーバーが有料なのでメリットは少ない。
Quercusの方が費用対効果が高い。
0188nobodyさん2012/03/02(金) 03:20:04.28ID:???
Phpの利点ってラクなことだよな
速度は遅いけど開発速度はダントツ
0189nobodyさん2012/03/02(金) 03:39:42.10ID:???
昔ほど遅くはないト思うけどね
特に5.4になってから結構早くなってる
使用者が多い分速度改善のためのサードパーディ製品も豊富だし
コミュニティは縮小気味だけどまだまだバックエンドではいけるんじゃないかね
0190nobodyさん2012/03/02(金) 03:48:29.43ID:???
卒業研究にandroidのアプリ作ることになったんですが、
今まで大学で習ったのがC言語、独学したのが、php、Javascript
なのですが、Javaってphpと比べて難しいですかね?
phperの意見が聞きたいです。
0191nobodyさん2012/03/02(金) 03:49:45.64ID:06mRWUWG
卒業研究にandroidのアプリ作ることになったんですが、
今まで大学で習ったのがC言語、独学したのが、php、Javascript
なのですが、Javaってphpと比べて難しいですかね?
phperの意見が聞きたいです。

すいません、下げてました
0192nobodyさん2012/03/02(金) 04:13:11.85ID:???
>>191
どちらかというとjavaはCに近いと思う
ちなみに.netとかVCとかそういうのをC言語といっているレベルなら問題外だと思うけど
0193nobodyさん2012/03/02(金) 04:27:00.50ID:???
PHPしかやったことなかったけど、
基本情報でJavaを選択してやったけど試験問題に合格できる程度には出来るみたいだよ。
穴埋めだから簡単なのは当たり前なんだけど、
ソースコードも読みやすくて結構わかるなと感じた。
ただジェネリクスとかスレッドとかPHPerが知らない機能もたくさんあるから、
やっぱ出来ることが多い分にはややこしくて難しいんだなと感じた。
0194nobodyさん2012/03/02(金) 06:32:49.53ID:???
>>192
> .netとかVCとかそういうのをC言語といっているレベル
こういう人たちからみたほうが、javaはCに近いと感じられるのではないか。
0195nobodyさん2012/03/02(金) 09:19:31.83ID:???
そりゃソースコードは読みやすいだろう。
JAVAは設計書をしっかり作れば、だれが書いても似たようなソースになるからな。

>>191
読めるのは読めるんじゃないかね。
ただJAVAの全仕様を頭に入れるのは何年もかかると思う。それぐらい汎用性が高い。
webアプリ開発でも使えるけど、シンプルなソースにはなりにくい。
0196nobodyさん2012/03/02(金) 09:39:23.86ID:1GN/43Ty
DBを更新した場合、静的htmlを出力しなおすものがありますが、
(今は知りませんが5年前ぐらいのMovableTypeがそうでした)
このようなキャッシュシステムを自分で構築するのは結構つらいものがあります。
また、静的htmlなのでアクセス速度の向上は見込めると思いますが、
ちょっとした更新のたびに何ページも作成、出力しなおすのは非効率だとも思います。
逆にgetでクエリを投げてページを動的に変える方法は簡単ですが、
毎度DBにアクセスするので速度が遅くなってしまうと思います。
これを解決するためにインストールするソフトウェアがAPCとかなんでしょうか?
0197nobodyさん2012/03/02(金) 12:24:29.96ID:???
>>196
大体あってるけど、APCはそれが目的ではない。
APC使っても同じように毎回DBにアクセスするけれど、PHPの速度が改善される。
0198nobodyさん2012/03/02(金) 12:40:59.81ID:???
>>196
規模と目的によると思うが、俺は毎日cron回して更新されてたら
全部新しく書き出すようにしてるけどね。更新頻度が高くないから。

頻繁に更新されてアクセスも多いようなら自分で好みのを作れ。
それだけのサイトなら金も時間もかけられるはずだろ
0199nobodyさん2012/03/02(金) 13:34:34.36ID:???
>>196
「毎度DBにアクセス」はメモリキャッシュが貧弱なphp特有。

速度が気になるなら非スクリプト言語に変える。
phpは速度を求める言語じゃない。
0200nobodyさん2012/03/02(金) 13:40:30.97ID:???
DBのアクセスは言語関係なくね?
プログラムの実行速度のことは言ってなくね?
0201nobodyさん2012/03/02(金) 13:45:38.44ID:???
APCってなんなの?って聞いてるだけ
■ このスレッドは過去ログ倉庫に格納されています