Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Некорректная работа preg_replace 
V
    Опции темы
Just123
Дата 13.3.2012, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 9.12.2007
Где: localhost

Репутация: нет
Всего: нет



И снова здравствуйте  smile 

Подскажите, что я упустил?

Следующий код:
Код

while($items = $all->children($i++)){
         $id = $items->find('a',0)->onclick."<br>\r\n";
         echo $id = preg_replace('/[^0-9]/', '', $id)."<br>";
}

id состоит из нескольких, как правило 5, цифр.
В цикле выводиться нормально, вне цикла, каждая цифра записывается в отдельную ячейку в массиве.

Пример:

В цикле 
Код

echo $id;


Выводит: 16500.

Вне цикла, чтобы получить тот же результат, нужно сделать:
Код

echo $id['0'];
echo $id['1'];
echo $id['2'];
echo $id['3'];
echo $id['4'];


Подскажите пожалуйста,  почему так?


Это сообщение отредактировал(а) Just123 - 13.3.2012, 12:28
PM MAIL   Вверх
Evghenusi
Дата 13.3.2012, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



Код
/\d+/
вытащит все цифры, если надо определённое количество вытащить, только 5, то вместо плюса {5}, если от 1 до 5 - {1,5} и тд.

объяснять что и почему не буду, термины забыл  smile , а книжку искать в лом  smile 

"сервис" хороший, к тому же объяснит поведение регулярки

Это сообщение отредактировал(а) Evghenusi - 13.3.2012, 12:30
PM WWW   Вверх
Just123
Дата 13.3.2012, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 9.12.2007
Где: localhost

Репутация: нет
Всего: нет



Evghenusi, Так он выводит все кроме цифр. smile
PM MAIL   Вверх
Evghenusi
Дата 13.3.2012, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



кто "он"? мой вариант?  smile 
PM WWW   Вверх
Just123
Дата 13.3.2012, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 9.12.2007
Где: localhost

Репутация: нет
Всего: нет



Evghenusi, Да оО И все равно каждый символ в отдельную ячейку массива записывается.

P.S. Спасибо за ссылку:)

Это сообщение отредактировал(а) Just123 - 13.3.2012, 12:37
PM MAIL   Вверх
Evghenusi
Дата 13.3.2012, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



такого не может быть. 
приведи пример строки в которой ищешь.

всё работает как надо, можешь посмотреть

Цитата(Just123 @  13.3.2012,  12:34 Найти цитируемый пост)
И все равно каждый символ в отдельную ячейку массива записывается.
не может быть такого

Это сообщение отредактировал(а) Evghenusi - 13.3.2012, 12:39
PM WWW   Вверх
Just123
Дата 13.3.2012, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 9.12.2007
Где: localhost

Репутация: нет
Всего: нет



Вот такой вариант выводит цифры /[^\d]/
но проблема все равно остается, каждый символ в отдельной ячейке :(

Добавлено через 1 минуту и 16 секунд
Evghenusi, Угу, проверял, сам удивился. 

Строка выглядит так: showGood('16917'); return false;

Добавлено через 4 минуты и 51 секунду
Проблему решил, как мне кажется костыльным способом, добавлением нулевого элемента в массив $array:

Код

    $id = $items->find('a',0)->onclick."<br>\r\n";
    $id = preg_replace('/[^\d]/', '', $id)."<br>";
    $array['0'] = '333';
    $array[] = $id;


Добавлено через 5 минут и 49 секунд
Цитата

не может быть такого

Зачем же мне выдумывать?))
PM MAIL   Вверх
Evghenusi
Дата 13.3.2012, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


майский жук
**


Профиль
Группа: Участник
Сообщений: 506
Регистрация: 3.8.2006
Где: Молдова, Кишинёв

Репутация: 6
Всего: 15



Цитата(Just123 @  13.3.2012,  12:29 Найти цитируемый пост)
Так он выводит все кроме цифр.

блин  smile , как я сразу не заметил, ты используешь  preg_replace , а он заменяет текст, а не выводит, вот ты цифры и заменяешь на пустоту (''). Если хочешь находить текст, то  preg_match/_all
PM WWW   Вверх
Just123
Дата 13.3.2012, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 9.12.2007
Где: localhost

Репутация: нет
Всего: нет



Evghenusi, Ясно, бывает со всеми)) благодарю:)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0450 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.