PHP - 从数据库编辑字符串

时间:2014-02-03 21:10:19

标签: php mysql

我在数据库中有一个列,如下所示;

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

}

希望有人可以提供帮助,这让我发疯了。

3 个答案:

答案 0 :(得分:1)

Substr似乎是您正在寻找的功能:

substrstrpos

尝试这样的事情(取决于你是否需要字符串的整个最后部分或只有部分直到':':

$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