2014-02-09 4 views
-2

$string = "David Smith (Local/[email protected]/n from SIP/202) (ringinuse enabled) (Not in use) has taken 1 calls (last was 843 secs ago)";Как найти часть строки и повторить ее?

Мне нужно отследить полученные вызовы (1).

Я попытался:

$taken_calls = substr($string, 'taken ', 4); 

Как я могу это сделать? Спасибо.

+3

Прочитайте главу о регулярных выражениях –

ответ

0
$string = "David Smith (Local/[email protected]/n from SIP/202) (ringinuse enabled) (Not in use) has taken 1 calls (last was 843 secs ago)"; 
$result= array(); 
preg_match("/taken\s(\d+)/", $string, $result); 

var_dump($result); 

Результат:

array(2) { 
      [0]=> string(7) "taken 1" 
      [1]=> string(1) "1" // this is your number 
} 

Edit: Теперь число может иметь более чем 1 цифра

+0

Спасибо , это сработало. – user3148002

+0

whats preg_match, если число больше одного, иногда число может составлять 2 цифры или 3 цифры в длину. На данный момент, если число равно 12, я получаю только 1 в строке массива. – user3148002

+0

Хм .. да, ты прав, я его отредактирую :) – demonking

0

Используйте регулярные выражения:

<?php 
$string = "David Smith (Local/[email protected]/n from SIP/202) (ringinuse enabled) (Not in use) has taken 1 calls (last was 843 secs ago)"; 
$matches = array(); 

if (1 === preg_match('/taken (\d+) calls/', $string, $matches)) { 
    echo $matches[1]; 
} 
Смежные вопросы