のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,896人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    元スレ【PHP】下らねぇ質問はID出さずに書き込みやがれ 1

    php覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    551 = :

    名前記憶されててびっくりしたw

    552 = :

    INTの値だったかなんだったか忘れたが・・・
    まぁここらの話はスレチすぎると思うw

    553 = :

    >>526=532=537=538さんいつもレスありがとうございます。
    少しググってみると.khp.kwdファイルを使ってもいける?みたいですね。
    これも便利そうなので自分できなかったりしたらサクラエディタのスレでまた聞いてみます。

    554 = :

    自演か

    555 :

    ### 011_counter.php ###
    <?php
    $fp=fopen("012_count.txt","r+");// 読み書きモードでオープン
    $n=fgets($fp); // 文字列の読み取り
    $n++; // カウントアップ
    echo $n,"人目"; // 表示
    rewind($fp); // 読み書き位置を先頭に戻す
    fputs($fp,$n); // 書き込み
    fclose($fp); // ファイルを閉じる
    ?>

    ### 012_count.txt ###
    0

    …これでhttp://localhost/php/011_counter.phpにアクセスすると
    0 人目
    が表示されます。
    ただ、F5を押しても、他のサイトを見てまたアクセスしても加算されません。
    012_count.txtの内容を3にすると、3 人目になりますが加算はされません。
    テキストには「0の後に改行を入れると加算されない」とあるので、特に注意して改行を入れないようにしています。

    どこがおかしいのでしょうか?
    上のを普通に実行させるとどうなりますか?

    556 = :

    >>555
    アクセスした時点でプラス1足して表示されるようにコード書いたんだから0人目って表示されるのはおかしいでしょ

    563 = :

    名前欄ハズカシイ。無視してくださいな

    565 = :

    http://jp.php.net/manual/ja/language.operators.increment.php
    この辺の影響かと

    567 = :

    > PHP は、算術演算子で文字変数を扱った場合に C ではなく Perl の慣習に 従います。例えば、perl では 'Z'+1 は 'AA' を返しますが
    > C では 'Z'+1 は '[' ( ord('Z') == 90, ord('[') == 91 ) を返します。
    > 文字変数はインクリメントされることは可能ですがデクリメントは不可能であるということ、
    > またプレーンな ASCII 文字 (a-z および A-Z) のみがサポートされるということに注意しましょう。

    多分で申し訳ないんだけど、改行が含まれる文字列の場合、数値以外のものが含まれているため、
    数値としてインクリメントは不可、また、文字列としてのインクリメントに関しては、[a-zA-Z0-9]以外の
    文字が含まれているため不可、ということなんじゃないかなと。
    > またプレーンな ASCII 文字 (a-z および A-Z) のみ
    こう書いてるけど、Perlと同様、a-z および A-Z および 0-9 と思う。

    568 = :

    >>567
    ありがとうございます。
    なるほど、そっちの方でしたか。
    こういう問題があるならやっぱり宣言を必須にしてほしいですね。

    569 = :

    続いてですが、同じ本がまたやってくれました。
    連想配列の宣言が必要そうなんですが、どこにどう入れていいのか思い付きません。文章を引用します:

    連想配列を利用して、ファイル056_word.txtの単語の頻度を配列に取得する例を示します。
    strtokは文字列をトークンに分ける関数です。Windowsファイルの改行は\n\rなので、
    \rも区切りに含めないと\rが単語として配列にカウントされてしまいます。

    ### 055_hash3.php ###
    <pre>
    <?php
    $word=file_get_contents("056_word.txt");
    $tok=strtok($word,".\n\r ");
    while ($tok!=false){
    $tokcount[$tok]++;
    $tok=strtok(".\n\r ");
    }
    print_r($tokcount);
    ?>
    </pre>

    実行結果
    Array
    (
    [This] => 1
    [is] => 2
    [a] => 2
    [pen] => 1
    [That] => 1
    [book] => 1
    )

    続きます。↓

    570 = :

    056_word.txtの内容は本には載っていないのですが、改行区切りと実行結果を考慮しますと、
    ### 056_word.txt ###
    This
    is
    a
    pen
    That
    is
    a
    book
    …なのでしょう。それをそのまま実行すると、以下のメッセージと共に予想された実行結果が出ます:
    Notice: Undefined index: This in /UNIONFS/opt/lampp/htdocs/php/055_hash3.php on line 7
    Notice: Undefined index: is in /UNIONFS/opt/lampp/htdocs/php/055_hash3.php on line 7
    Notice: Undefined index: a in /UNIONFS/opt/lampp/htdocs/php/055_hash3.php on line 7
    Notice: Undefined index: pen in /UNIONFS/opt/lampp/htdocs/php/055_hash3.php on line 7
    Notice: Undefined index: That in /UNIONFS/opt/lampp/htdocs/php/055_hash3.php on line 7
    Notice: Undefined index: book in /UNIONFS/opt/lampp/htdocs/php/055_hash3.php on line 7
    Array
    (
    [This] => 1
    [is] => 2
    [a] => 2
    [pen] => 1
    [That] => 1
    [book] => 1
    )
    …上のメッセージが出ないようにするにはどうすればよいのでしょうか?
    あっ!今、気付いたんですが、インデックスが未定義と言っているんですね…。
    そりゃ、今ファイルから切り取ってきたばかりの単語たちですから、定義されてたら逆におかしいですよね…?
    しかも検索したら出てきました、エラーレベルを落とせばいいんですね。お騒がせしました。(^^ゞ

    571 = :

    すごく斬新な質問だ

    572 = :

    1行1単語である必要はないよ。トークン区切り文字列に半角空白入ってるでしょ。
    それに、>>568のような気持ちがあるなら警告レベルを落とすなんて雑なことをせず、
    コードを直すほうがいい。

    それはそれとして、問題がいくつかあるので指摘。
    ・Windowsの改行コードはCRLF(\r\n)
    ・どこかに0という単語が含まれてるとそこで終わる
    ・古いPHPだともっといろんなところで終わる
    これらの問題は while ($tok !== false) とすれば解決するけれど、
    なぜそうなるのかはマニュアルでも見て。

    てか、その本ダメだと思うなら捨てちゃえばいいと思うよ。
    著者サイトで正誤表が公開されてないかの確認はしてる?

    # 昔は出版社に誤植の指摘すると図書券くれたりしたもんだけど今はないのかな。

    573 = :

    >>572
    ありがとうございます。
    直せるんですか?
    直せるなら直したいです。

    今、正誤表あるのか調べてみましたけど、無いみたいですね。
    でも、サンプルがダウンロードできました!
    055_hash3.php、仰るとおり while ($tok !== false) に訂正されてましたよ。w
    056_word.txtも二行で書かれてました。
    !=と!==の違いはこの本で説明されてました。

    でも、実行するとやっぱり同じメッセージが。
    どうやってこれを直すのですか?

    574 = :

    定義されているか判別して、されていなかったら初期化する

    575 = :

    >>574
    ありがとうございます。
    死ぬほど忙しいので、もうしばらくお待ちください。m(__)m

    576 = :

    別に待ってないけど、、、死ぬほど忙しいってすごいね。
    そんなに忙しくなったことないのは幸せなことだなぁ

    577 = :

    お前574じゃねーだろ

    578 = :

    >>573
    http://gihyo.jp/book/2009/978-4-7741-3800-8/support
    酷すぎて修正するだけ時間の無駄というか、別の本で勉強し直したら?
    少なくとも仕事のために覚えたい人は読んじゃいけないコードばかり

    579 = :

    >>577
    ばれたか。でも>>572だよ。

    580 = :

    超ヘボ質問なんですけど
    if文の条件式に「もし改行があれば」ってどういう風に書けばいいでしょうか

    今やりたいことは
    あるテキスト(A.txt)を一行ずつ取得して
    空行ならcontinue;みたいなことができれば最高です。

    【ソース】
    $text = fopen("C:/A.txt","r");
    $i = 0;
    while(($line = fgets($text))){
    //もし改行のみならば飛ばして次の行に進むみたいなの作りたいけどwhile進まんお……^ω^;
    if($line == \n){ //←これが不正
    continue;
    }else{
    $i++;
    file_put_contents("C:/".$i.".txt",$line);
    }
    }

    581 = :

    if($line == "\n"){

    582 = :

    >>581
    ご回答ありがとう.
    それも無理ですた.
    しっかり空行も出力されちゃうのよね……

    583 = :

    改行を削除した値が空かチェックすれば

    584 = :

    改行を消したいなら全文の中から連続する改行コードを1つの改行コードに置換すればいいんだよ

    585 = :

    >>580
    $line = array_merge(array_filter(file("C:/A.txt"), 'strlen'));
    for ($i=0; $i<count($line); $i++) file_put_contents("C:/".$i.".txt",$line);

    586 = :

    スレ違いだったら、すみません。
    以下程度の事ができるプログラマーなんだけど、どれくらいのレベルと判断できるだろうか?

    プログラムー歴:約3年
    使用可能言語
    HTML,php,JavaScript
    CSS.ActionScript(仕事では使えないレベル)

    サーバ構築
    CentOS+yumならだいたいできる。
    ソースからあれこれインストールは経験少ない。

    DB:MySQL PostgreSQL

    【開発実績?】
    WordpressやEC-CUBEのカスタマイズ
    独自パッケージのCMS開発
    (EC-CUBEのパクりみたいなの)

    大雑把でいいので、初級、中級、上級のどれだろう?

    587 = :

    まだまだ初級かな。

    588 = :

    >>586
    転職をしようと思ってそれを面接で言ったとしても特にメリットにならない感じ。
    とはいっても、自分はこれができますってアピールは難しいように思う。

    ので、結局実力は使ってみないとわからないってことになるんじゃないだろうか

    589 = :

    >>586
    いまどき、JavaScriptができる、というだけだと何もできないようなもんじゃないかねぇ?
    なんらかのライブラリ名やらフレームワーク名が出ると面接の時にも会話になると思うよ。
    名前出してもきょとんとしてる面接官もいる、というか多い気もするが・・・
    まぁ、面接官の試験とかもないんだししょうがないか。

    あぁ、JavaScript以外でもフレームワークの話ができるといいかもな

    あと、今の時期にCentOSとか言ってるのはちょっとぼけてる。ニュース探しておいたほうがいいぞ。
    yumできるのはあたりまえ。自作パッケージできて一人前なんじゃないかな?

    初級というのはちょっときびしいかもしれない気もするが、初級、という判定をしておく。
    IT関係のサイトに目を通す癖をつけて、アンテナを高くしておくといいぞ。

    590 = :

    その話題を続けながらで結構なので別の質問です
    http://php.net/manual/ja/index.php
    って、一応公式ですけど、プロの方から見て良いマニュアルですか?

    591 = :

    今の時期にCentOSがぼけてるってのはどういうことだろう。
    RHEL6がでたこととは関係ないだろうし、CentOSがとがめられるような出来事でもあったの?

    yum使えて当たり前なのは同意するが、自作パッケージ作るなら俺リポジトリを作るのも必須じゃないだろうか。
    といいつつ、システム管理の話だし、プログラマの技量には大して影響がないと思う。

    592 = :

    >>590
    良い悪いの定義がわからないけど、公式のリファレンスを頼らないプログラマはいないと思うよ

    593 = :

    >>592
    どうもです
    でもコードに抜けが多くないですか?

    594 = :

    >>593
    コードに抜けってたとえば?

    595 = :

    >>591
    ちょっとニュースでやってたからってそれを間に受けてる素人さんですか

    596 = :

    >>595
    何のニュース?

    598 = :

    http://slashdot.jp/linux/11/05/18/0240227.shtml
    この話のことをいっているなら、CentOSを使わない理由にはならないし、何が言いたいのかさっぱりわからん。

    599 = :

    逃げた奴の相手をするだけ無駄
    ほっとけ

    600 = :

    >>594
    変数が無かったり
    公式を名乗るマニュアルが初心者にいきなり断片ですか?
    自分は補完できますけど、多分初めての人には㍉


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について