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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите обрезать строку

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
z1o
Отправлено: 29 Августа, 2011 - 17:53:02
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Как можно обрезать строку если есть например 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.         }

Но он не работает. Как сделать чтобы он работал или есть решение получше чем этот?
 
 Top
Viper
Отправлено: 29 Августа, 2011 - 18:07:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




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


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
z1o
Отправлено: 29 Августа, 2011 - 19:01:49
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Viper пишет:
т.е. оставить только первое число?

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

да

(Отредактировано автором: 29 Августа, 2011 - 20:49:48)

 
 Top
LIME
Отправлено: 29 Августа, 2011 - 21:14:01
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ну если точно только числа то так можно
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $str='26111 26113';
  3. $s=trim($str);// на всякий отрезаем пробелы по краям можно это пропустить если точно начинается с цифры
  4. $result=substr($s,0,strpos($s,' '));
  5. ?>

(Отредактировано автором: 29 Августа, 2011 - 21:21:15)

 
 Top
z1o
Отправлено: 29 Августа, 2011 - 22:01:56
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Не работает с 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=

(Отредактировано автором: 29 Августа, 2011 - 22:04:05)

 
 Top
LIME
Отправлено: 29 Августа, 2011 - 22:38:18
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ну я незнаю...мегастранно
анука скопируйте скрипт сюда
у меня подозрение что вы просто чтото изменили случайно
 
 Top
White
Отправлено: 29 Августа, 2011 - 23:08:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




PHP:
скопировать код в буфер обмена
  1. $str = shell_exec('pgrep -f ./CallDuty -U CallDuty');  
  2. $result=explode(" ",$str);
  3. var_dump($result);

а так что?


-----
if(time()>1356048000) die();
 
 Top
z1o
Отправлено: 29 Августа, 2011 - 23:09:55
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




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

(Отредактировано автором: 29 Августа, 2011 - 23:20:22)

 
 Top
LIME
Отправлено: 30 Августа, 2011 - 09:08:05
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




если у вас строка только из двух циферь состоит и нет перед первой никаких знаков то проще использовать код White
только походу и у него та же беда ...не видит пробела
хз что такое
а вы пробовали запускать без shell_exec ?
просто присвоить строку
(Добавление)
и гляньте на всякий в исходный код страницы может там чтото увидите
 
 Top
z1o
Отправлено: 30 Августа, 2011 - 11:47:14
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




LIME пишет:
если у вас строка только из двух циферь состоит и нет перед первой никаких знаков то проще использовать код White
только походу и у него та же беда ...не видит пробела
хз что такое
а вы пробовали запускать без shell_exec ?
просто присвоить строку


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

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

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


В исходном коде страницы ничего странного нету.

(Отредактировано автором: 30 Августа, 2011 - 11:48:24)

 
 Top
LIME
Отправлено: 30 Августа, 2011 - 11:53:50
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




z1o пишет:
Скорее всего оно в другой кодировке
кодировки касаются только кирилицы
может там в исходнике &nbsp вместо пробела ?
 
 Top
z1o
Отправлено: 30 Августа, 2011 - 11:57:41
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




LIME пишет:
может там в исходнике &nbsp вместо пробела ?


нет
 
 Top
LIME
Отправлено: 30 Августа, 2011 - 12:05:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




сейчас пойдут советы из раздела "бред сумасшедшего" ))
проделайте с строкой сначала какие-нибудь извращения типа urldecode(urlencode($str));
кстати ошибки включены? малоли
 
 Top
z1o
Отправлено: 30 Августа, 2011 - 12:34:32
Post Id


Новичок


Покинул форум
Сообщений всего: 58
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




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.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB