2017-01-17 10 views
3

文字列から特定の文字または数字を抽出する必要があります。 id="craftysyntax_1"こののdivから文字列から1文字または数字を抽出する方法は?

<div id="craftysyntax_1" style="float: right;"><script type="text/javascript" src="https://livehelp.clipboards.com/livehelp_js.php?eo=0&amp;department=1&amp;serversession=1&amp;pingtimes=10&amp;dynamic=Y&amp;creditline=W"></script></div> 

私はこのcraftysyntax_1からわずか数を抽出したい、私は爆発するとしようとしていますが、それは私のために動作しませんまたは多分私が何か間違ったことをしています。ここで

は、私が試したものです:

$myString = '<div id="craftysyntax_1" style="float: right;"><script type="text/javascript" src="https://livehelp.clipboards.com/livehelp_js.php?eo=0&amp;department=1&amp;serversession=1&amp;pingtimes=10&amp;dynamic=Y&amp;creditline=W"></script></div>'; 
      $strArray = explode('craftysyntax_', $myString, 1); 
      print_r($myString); 

どのように私は私が望むものを達成することができますか?

+0

'regEx'は理想的なソリューションのように思える今、あなたは簡単にそれが存在する場合最後アンダースコア、後にすべてのものをつかむことができます – RamRaider

答えて

1

あなたはこの意志出力

$myString = '<div id="craftysyntax_123" style="float: right;"><script type="text/javascript" src="https://livehelp.clipboards.com/livehelp_js.php?eo=0&amp;department=1&amp;serversession=1&amp;pingtimes=10&amp;dynamic=Y&amp;creditline=W"></script></div>'; 
$pttn = '@craftysyntax_(\d{1,})@'; 
preg_match($pttn, $myString, $matches); 

echo '<pre>',print_r($matches,1),'</pre>'; 

この例のようにあなたの目標を達成するためにregExを使用することができます。

Array 
(
    [0] => craftysyntax_123 
    [1] => 123 
) 

ので、あなたが明示的に$matches[1]

1
preg_match("/craftysyntax_(.*)\\" /", $myString, $output_array); 
echo $output_array[1]; 

幸運!

1

を使用して整数をターゲットにすることができます私はこの番号1だけを抽出したいと思う。craftysyntax_1

使用preg_match機能:本当に

$myString = '<div id="craftysyntax_1" style="float: right;"><script type="text/javascript" src="https://livehelp.clipboards.com/livehelp_js.php?eo=0&amp;department=1&amp;serversession=1&amp;pingtimes=10&amp;dynamic=Y&amp;creditline=W"></script></div>'; 

preg_match("/id=[\"']craftysyntax_(\d+)[\"']/", $myString, $matches); 
$craft_number = $matches[1]; 

print_r($craft_number); // 1 
0

あなたがshouldn't use regex to try and parse HTML

代替ソリューションは、あなたがしたいIDを抽出するためにDOMDocumentを使用します。

$str = '<div id="craftysyntax_1" style="float: right;"><script type="text/javascript" src="https://livehelp.clipboards.com/livehelp_js.php?eo=0&amp;department=1&amp;serversession=1&amp;pingtimes=10&amp;dynamic=Y&amp;creditline=W"></script></div>'; 

$dom = new DOMDocument; 
$dom->loadHTML($str); 
$src = $dom->getElementsByTagName('div')->item(0); 
$attr = $src->attributes->getNamedItem('id')->value; 

これはあなたの価値craftysyntax_1を与えるだろう。

if (($pos = strrpos($attr, '_')) !== false) { 
    echo substr($attr, $pos + 1); 
} 
1

がするpreg_matchを使用してこれを試してみてください:

$myString = '<div id="craftysyntax_1" style="float: right;"><script type="text/javascript" src="https://livehelp.clipboards.com/livehelp_js.php?eo=0&amp;department=1&amp;serversession=1&amp;pingtimes=10&amp;dynamic=Y&amp;creditline=W"></script></div>'; 
preg_match("/id=[\"']craftysyntax_(\d+)[\"']/", $myString, $output); 
print_r($output); //Array ([0] => id="craftysyntax_1" [1] => 1) 
print_r($output[1]);//1 
関連する問題