preg_split()を使用して[item:1]と[/ item:1]の間の値を取得するにはどうすればよいですか。
$query= [item:1] my content [/item:1];
これは機能していません
$match = preg_split('/[[item:1][\/item:1]]/', $query);
echo $match[0];
出力は「私のコンテンツ」だけである必要があります。
アップデート:
$ query = '
[page:1]ページ1のコンテンツを取得しました[/ page:1]
[page:2]2ページ目のコンテンツを取得しました[/page:2]
';
//関数を解析します
関数parse_page($ page、$ string){
//解析をねじ込む可能性のあるものをすべて削除することは非常に重要です
$ string = str_replace(array( "\ r"、 "\ n"、 "\ t"、 "\ f")、array(''、'')、$ string);
//ページ番号で文字列をテストします
preg_match('@ \ [page:'。$page。'\](。*?)\ [/ page:'。$page。'\] @'、$ string、$ matches);
//成功した場合は一致を返します
if($ matches){
$matchesを返します。
}そうしないと {
falseを返します。
}
}
//ページが設定されている場合は、それを取得してみてください
if(isset($ _ GET ['p'])){
//返された解析値を変数に設定します
$ page_dump = parse_page(($ _ GET ['p'])、$ query);
//一致が成功したかどうかを確認します
if($ page_dump [1]){
echo $ page_dump [1];
}そうしないと {
エコー'0';
}
}そうしないと {
//ページが指定されていない場合は、ページ1を解析します。
$ page_dump = parse_page( '1'、$ query);
if($ page_dump [1]){
echo $ page_dump [1];
}そうしないと {
echo'ページなし=(';
}
}