如何从字符串中提取单个字母或数字?

时间:2017-01-17 18:21:34

标签: php explode

我需要从字符串中提取特定的字母或数字。

<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>

从这个 div id="craftysyntax_1"我想从这个 craftysyntax_1 中提取 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);

我如何实现我的目标?

5 个答案:

答案 0 :(得分:1)

preg_match("/craftysyntax_(.*)\\" /", $myString, $output_array);
echo $output_array[1];
祝你好运!

答案 1 :(得分:1)

您可以使用regEx来完成目标,例如

$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>';

这将输出:

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

因此您可以使用$matches[1]

显式地定位整数

答案 2 :(得分:1)

  

我想从 craftysyntax_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, $matches);
$craft_number = $matches[1];

print_r($craft_number);  // 1

答案 3 :(得分:1)

使用preg_match:

试试这个
"SELECT create_time FROM ".SQL_HP_DB.".account WHERE id=".$_SESSION['user_id'];

答案 4 :(得分:0)

你真的是shouldn't use regex to try and parse HTML

另一种解决方案,使用DOMDocument提取您想要的ID:

$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。现在,您可以轻松地抓取 last 下划线后的所有内容(如果存在):

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