Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2010, 16:33   #1
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию Проблема с регулярным выражением

Помогите разобраться с регуляркой, уже час как голову ломаю где косяк.

Код:
$file=fopen('1.txt','r');
        $t=fread($file,filesize('1.txt'));
        fclose($file);
         preg_match_all("|name=\'(.+)\'|",$t,$fields);
         foreach($fields[0] as $key=>$value)
        {
            echo $value."||||||||";

        }
Надо получить все значения артибута name тегов в формате name='имя'
Вложения
Тип файла: txt 1.txt (9.4 Кб, 144 просмотров)
ssdm вне форума Ответить с цитированием
Старый 12.01.2010, 16:39   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

может, обойтись explode()?
motorway вне форума Ответить с цитированием
Старый 12.01.2010, 16:49   #3
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Можно конечно и с помощью explode, но как то некрасиво получиться. Хотелось бы добить регулярку.

Вот с эксплодами, если кому надо
Код:
        $file=fopen('1.txt','r');
        $t=fread($file,filesize('1.txt'));
        fclose($file);
        $temp1=explode("name",$t);
        foreach($temp1 as $key=>$value){
         $temp1[$key]=explode("'",$temp1[$key]);
         //echo $temp1[$key][1].'<br>';
        }
        array_shift($temp1);
        $temp2="";
        foreach ($temp1 as $key=>$value){
            $temp2.=" , ".$temp1[$key][1]." nvarchar(50) null";
        }
        $cont="Create table stat_razr (
            id int not null,
            datetime_insert nvarchar(50)".$temp2.")";
        echo $cont;

Последний раз редактировалось ssdm; 12.01.2010 в 17:10.
ssdm вне форума Ответить с цитированием
Старый 12.01.2010, 18:26   #4
13th
Форумчанин
 
Аватар для 13th
 
Регистрация: 31.12.2008
Сообщений: 634
По умолчанию

Код:

$file=fopen('1.txt','r');
        $t=fread($file,filesize('1.txt'));
        fclose($file);
         preg_match_all("/name='([a-zA-Z_]*)'/is",$t,$fields);
         /*foreach($fields[0] as $key=>$value)
        {
            echo $value."||||||||<br />";

        }  */
        
       echo '<pre>';
       print_r($fields);
       echo '</pre>';
вот так вот у меня получилось

вот это выводит
Код:
  [0] => r_post_all
            [1] => r_post_all_min
            [2] => r_post_all_zayav
            [3] => r_post_all_another
            [4] => r_post_all_origin
            [5] => r_post_all_repeat
....................................

[115] => r_curent_gl_zayav
            [116] => r_curent_gl_another
            [117] => r_curent_gl_origin
            [118] => r_curent_gl_repeat
            [119] => r_curent_gl_vnutrenie
Возможно всё
Пишу обо всем
13th вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с регулярным вырежением [EX]n1 Помощь студентам 2 04.01.2010 15:34
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37