我在数据库中有一个列,如下所示;
< channel\01273123456:d24gf3fm >
我需要从此字符串中导出数字,第一个“&lt; channel \”始终相同,但结束ID始终是唯一的。
我目前有以下代码,但无法思考,也找不到我需要导出的数字。
//connection
$dbhandle = mysql_connect($hostname, $username, $password)
or die ("Unable to connect to Database");
echo "Connected\n";
//select DB
$selected = mysql_select_db("asterisk", $dbhandle)
or die("Could not select DB");
$result = mysql_query("SELECT * FROM TABLE");
while($row = mysql_fetch_array($result)) {
echo echo "channel:".$row{'channel'}."\n";
}
希望有人可以提供帮助,这让我发疯了。
答案 0 :(得分:1)
Substr似乎是您正在寻找的功能:
尝试这样的事情(取决于你是否需要字符串的整个最后部分或只有部分直到':':
$yourString = substr($row['channel'], strpos($row['channel'], '\'));
会给你整个子串。如果您不需要在':'之后的部分,则不需要再次将yourString从0分割为':'的位置。
$yourString2 = substr($yourString, 0, strpos($subString, ':'));
答案 1 :(得分:1)
这应该是技巧,并按照tadman的要求,它是一个功能:)
public function cleanMyString($string)
{
// remove channel garbage
// 01273123456:d24gf3fm >
$string = substr($string, 10, (strlen($string) - 10));
// remove space and >
// 01273123456:d24gf3fm
$string = substr($string, 0, -2);
// split on colon
// $colons[0] = 01273123456
// $colons[1] = d24gf3fm
$colons = explode(':', $string);
// first item in array is the channel
echo 'Channel: '.$colons[0].'<br><br>';
// second item is ID
echo 'ID: '.$colons[1];
}
// string, yay!
cleanMyString('< channel\\01273123456:d24gf3fm >');
答案 2 :(得分:0)
SELECT Right (LEFT(`your_column`, 21),11) as numbers
from asterisk
或者
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(`your_column`,'\', -1),':', 1) as numbers
from asterisk