3

mysqlデータベースのテキストフィールドにいくつかの正規表現を保存したいと思います。現在の私の最善のアイデアは、区切り文字に不規則なパターンの記号を使用することです。例:

$delim = '!@#$%';
$regex1 = '/^(.+)$/';
$regex2 = '/.(.+)./';
$regex3 = '/(\s+):\/\//';
$string = $regex1.$delim.$regex2.$delim.$regex3;

その後、$stringはデータベースに保存されます。取得するには、次のようなものを使用します。

$array = explode($delim,$string);

私が知りたいのは、区切り文字が正規表現の1つに表示されないことを期待するよりも、より適切で正確な方法があるかどうかです。

4

3 に答える 3

6

うん、はるかに良い方法。serialize()またはjson_encode()それらをデータベースに入れるとき、unserialize()またはjson_decode()それらを引き出すときに使用します。

これには、壊滅的な方法で失敗しないという利点があり、デバッグに永遠にかかることになります。

<?php
$string = json_encode( array( $regex1, $regex2, $regex3 ) );

// Later
$array = json_decode( $string );
于 2012-07-04T02:50:54.760 に答える
1

ヌルバイトを使ってみません\0か?

于 2012-07-04T02:51:41.123 に答える
1

私たちがデータベースを使用する理由の 1 つは、区切り文字を自分で考え出す必要がなく、データの格納方法をデータベースに処理させることができるからです。

データベースはそれ自体ですべてを行うことができますが、今、あなたは独自のデータ構造を発明しています。

私が言おうとしているのは、正規表現の各部分をそれぞれの行に格納し、残りは DBMS に任せるべきだということです。

于 2012-07-04T03:06:53.527 に答える