$newstring
次のような行がロードされた文字列があります。
<tt>Thu 01-Mar-2012</tt> 7th of Atrex, 3009 <br>
区切り文字としてandを$newstring
使用して爆発したい。<tt>
<br>
それを爆発させるためにどのように使用できますpreg_split()
か?
さて、私は Nexus 7 を使用しています。タブレットで質問に答えるのはあまりエレガントではないことがわかりましたがpreg_split
、次の正規表現を使用してこれを行うことができます。
<\/?tt>|</?br>
ここで動作する正規表現を参照してください: http://www.regex101.com/r/kX0gE7
PHP コード:
$str = '<tt>Thu 01-Mar-2012</tt> 7th of Atrex, 3009<br>';
$split = preg_split('@<\/?tt>|</?br>@', $str);
var_export($split);
配列$split
には以下が含まれます。
array (
0 => '',
1 => 'Thu 01-Mar-2012',
2 => ' 7th of Atrex, 3009',
3 => ''
)
( http://ideone.com/aiTi5Uを参照)
<tt>
とタグが文字列内の唯一のタグである場合、次の<br/>
ような単純な正規表現が実行されます。
$exploded = preg_split('/\<[^>]+\>/',$newstring, PREG_SPLIT_NO_EMPTY);
式:区切り文字はそれぞれおよび
で始まり、
これらの文字の間に少なくとも 1 つあることが期待されます (これは、終了文字を除く任意の文字です)<
>
[^>]
>
PREG_SPLIT_NO_EMPTY
preg_split
これは、空の文字列である配列値を回避
する関数に渡される定数です。
$newString = '<tt>Foo<br/><br/>Bar</tt>';
$exploded = preg_split('/\<[^>]+\>/',$newstring);
//output: array('','Foo','','Bar',''); or something (off the top of my head)
$exploded = preg_split('/\<[^>]+\>/',$newstring, PREG_SPLIT_NO_EMPTY);
//output: array('Foo', 'Bar')
ただし、これら 2 つ以上のタグまたは変数入力 (ユーザー提供の場合など) を扱っている場合は、マークアップを解析したほうがよい場合があります。php のDOMDocument
クラスを調べて、こちらのドキュメントを参照してください。
PS:実際の出力を確認するには、試してくださいecho '<pre>'; var_dump($exploded); echo '</pre>';
function multiExplode($delimiters,$string) {
return explode($delimiters[0],strtr($string,array_combine(array_slice($delimiters,1),array_fill(0,count($delimiters)-1,array_shift($delimiters)))));
}
例: $values = multiExplode(array("","
"),$your_string);
このコードを試してください..
<?php
$newstring = "<tt>Thu 01-Mar-2012</tt> 7th of Atrex, 3009<br>";
$newstring = (explode("<tt>",$newstring));
//$newstring[1] store Thu 01-Mar-2012</tt> 7th of Atrex, 3009<br> so do opration on that.
$newstring = (explode("<br>",$newstring[1]));
echo $newstring[0];
?>
output:-->
Thu 01-Mar-2012</tt> 7th of Atrex, 3009
例を含むカスタム関数を次に示します。
http://www.phpdevtips.com/2011/07/exploding-a-string-using-multiple-delimiters-using-php/