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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> выделить часть строки 
V
    Опции темы
Firster
Дата 29.12.2007, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Не хотелось бы создавать новую тему, но вопрос почти аналогичный. Как вырезать "CN=Demo Cert" из
Subject: C=GB, ST=Berkshire, L=Newbury, O=My Company Ltd, CN=Demo Cert Subject Public Key Info:

при помощи абра-кадабры регулярок.

Думаю для вас это не сложно, а у меня уже голова трещит  smile 

Спасибо заранее
PM MAIL   Вверх
Firster
Дата 29.12.2007, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



и сразу еще вопросик маленький: а як в регулярках например задать, чтобы искать только  словосочетиние, не отдельно буквы, что в него входят, а всецело подстроку?

PM MAIL   Вверх
skyboy
Дата 29.12.2007, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(Firster @  29.12.2007,  20:21 Найти цитируемый пост)
чтобы искать только  словосочетиние, не отдельно буквы, что в него входят, а всецело подстроку?

т.е.?
регулярка "hello" ищет любую букву из набора, а не всю строку целиком?  smile 
PM MAIL   Вверх
Firster
Дата 29.12.2007, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



skyboy, да

PM MAIL   Вверх
skyboy
Дата 29.12.2007, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(Firster @  29.12.2007,  21:18 Найти цитируемый пост)
skyboy, да

приводи код.либо ты неправильно формируешь регулярное выражение, либо у тебя глячный РНР.
Код

preg_match('/hello/',....);

должно искать вхождение всей строки целиком.
PM MAIL   Вверх
Firster
Дата 29.12.2007, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот еще раз строка Subject: C=GB, ST=Berkshire, L=Newbury, O=My Company Ltd, CN=Demo Cert Subject Public Key Info:

Нуно получить 
С=GB                        \
ST=Berkshire              \
L=Newbury                 /  ~C=([^,]+)~ - вот так вычленяю
O=My Company Ltd   /
CN=Demo Cert         <----------------------------проблема вычленить вот это   
PM MAIL   Вверх
skyboy
Дата 29.12.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



кстати, а зачем пользоваться регулярками?
можно же при помощи stristr и substr получить часть строки от "Subject:" до  "Subject Public Key:".
потом разбить строку при помощи explode по разделителю ", " и получить тот же список параметров...
к слову будет сказано, не приведена демонстрация следующего:
Цитата(skyboy @  29.12.2007,  21:05 Найти цитируемый пост)
регулярка "hello" ищет любую букву из набора, а не всю строку целиком?  

Цитата(Firster @  29.12.2007,  21:18 Найти цитируемый пост)
skyboy, да


Добавлено через 14 секунд
над регуляркой думаю.
PM MAIL   Вверх
skyboy
Дата 29.12.2007, 23:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Код

<?php
$array= array();
$str= 'Subject: C=GB, ST=Berkshire, L=Newbury, O=My Company Ltd, CN=Demo Cert Subject Public Key Info:';
$pattern= 'Subject:\s((.*=.*,\s)*(.*=.*))\sSubject';
echo preg_match_all('/'.$pattern.'/u',$str,$array);
if(isset($array[1][0]))
 $array= explode(', ',$array[1][0]);
else
 $array= array(); 
echo '<pre>';
print_r($array);
echo '</pre>';
?>

не покидает ощущение, что есть путь рациональнее...
PM MAIL   Вверх
gta4kv
Дата 30.12.2007, 00:01 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

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



skyboy

Код

if(isset($array[1][0]))
 $array= explode(', ',$array[1][0]);
else
 $array= array(); 


Можно сократить:

Код

$array = ( ( isset($array[ 1 ][ 0]  ) ) ? $array= explode( ', ',$array[ 1 ][ 0 ] ) : $array= array( ) );


*CRAZY*

Если не прав - поправь. 

Это сообщение отредактировал(а) gta4kv - 30.12.2007, 00:03
PM MAIL   Вверх
Firster
Дата 30.12.2007, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



skyboy и gta4kv поставил вам звезды. Спасибо . Но думаю , что еще будут вопросы у меня........
PM MAIL   Вверх
skyboy
Дата 30.12.2007, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



gta4kv, вопрос не столько краткости, сколько удобочитаемости. 
в любом случае, тернарный условный оператор возвращает значение, потому присваивание можно выбросить:
Код

$array = isset($array[1][0])? explode( ', ',$array[1][0] ): array();

но это так, мелочи.
Цитата(Firster @  29.12.2007,  23:38 Найти цитируемый пост)
Но думаю , что еще будут вопросы у меня........ 

предупрежу сразу: 
M
skyboy
на новые вопросы - новые темы!

PM MAIL   Вверх
Firster
Дата 30.12.2007, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



может наглость но попрошу еще дать мне Абра-кадабру.
вот строка Certificate Request: Data: Version: 0 (0x0)
Нуно сделать так

Certificate Request: 
Data: 
Version: 0 (0x0)

PM MAIL   Вверх
skyboy
Дата 30.12.2007, 01:35 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Код

explode(':','Certificate Request: Data: Version: 0 (0x0)');

правда, в элементах не будет ":" в конце, но можно добавить вручную.
PM MAIL   Вверх
Firster
Дата 30.12.2007, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



skyboy, мне нужно в Абра-кадабре. Спасибо конечно за ЕКСПЛОД, но это не подходит. Нуно записать именно в регул.

PM MAIL   Вверх
skyboy
Дата 30.12.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Цитата(Firster @  30.12.2007,  00:49 Найти цитируемый пост)
Нуно записать именно в регул.

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


 




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


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

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