忍者ブログ
手探りでパソコンの事を勉強するブログです。 何か覚えたら記録していきます。
2024 . 04
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •   

    [PR]



    このエントリーをはてなブックマークに追加
    ×

    [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

    webサイトのコピーライトを動的に自動更新する



    このエントリーをはてなブックマークに追加
    コピーライトってのはこのブログの一番下にもあるこんなやつ

    ©パソコン手探り 2008-2012 all rights reserved.

    webサイトの著作権的なものを主張するやつです。
    この年数表記ですがブログ開設時から現在の年数を表記しています。
    これを年越しの度に手動更新するのはさすがに馬鹿らしいし、手動だと忘れがちになりそうなので今回はこいつを自動で更新されるようにするscriptを紹介します。
    方法はjavascriptとphpでやる2つの方法がありますが、このブログのようにphpが使えないレンタルブログだとjavascriptを使うことになります。

    <!--コピーライト-->
    <abbr title="Copyright">&copy;</abbr>
    <a href="<!--$g_url-->" target="_top"><!--$g_title--></a>  <script type="text/javascript">
    $y=
    2008;$ny=new Date().getFullYear();document.
    write($ny>$y?$y+'-'+$ny:$y);</script>
     all rights reserved.

    このブログでも使っているコピーライトのソースをそのまま書いてみました。
    忍者ブログの場合はオレンジ色の2008だけを自分のブログ開設年数に合わせて修正するだけです。

    その他ブログやwebページの場合は赤い部分がパソコン手探りの文字とリンクになりますのでそこも自分のサイトに合わせて修正する必要があります。
    PR

    Allowed memory size of ********** bytes exhausted



    このエントリーをはてなブックマークに追加
    phpから謎のエラーが出た。

    Fatal error: Allowed memory size of ******** bytes exhausted (tried to allocate ******* bytes) in /hoge/hoge/hoge/hoge/hoge.php on line 62

    調べてみるとphp.inimemory_limitを64Mにすればいいらしい。
    php.iniの270行目付近。

     263 ;;;;;;;;;;;;;;;;;;;
     264 ; Resource Limits ;
     265 ;;;;;;;;;;;;;;;;;;;
     266
     267 max_execution_time = 120     ; Maximum execution time of each script, in seconds
     268 max_input_time = 300 ; Maximum amount of time each script may spend parsing request data
     269 ;max_input_nesting_level = 64 ; Maximum input variable nesting level

     270 memory_limit = 64M      ; Maximum amount of memory a script may consume (16MB)
     271


    でphp.iniを見たらすでに64Mだった。

    さらに調べてみると

    phpでRSSの新着を表示させる方法



    このエントリーをはてなブックマークに追加
    RSSフィードのURLから新着記事をリスト化してhtmlで出力するソースコードです。
    htmlでは以下のように出力されます。
    <ul>
    <li>新着1</li>
    <li>新着2</li>
    <li>新着3</li>
    </ul>

    ※phpソース
    <ul>
    <?php

    $RSSURL = "http://hoge.com/RSS.rdf"; // フィードのURL

    $buff = "";
    $fp = fopen($RSSURL,"r");
    while ( !feof($fp) ) {
        $buff .= fgets($fp,4096);
    }
    fclose($fp);

    $parser = xml_parser_create();
    xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
    xml_parse_into_struct($parser,$buff,$values,$idx);
    xml_parser_free($parser);

    $in_item = 0;
    foreach ($values as $value) {
        $tag  = $value["tag"];
        $type = $value["type"];
        $value = $value["value"];
       
        $tag = strtolower($tag);
        if ($tag == "item" && $type == "open") {
            $in_item = 1;
        } else if ($tag == "item" && $type == "close") {
            echo <<<EOM
    <li class="ls1 w1"><a href="$link" rel="external">$title</a></li>
    EOM;
            $in_item = 0;
        }
        if ($in_item) {
            switch ($tag) {
                case "title":
                    //
    文字コードの変換(UTF-8をEUC-JP で出力)
                    $value = mb_convert_encoding($value, "EUC-JP", "UTF-8");
                    $title = $value;
                    break;
                case "link":
                    $link = $value;
                    break;
                case "description":
                    //
    文字コードの変換(UTF-8をEUC-JP で出力)
                    $value = mb_convert_encoding($value, "EUC-JP", "UTF-8");
                    $description = $value;
                    break;
            }
        }
    }

    ?>
    </ul>

    xhtmlをphpファイルで出力する方法



    このエントリーをはてなブックマークに追加
    通常xhtmlを書く場合は以下のように宣言してから書き始める訳ですが、ページ内にphpファイルを埋め込む目的でファイル名を.phpファイルで保存したものを読み込むとエラーが出てしまいます。

    <?xml version="1.0" encoding="euc-jp" ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">


    ※エラー文
    Parse error: syntax error, unexpected T_STRING in /home/hoge/www/hoge.php  on line 1


    エラー文の右に注目。
    「on line 1」 と記載されています。
    つまり一行目から何かが間違っているという訳です。

    さくらのレンタルサーバーライトプランでphpを使う方法。



    このエントリーをはてなブックマークに追加
    さくらのライトプランだとphpが使えないので使える用にする方法です。
    ちなみに、この方法はさくらの利用規約に違反するものではありませんが、一応【非推奨】という事らしいので実行するのは自己判断でお願いします。

    また、phpのインストールにはApacheやコマンド操作などの基本的な知識が無いと厳しいかもしれません。


    まず最初にphpの本体をダウンロードします。
    http://museum.php.net/php5/php-5.2.6.tar.gz
    (ファイルに直リンクしています。)
    phpは最新版でもいいと思いますが、今回は調べた先がphp5.2.6を使っていたので無用なトラブルを避けるために同じバージョンを使いました。

    ダウンロードしたphp5.2.6.tag.gzを【/home/ユーザー名/work】へアップロードします。
    ライトプランではsshも使えないようなので、FTPクライアントソフト(FFFTPなど)を使う事になります。


    telnet.cgiをダウンロードして【/home/ユーザー名/www/】にアップロードしてパーミッションを700にします。(ブラウザ上からコマンド操作できるcgiです。)


    以下のディレクトリを新規作成し、パーミッションをすべて755に設定します。

    /home/ユーザー名/share/
    /home/ユーザー名/share/pear5
    /home/ユーザー名/local
    /home/
    ユーザー名/php5/
    /home/
    ユーザー名/php5/pear/
    /home/
    ユーザー名/php5/pear /cache;
    /home/
    ユーザー名/bin
    /home/
    ユーザー名/www/cgi-bin

    Function ereg() is deprecated エラーの対応方法



    このエントリーをはてなブックマークに追加
    先日サーバーをアップグレードしたばかりだったのですが、なにやらPHPもバージョンアップされていたようでサポートが終了した機能から大量のエラーが・・・

    Function ereg() is deprecated


    調べてみたところphpのコードを修正するか、php.imiをいじってエラーを一時的に隠す事で解決できるそうです。
    エラーを隠すのは根本的な解決にはならないので、今回はコード修正で対応しました。

    原因のひとつはsplit()でした。

    これはsplit()explode()に置き換える事で解決できます。

    munin設定index.htmlのsyntax error解決方法



    このエントリーをはてなブックマークに追加

    muninはサーバーのリソース監視ツールです。
    今回はubuntu9.04にインストールしました。
    Ubuntuの場合インストールは超簡単で、パーッケージマネージャーから一発でインストールできます。
    8d7b4b3b.png


    インストール後は/var/www/munin/にログファイルが勝手に生成されて/var/www/munin/index.htmlにブラウザからアクセスすると解析結果が得られます。
    fff8791f.PNG

    ubuntu9.04にphp5をインストールする方法



    このエントリーをはてなブックマークに追加
    まずはroot権限になる。
    $ sudo -i
    パスワード:(パスワードを入力)
    root #
    apt-get で簡単にインストールできました。

    # apt-get install php5 libapache2-mod-php5

    apache2を入れている場合はapache2を再起動すればphp5がインストールされていることが確認できます。

    # /etc/init.d/apache2 restart

    PHPの終了タグ ?> は書かない方がいい



    このエントリーをはてなブックマークに追加
    phpのコードを書く際は
    <?php
    echo "こんにちわ<br />\n";
    echo "こんばんわ<br />\n";
    ?>
    こんな感じで書く場合が多いけど、この終了タグ「?>」は省略した方がいい場合があります。
    phpプログラムだけの場合に限っては終了タグの後に空行など何らかの文字があった場合、その空行まで表示されてしまいます。
    しかし、その空行がバグの原因になる場合が多いからです。

    もちろん終了タグはあった方が綺麗なコードに見えますが、最近のPHPプログラムは終了タグを書かない方が主流となっているそうです。


    HOME
    ©パソコン手探り all rights reserved.
    Powered by ニンジャブログ  Designed by ピンキー・ローン・ピッグ
    忍者ブログ / [PR]