라이브러리

[PHP] php_user_filter::onCreate - 필터 생성 시 호출됨




PHP의 `php_user_filter` 클래스는 PHP 5.2.0 버전부터 사용할 수 있습니다. 이 클래스는 PHP의 필터 시스템을 확장하기 위해 사용됩니다. 필터 시스템은 데이터를 처리하기 전에 데이터를 필터링하는 데 사용됩니다.

`php_user_filter::onCreate` 메소드는 필터를 생성할 때 호출되는 메소드입니다. 이 메소드는 필터를 초기화하기 위해 사용됩니다. 이 메소드는 필터의 초기화에 필요한 모든 작업을 수행해야 합니다.

예제


다음 예제는 `php_user_filter::onCreate` 메소드를 사용하여 필터를 생성하는 방법을 보여줍니다.

#hostingforum.kr
php

class MyFilter extends php_user_filter {

    public function onCreate($opdata) {

        // 필터를 초기화하기 위해 필요한 작업을 수행합니다.

        echo "필터가 생성되었습니다.
";

        return parent::onCreate($opdata);

    }



    public function filter($in, $out) {

        // 필터링을 수행합니다.

        while ($bucket = stream_bucket_make_write($in)) {

            $bucket->data = "필터링된 데이터: " . $bucket->data;

            stream_bucket_append($out, $bucket);

        }

        return PSFS_PASS_ON;

    }

}



// 필터를 사용하여 데이터를 필터링합니다.

$fp = fopen("php://stdin", "r");

$opdata = stream_get_filter_data($fp);

$opdata = stream_filter_append($fp, "my_filter", STREAM_FILTER_WRITE, array($opdata));

while (!feof($fp)) {

    $data = fread($fp, 1024);

    echo "원본 데이터: $data
";

    $data = stream_get_contents($fp);

    echo "필터링된 데이터: $data
";

}



필터의 생명주기


필터의 생명주기는 다음과 같습니다.

1. `onCreate` 메소드: 필터를 생성할 때 호출됩니다. 필터를 초기화하기 위해 필요한 모든 작업을 수행해야 합니다.
2. `filter` 메소드: 필터링을 수행할 때 호출됩니다. 데이터를 필터링하는 데 사용됩니다.
3. `onDestroy` 메소드: 필터를 소멸할 때 호출됩니다. 필터를 소멸하기 위해 필요한 모든 작업을 수행해야 합니다.

필터의 종류


PHP의 필터 시스템에는 다음 종류의 필터가 있습니다.

* `STREAM_FILTER_READ`: 데이터를 읽을 때 필터링을 수행합니다.
* `STREAM_FILTER_WRITE`: 데이터를 쓰기 때 필터링을 수행합니다.
* `STREAM_FILTER_ALL`: 데이터를 읽을 때와 쓰기 때 필터링을 수행합니다.

필터의 속성


필터에는 다음과 같은 속성이 있습니다.

* `opdata`: 필터의 오퍼레이션 데이터입니다.
* `filter_name`: 필터의 이름입니다.
* `filter_ops`: 필터의 오퍼레이션입니다.

필터의 메소드


필터에는 다음과 같은 메소드가 있습니다.

* `onCreate`: 필터를 생성할 때 호출됩니다.
* `filter`: 필터링을 수행할 때 호출됩니다.
* `onDestroy`: 필터를 소멸할 때 호출됩니다.

필터의 예제


다음 예제는 `php_user_filter` 클래스를 사용하여 필터를 생성하는 방법을 보여줍니다.

#hostingforum.kr
php

class MyFilter extends php_user_filter {

    public function onCreate($opdata) {

        // 필터를 초기화하기 위해 필요한 작업을 수행합니다.

        echo "필터가 생성되었습니다.
";

        return parent::onCreate($opdata);

    }



    public function filter($in, $out) {

        // 필터링을 수행합니다.

        while ($bucket = stream_bucket_make_write($in)) {

            $bucket->data = "필터링된 데이터: " . $bucket->data;

            stream_bucket_append($out, $bucket);

        }

        return PSFS_PASS_ON;

    }

}



// 필터를 사용하여 데이터를 필터링합니다.

$fp = fopen("php://stdin", "r");

$opdata = stream_get_filter_data($fp);

$opdata = stream_filter_append($fp, "my_filter", STREAM_FILTER_WRITE, array($opdata));

while (!feof($fp)) {

    $data = fread($fp, 1024);

    echo "원본 데이터: $data
";

    $data = stream_get_contents($fp);

    echo "필터링된 데이터: $data
";

}



이 예제는 `php_user_filter` 클래스를 사용하여 필터를 생성하는 방법을 보여줍니다. 필터는 데이터를 필터링하는 데 사용됩니다. 필터링을 수행할 때 `filter` 메소드가 호출됩니다. 필터링을 수행한 후 `onDestroy` 메소드가 호출됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 319 페이지

검색

게시물 검색