プライマリ・コンテンツに移動

Oracle® Application Express APIリファレンス リリース5.1 E85937-02 |
| 目次 | 索引

前 | 次 |

# 9.2 HTMLファンクション

このファンクションは、HTML環境でコンテキストが変更される可能性のある文字をエスケープします。これは、既知の`sys.htf.escape_sc`の拡張バージョンです。

ファンクションの結果は、`apex_escape.set_html_escaping_mode`を使用して定義されるエスケープ・モードによって異なります。デフォルトのエスケープ・モードは`「拡張」`ですが、これは、手動で`set_html_escaping_mode`をコールするか、アプリケーションのセキュリティ属性`「HTMLエスケープ・モード」`を`「基本」`に設定することで上書きできます。モードが`「基本」`の場合、ファンクションは`sys.htf.escape_sc`と同様に動作します。そうでない場合は、次のルールが適用されます。

表9-1に、このファンクションによって変換されるASCII文字と、それらの文字がエスケープされた値を示します。

表9-1 変換されるASCII文字がエスケープされた値

実際のASCI文字 | 戻されるエスケープされた文字
--- | ---
`&` | `&amp`;
`"` | `&quot`;
`<` | `&``lt;`
`>` | `&gt;`
' | `&#x27;`
`/` | `&#x2F`;

構文

    APEX_ESCAPE.HTML (
        p_string IN VARCHAR2 )
        return VARCHAR2;

パラメータ

表9-2に、`HTML`ファンクションで使用可能なパラメータを示します。

表9-2 HTMLファンクションのパラメータ

パラメータ | 説明
--- | ---
`p_string` | エスケープされる文字列のテキスト

例

この例では、基本(B)モードおよび拡張(E)モードでエスケープをテストします。

    declare
    procedure eq(p_str1 in varchar2,p_str2 in varchar2)
        is
        begin
            if p_str1||'.' <> p_str2||'.' then
                raise_application_error(-20001,p_str1||' <> '||p_str2);
        end if;
    end eq;
    begin
        apex_escape.set_html_escaping_mode('B');
        eq(apex_escape.html('hello &"<>''/'), 'hello &amp;&quot;&lt;&gt;''/');
        apex_escape.set_html_escaping_mode('E');
        eq(apex_escape.html('hello &"<>''/'), 'hello
        &amp;&quot;&lt;&gt;&#x27;&#x2F;');
    end;

参照:

- 「HTML_TRUNCファンクション」

- 「HTML_WHITELISTファンクション」

- 「HTML_ATTRIBUTEファンクション」

- 「SET_HTML_ESCAPING_MODEプロシージャ」