Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Программирование > PHP

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 20.10.2003, 16:17
evgenz вне форума Посмотреть профиль Отправить личное сообщение для evgenz Посетить домашнюю страницу evgenz Найти все сообщения от evgenz
  № 1  
evgenz

Регистрация: Feb 2001
Адрес: Moscow
Сообщений: 223
Отправить сообщение для evgenz с помощью ICQ
По умолчанию Получить содержимое тегов (регулярные выражения)

Есть некий внутренний язык разметки похожий на XML
<circle name="c1">
<param1 />
<param2 />
</circle>

какое регулярное выражение надо написать что бы выдернуть
<param1 />
<param2 />
__________________
WebInside.RU

Старый 20.10.2003, 16:49
juggy вне форума Посмотреть профиль Отправить личное сообщение для juggy Посетить домашнюю страницу juggy Найти все сообщения от juggy
  № 2  
juggy
 
Аватар для juggy

Регистрация: Feb 2001
Адрес: LJ/~aleshru
Сообщений: 4,777
Отправить сообщение для juggy с помощью ICQ Отправить сообщение для juggy с помощью MSN Отправить сообщение для juggy с помощью Yahoo Отправить сообщение для juggy с помощью Skype™
PHP код:
        function GenHtml($string,$tag){    
            
preg_match("!<$tag>(.*?)</$tag>!si",$string,$return); 

            if(
$return){
                return 
$return['1'];
            }else{
                return 
FALSE;
            }
        } 
__________________
Что за дурь? 50 символов в подписи!?

Старый 20.10.2003, 17:09
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 3  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
juggy, а ты проверял свой код на его примере?
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 20.10.2003, 17:25
juggy вне форума Посмотреть профиль Отправить личное сообщение для juggy Посетить домашнюю страницу juggy Найти все сообщения от juggy
  № 4  
juggy
 
Аватар для juggy

Регистрация: Feb 2001
Адрес: LJ/~aleshru
Сообщений: 4,777
Отправить сообщение для juggy с помощью ICQ Отправить сообщение для juggy с помощью MSN Отправить сообщение для juggy с помощью Yahoo Отправить сообщение для juggy с помощью Skype™
ты имеешь в виду name="c1"?

PHP код:
<?

// (C) Шушпанов Пётр Анатольевич
// mail: [email]web@phystech.ru[/email]
// Очередной вариант: теперь может вырезать контент из тэгов с параметрами, типа <p class=...>...</p>, <td ...>...</td>.

function xmf($string$tag) {
while(
true):
//начало тэга
$start strpos($string"<".$tag$stop);
if (
$start === false)
break;
//начало контента
$start strpos($string">"$start);
if (
$start === false)
break;
$start++;
//конец контента
$stop strpos($string"</".$tag.">"$start);
if (
$stop === false)
break;
//выкусить контент!
$result[] = substr($string$start$stop $start);
endwhile;
return 
$result;
}


// Далее можно ещё тем же методом выковырять все тэги автоматически, а
// потом весь контент распихать в массив поименованый тэгами. У меня на машине
// такой скриптех выполняется .00011 с
// А функцию я назвал XMF - "XML Fake" (ИксЭмЭль импровизированный) :)

$string '
<news>один</news>
<news>два</news>
<news>три</news>
<news>четыре</news>
<menu>a</menu>
<menu>b</menu>
<menu>c</menu>
<menu>d</menu>
<title>aaaa</title>'
;


$tags tags($string);
foreach (
$tags as $val)
$xmf[$val] = xmf($string$val);

function 
tags($string) {
while(
true):
$start strpos($string'<'$stop);
if (
$start === false)
break;
$start $start strlen($tag) + 1;
$stop strpos($string'>'$start);
if (
$stop === false)
break;
$res substr($string$start$stop $start);
if (
strpos($res'/') === false && !in_array($res,(array)$result)):
$result[] = $res;
endif;
endwhile;
return 
$result;
}

function 
xmf($string$tag) {
while(
true):
$start strpos($string"<".$tag.">"$stop);
if (
$start === false)
break;
$start $start strlen($tag) + 2;
$stop strpos($string"</".$tag.">"$start);
if (
$stop === false)
break;
$result[] = substr($string$start$stop $start);
endwhile;
return 
$result;
}

print_r($xmf);
?>
http://spectator.ru/technology/php/simple_XML
__________________
Что за дурь? 50 символов в подписи!?

Старый 20.10.2003, 18:57
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 5  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Да, хорошо, что я не хочу на спектаторный сайт...
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 21.10.2003, 10:45
juggy вне форума Посмотреть профиль Отправить личное сообщение для juggy Посетить домашнюю страницу juggy Найти все сообщения от juggy
  № 6  
juggy
 
Аватар для juggy

Регистрация: Feb 2001
Адрес: LJ/~aleshru
Сообщений: 4,777
Отправить сообщение для juggy с помощью ICQ Отправить сообщение для juggy с помощью MSN Отправить сообщение для juggy с помощью Yahoo Отправить сообщение для juggy с помощью Skype™
что теперь-то?
__________________
Что за дурь? 50 символов в подписи!?

Старый 21.10.2003, 12:16
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 7  
Crazy
[+1 23.05.11]
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Теперь?

1. Из всех щелей лезут "PHP Notice: Undefined variable". Так что в работе я это даже не видел.

2. Мягко говоря странный код. Начиная с while(true) с выходом из середины цикла и кончая if...endif с единственным оператором.

3. В коде две функции xmf()
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++


Последний раз редактировалось Crazy; 21.10.2003 в 12:17.
Создать новую тему   Часовой пояс GMT +4, время: 08:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 08:03.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.