2010-02-08 5 views
0

клиента идентификатор литерала customer_id + Domain_details, например .: 998787+nl и теперь я просто хочу, чтобы иметь 998787 и не +nl, как это может быть достигнуто это в PHPКак избавиться от строковых элементов в php?

Вопрос:

У меня есть номер, как и 9843324+nl теперь я хочу избавиться от всех элементов, включая +, а потом в конце и только 9843324 и так как я должен делать это в php?

Прямо сейчас у меня $o_household->getInternalId возвращает 9843324+nl, но я хочу 9843324, как я могу достичь этого?

Спасибо.

Спасибо.

Update:

list($customer_id) = explode('+',$o_household->getInternalId()); 

Будет ли это решить мою проблему?

+0

Rachel, http://stackoverflow.com/questions/2210347/how-to-get-rid-of-extra-elements-in-string-literal-in-php имеет ответ, который вы приняли. Между ними нет разницы, зачем задавать другой вопрос? –

+0

У меня есть разница, на самом деле я собираюсь передать этот вопрос здесь – Rachel

+0

Этот ответ не удаляет данные домена с идентификатора клиента – Rachel

ответ

1
<?php 
$plusSignLoc = strpos($o_household->getInternalId, "+"); 
$myID = substr($o_household->getInternalId, 0, $plusSignLoc); 

//Debug (Verification) 
echo $myID; 
?> 

Это обнаружит знак + и гарантирует, что что-либо и все после его удаления.

2

Если вы не хотите хранить ведущие нули, просто преобразуйте его в целое.

$theID = (int)"9843324+nl"; 
// $theID should now be 9843324. 

Если + только разделитель и только шляпы, прежде чем может быть не номер, используйте

$val = "9843324+nl"; 
$theID = substr($val, 0, strcspn($val, '+')); 
// $theID should now be "9843324". 
+0

У меня нет ведущих нулей здесь, только customer_id + domain_name, но я хочу удаленное '+ domain_name' и У меня есть только customer_id, надеюсь, что я объясню здесь. – Rachel

+0

@Rachel: '$ theID' - ваш customer_id. – kennytm

1

Если вам это нужно, чтобы оставаться строковое значение, вы можете использовать substr перерезать строка вниз к исходному указателю до 3 от последнего символа, опуская детали домена +nl

$customer_id = substr($o_household->getInternalId, 0, -3); 
2

Простой способ? Просто отбросьте его на int, и он упадет с лишних вещей.

<?php 
$s = '998787+nl'; 
echo (int)$s; 
?> 

Выход:

998787 
1

В несколько более общее решение, это регулярное выражение удалит все, что не цифра из строки $str и поставить новую строку (набор чисел, так это можно рассматривать как целое число) в $num

$num = preg_replace('/[^\d]/', '', $str); 
+0

@Downvoter, Пожалуйста, прокомментируйте почему. Это работает точно так, как этого требует допрос, и является хорошей альтернативой всем другим предложенным методам. – Yacoby

0

Отъезд функция explode(), и использовать + в качестве разделителя.

Смежные вопросы