Home > PHP

PHP Archive

XAMPP for USB

卒業制作に向けて環境構築を考えてみたけど一番いいのはUSBフラッシュへの構築ということで。

XAMPPを導入して環境を一気にととのえちゃおうという話。USBフラッシュ内のみで構築です。

まず、XAMPPのパッケージ選び、インターネット上の内容だとXAMPP Liteならできるというのが多い。
記事自体は1年前のものが多いので現在とは配布状況が異なっているということもあるのかも。
[参考記事]:USBメモリでPHP開発環境を持ち歩ける「XAMPP Lite」:phpspot開発日誌

海外のサイトだったが、ZIPパッケージなら通常のXAMPPパッケージでもできるみたいに書かれていたので試す。

apache friends - xampp for windowsからXAMPP Windows版ZIPアーカイブをダウンロード。

解凍ソフトにて解凍してUSBフラッシュメモリのルートディレクトリにフォルダを置く。(/xampp/)

setup_xampp.batを走らせればApacheのドキュメントルート設定などを自動で変更してくれる。
PCによって割り当てられるドライブが違うと思うがこれを行えば自動設定してくれる。

xampp-control.exeにてApache,MYSQLを起動。コマンドプロンプトが立ち上がり続行。
ブラウザを立ち上げhttp://localhost/にアクセスしApacheが動作していることを確認。

phpMyadminをついでに起動してMYSQLの動作も確認する。これで一通り環境はOK。

確認するためにWordpressをXAMPP上にインストールしてみました。

  1. Wordpressをダウンロード。アーカイブ形式なので解凍
  2. htdocsフォルダにWordpressフォルダを移動(フォルダ名wordpress)
  3. MYSQLにwordpress用のデータベースの作成
  4. http://localhost/wordpress/よりインストール。wp-config.phpを作成していなければ鯖上でウィザードで作成
  5. 利用データベース、ユーザー名、パスワードなど必要情報を入力
  6. インストール完了後、ユーザー名とパスワードが出力されるのでログイン
  7. http://localhost/wordpress/にインストールされました

やや重いのはUSBだし妥協。XAMPP+Wordpressで1GB近くになってしまうので大容量USBメモリ必須。
とはいっても値下がり著しいので4GB以上も買いやすくなってきているのでいい機会かも。

PHPユーザー定義関数

PHPで関数を宣言するときにfunctionで宣言するのですがメソッド系が苦手なのでどうもつかみにくい。
Javaの記事でも書いたんですけど、引数の考えがあまり理解できてないのかもしれない。Cのころから。
[過去エントリ]:Javaのメソッドが難しい

簡単に言うとすでに用意されている関数はいいのですが、用意されていない場合自分で宣言するんです。
1回などではあまりありがたみがわからないですがこの処理を何回も行うというときは宣言したほうがいいです。

<?php
    for($x = 1; $x <10; $x++){
        for($y = 1; $y <10; $y++){
            calc($x, $y);
        }
    }
    function calc($su1, $su2){
        $gokei = $su1 * $su2;
        print $su1."*".$su2."=".$gokei."<br>\n";
    }
?>

簡単に九九の計算を表示させているだけですが計算と表示をcalc関数にて行っています。
ちなみに結果はこんな感じにでます。とても長いので途中で略しますけども。
1*1=1
1*2=2
1*3=3
1*4=4
1*5=5
1*6=6
1*7=7
1*8=8
1*9=9

ユーザー定義関数

function 関数名(引数1,引数2){ 処理; };

関数の呼び方

関数名(引数1,引数2);

渡す値を設定しないならば引数は必要ありませんが、処理をひとまとめにして見やすくするときなどに。

PHP関数 sprintf

前回しょぼいカウンタを作ったので、それに少しずつ機能を追加していきたいと思います。
それに関してsprintf関数を使って桁数表示し空白を0で埋めるということをやってみます。

sprintf:フォーマットされた文字列を返す場合に使用する関数
sprintf("format",$count);

第一引数:フォーマット型宣言

%
パーセント文字。引数は不要
b
引数を整数として扱い、バイナリ表現
d
引数を整数として扱い、10 進数表現
u
引数を整数として扱い、符号無しの10進数表現
f
引数をdouble として扱い、浮動小数点数表現
o
引数を整数として扱い、8 進数表現
s
引数を文字列として扱い表現
x
引数を整数として扱い、16進数として小文字で表現
X
引数を整数として扱い、16進数として大文字で表現

sprintfです。sprintと書いてて何が違うのか分からなくなったのは内緒。
printfなのですが文字列を返すだけなので表示はprintかechoで行う必要があります。

ソースコード

<?php

$count_file = 'count.txt';

$count_lenght = 5;

$fp = fopen($count_file, 'r+');

if($fp) {
    if (flock($fp, LOCK_EX)) {
        $counter = fgets($fp, $count_lenght);
        $counter++;

        rewind($fp);

        fwrite($fp, $counter);
       
        flock($fp, LOCK_UN);
    }
}

fclose($fp);

$format = '%0'.$count_lenght.'d';

$count = sprintf($format, $counter);
print $count;

?>

$format = '%0'.$count_lenght.'d';

桁数を変数に入れてるので$format変数にフォーマットの文字列としていれておきます。
10進数、空白を0で埋めるとするので、たとえば5桁だと%05dとなるので文字列としていれておきます。

$count = sprintf($format, $counter);

sprintfで先ほどの$format(%05d)を使い、$counterの値をその形式で$countに返しています。

そして最後にprintして終了。ファイルロックのところをifでやるようにしましたがこっちのがいいかな。

世界の言語でこんにちは

中学英語の最初の授業でこんなのやったと思います。今回はプログラム言語でHelloWorldを書きます。
やる言語は、Java,PHP,Ruby,Cくらいにしておきます。iG:Syntax Hiliterの言語を試すって意味合いもある。

Java

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello World");
        System.out.print("Hello World");
    }
}

System.out.printlnは改行ありSystem.out.printは改行なしで表示されます。

Ruby

print "Hello World"
puts "Hello World"

printは改行なし、putsは改行ありで表示されます。

PHP

<?php
    print "Hello World";
    echo "Hello World";
?>

print,echo共に改行なしで表示されます。とくに使い分け規定もなさそうです。

C

#include <stdio.h>
main()
{
    printf("Hello World");
}

とまあこんなもんか。COBOLとかは書く気もしないし他にやってる言語ないからこれくらい。

phpで掲示板 part2

長らく時間が空きましたが前回の続きです。サンプル通りなはずなのですが初歩ミスでエラーでまくり。
[過去エントリ]:phpで掲示板 part1

参考サイト
MetalMickey

最低機能の掲示板を作るをすべてこなし一応動作する形になりました。次は流れに沿って機能追加です。

動作サンプル画面
bbs

やはり気になったのは初歩的なエラーです。parse errorで注意してくれるのですがその意味を把握しないときついです。

Parse error: syntax error, unexpected

一番多いのはこのぶん。syntax errorということで文法エラーです。
この文章の後に具体的な間違いと間違っている行数が表示されます。

パーサトークンの一覧

このページにあるトークン名でエラーが吐き出されてきます。

一番多かったのは変数に$をつけ忘れる。;を忘れる。.を記述しない。など。だめだ初歩的すぎる。

Home > PHP

Search
Feeds
Meta
BlogPet
PageView
  • 試しに自作カウンタ稼働
  • count: 05750

Return to page top