Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите обрезать строку
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Помогите обрезать строку

Страниц (1): [1]
 

1. z1o - 29 Августа, 2011 - 17:53:02 - перейти к сообщению
Как можно обрезать строку если есть например 2 числа:
26111 26113
Ети цифры могут быть и трехзначные...
Нашел на этом сайте код:
PHP:
скопировать код в буфер обмена
  1. for ($i=0; $i < count($result); $i++)
  2.         {
  3.                 if ($result[$i] = 32)
  4.                 {
  5.                 $result=substr($result,1,$i);  
  6.                 break;
  7.                 }
  8.         }

Но он не работает. Как сделать чтобы он работал или есть решение получше чем этот?
2. Viper - 29 Августа, 2011 - 18:07:22 - перейти к сообщению
z1o пишет:
обрезать строку
т.е. оставить только первое число? Строка только в таком формате? В смысле через пробел?
3. z1o - 29 Августа, 2011 - 19:01:49 - перейти к сообщению
Viper пишет:
т.е. оставить только первое число?

да
Viper пишет:
Строка только в таком формате? В смысле через пробел?

да
4. LIME - 29 Августа, 2011 - 21:14:01 - перейти к сообщению
ну если точно только числа то так можно
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $str='26111 26113';
  3. $s=trim($str);// на всякий отрезаем пробелы по краям можно это пропустить если точно начинается с цифры
  4. $result=substr($s,0,strpos($s,' '));
  5. ?>
5. z1o - 29 Августа, 2011 - 22:01:56 - перейти к сообщению
Не работает с shell exec почему то Недовольство, огорчение
Вот пол кода:
PHP:
скопировать код в буфер обмена
  1.  
  2.         $str = shell_exec('pgrep -f ./CallDuty -U CallDuty');  
  3.         echo "str = $str<br />";
  4.         $s=trim($str);// на всякий отрезаем пробелы по краям можно это пропустить если точно начинается с цифры
  5.         $result=substr($s,0,strpos($s,' '));
  6.         echo "result=$result";
  7.  

Вот что получается:
Цитата:

str = 26111 26113
result=
6. LIME - 29 Августа, 2011 - 22:38:18 - перейти к сообщению
ну я незнаю...мегастранно
анука скопируйте скрипт сюда
у меня подозрение что вы просто чтото изменили случайно
7. White - 29 Августа, 2011 - 23:08:14 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $str = shell_exec('pgrep -f ./CallDuty -U CallDuty');  
  2. $result=explode(" ",$str);
  3. var_dump($result);

а так что?
8. z1o - 29 Августа, 2011 - 23:09:55 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. //sudo
  3.         $str = shell_exec('pgrep -f ./CallDuty -U CallDuty');  
  4.        echo "str = $str<br />";
  5.         $s=trim($str);// на всякий отрезаем пробелы по краям можно это пропустить если точно начинается с цифры
  6.         $result=substr($s,0,strpos($s,' '));
  7.         echo "result=$result";
  8. ?>

(Добавление)
White пишет:

$str = shell_exec('pgrep -f ./CallDuty -U CallDuty');  
$result=explode(" ",$str);
var_dump($result);

а так что?

array(1) { [0]=> string(12) "26111 26113 " }
9. LIME - 30 Августа, 2011 - 09:08:05 - перейти к сообщению
если у вас строка только из двух циферь состоит и нет перед первой никаких знаков то проще использовать код White
только походу и у него та же беда ...не видит пробела
хз что такое
а вы пробовали запускать без shell_exec ?
просто присвоить строку
(Добавление)
и гляньте на всякий в исходный код страницы может там чтото увидите
10. z1o - 30 Августа, 2011 - 11:47:14 - перейти к сообщению
LIME пишет:
если у вас строка только из двух циферь состоит и нет перед первой никаких знаков то проще использовать код White
только походу и у него та же беда ...не видит пробела
хз что такое
а вы пробовали запускать без shell_exec ?
просто присвоить строку


Пробовал работает

Скорее всего оно в другой кодировке, т.к у меня стоит Linux и я когда вместо 'pgrep -f ./CallDuty -U CallDuty' поставил 'ping 8.8.8.8 -c 1' вывелись иероглифы

LIME пишет:
и гляньте на всякий в исходный код страницы может там чтото увидите


В исходном коде страницы ничего странного нету.
11. LIME - 30 Августа, 2011 - 11:53:50 - перейти к сообщению
z1o пишет:
Скорее всего оно в другой кодировке
кодировки касаются только кирилицы
может там в исходнике &nbsp вместо пробела ?
12. z1o - 30 Августа, 2011 - 11:57:41 - перейти к сообщению
LIME пишет:
может там в исходнике &nbsp вместо пробела ?


нет
13. LIME - 30 Августа, 2011 - 12:05:33 - перейти к сообщению
сейчас пойдут советы из раздела "бред сумасшедшего" ))
проделайте с строкой сначала какие-нибудь извращения типа urldecode(urlencode($str));
кстати ошибки включены? малоли
14. z1o - 30 Августа, 2011 - 12:34:32 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2.         $str = shell_exec('pgrep -f ./hlds_run -U hlds_567 '); 
  3.        echo "str = $str<br />";
  4. //         urlencode(urlencode($str));
  5. //         $s=trim($str);// на всякий отрезаем пробелы по краям можно это пропустить если точно начинается с цифры
  6. //        $result=substr($s,0,strpos($s,' '));
  7.                 $result=substr($s,3,7);
  8.         echo "result=$result";
  9.  

Попробовал тупо удалить строку не работает почему то...
(Добавление)
Все проблема решена. Использовал команду Linux cut.

 

Powered by ExBB FM 1.0 RC1