2012-04-16 5 views
1

このシンプルテキスタイルマークアップを使用すると、テキスタイルクラスはコンパイルエラーを起こしているようです。テキスタイルエラー:コンパイルエラーでURLの結果を使用

"linktext":http://www.nu.nl 
["linktext":http://www.nu.nl] 

コンパイルエラー:

Warning: preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 5 in /var/www/vhosts/sturb.nl/subdomains/bu/httpdocs/lib/textile.php on line 1355 

通常のような他のすべてのマークアップショーは、リンクで発生するように見えます。

私はnetcarver's繊維PHPクラスを使用しています。

編集: これは、エラーが発生する機能です。 ライン1355はあなたの正規表現では「#」記号(文字クラス内ではない)に問題がある可能性があり$ok = preg_match($r, $uri, $m);

function parseURI($uri, &$m) 
{ 
    $r = "@^((?<scheme>[^:/?#]+):)?(//(?<authority>[^/?#]*))?(?<path>[^?#]*)(\?(?<query>[^#]*))?(#(?<fragment>.*))[email protected]"; 
    #  12      3 4      5    6 7    8 9 
    # 
    # scheme = $2 
    # authority = $4 
    # path  = $5 
    # query  = $7 
    # fragment = $9 

    $ok = preg_match($r, $uri, $m); 
    return $ok; 
} 
+0

「preg_match」はどこですか? – hjpotter92

+0

エラーをトリガーするpreg_match関数を追加しました – stUrb

答えて

0

です。彼らは通常通りエスケープする必要があります。

// X修飾子が指定されない限り更新 Aparently

は、PHPで、#はリテラルとして扱われます。その後、リテラルとして使用するとエスケープする必要があります。

エラーは、使用されているPHPのバージョンが「名前付きキャプチャバッファ」をサポートしていないことを意味します。私はPHPのどのバージョンがそれを実装しているのか分かりません。

あなたが名前を付けたtextfile phpクラスを見ましたが、その関数が実際にあります。私は彼らがあなたのためにPHPを提供するか、あなた自身を使用しているかわかりません。私はPHPの専門家ではない。

ideone.comでテストケースを実行するために使用されるPHPのバージョンは、名前付きキャプチャバッファをサポートする5.2.11です。

名前を付けるコンストラクトを(?<name> --)から(--)に変換することができます。それは実行する必要がありますか、少なくともあなたはそのサブ式を過ぎてしまいます。使用されているバージョンを確認するには、ここ

は、テストケースであると/という名前のキャプチャバッファなしhttp://ideone.com/dm4Q8
てみてください、多分その「のバージョン()」関数に建てられました。

ここでは、テストする拡張/縮小正規表現があります。

'~ 
^(
    ([^:/?#]+) 
    : 
)? 
(
    // 
    ([^/?#]*) 
)? 
([^?#]*) 
(
    \? 
    ([^#]*) 
)? 
(
    \# 
    (.*) 
)? 
~x'; 

'~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~' 
+0

これは他の問題のようです。拡張正規表現は動作しません...それは言う: '認識後の文字(?<オフセット73で ' – stUrb

+0

@stUrb - 名前付きキャプチャバッファなしで正規表現を含めるように私の答えを更新しました。 (? '..' ''は正規表現のエスケープシーケンスのグループ化ですが、 '?'で指定された次の文字が何であるかを判断するので、 "(?' ) "は認識されません。名前付きキャプチャバッファがサポートされていないことを意味します。 – sln

関連する問題