форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / Создание сайта / разбиение строки
Автор Сообщение
SpiriTzzz
Темный джедай

1382
# Дата: 30 Июн 2007 11:14 ° Поправил: SpiriTzzz


вобщем
есть строка
<b> {code} </b>




задача - разбить её на три, до скобок, то что в скобках, и после скобок
и впихнуть в разные переменные.
тоесть должно типо:

$a= "<b>"; 
$b= "code"; 
$c= "</b>";




вроде не сложно как это лучше сделать?

persei
Участник

491
# Дата: 30 Июн 2007 12:22


ну если пробелов нигде кроме указанных нет то
list($a, $b, $c) = explode(' ', $str);
ну и у $b удалить фигурные скобки.
если нет то можно провести синтаксический анализ

SpiriTzzz
Темный джедай

1382
# Дата: 30 Июн 2007 12:52


persei
не, это для примера, конструкция может быть и такой:
<a href="#">text</a><p><b> texte tex {code} bla bla </a>


и опять в итоге:

$a= "<a href="#">text</a><p><b> texte tex "; 
$b= "code"; 
$c= "bla bla </a>";


Cryptex
Участник

312
# Дата: 30 Июн 2007 13:56 ° Поправил: Cryptex


Самый тупой вариант))
list($a, $c) = explode('{code}', $str);



ну а
$b="{code}";


maxtat
pda killer

1489
# Дата: 30 Июн 2007 14:00


сначала ищем позиции { и } функцией strpos, затем это надо как-то вырезать...

SpiriTzzz
Темный джедай

1382
# Дата: 30 Июн 2007 14:12


Cryptex
содержимое скобок {} каждый раз разное

Cryptex
Участник

312
# Дата: 30 Июн 2007 14:16


Вариант ещё тупее:
list($a, $bc) = explode('{', $str); 
list($b, $c) = explode('}', $bc);


Михаил
Ушел в бан)

2572
# Дата: 30 Июн 2007 14:20 ° Поправил: Михаил


$string="<b> {code} </b>"
$str=explode(" ", $string);
$a=$str[0];
$num=strlen($str[1]);
$b= substr($str[1],1,$num-2);
$c=$str[2];


в результате
$A = <B>
$C = </B>
а переменная $B будет равна code, так как первый и последний символы вырезаны
з.ы. это при условии что между тегами и самим кодом лишь один пробел

SpiriTzzz
Темный джедай

1382
# Дата: 30 Июн 2007 15:29


че, неужто никто не знает КАК это сделать? )))))

WarGot
Per aspera ad astra

1949
# Дата: 30 Июн 2007 15:36


Михаил
Пробелы там как могут быть, так могут и отсутствать.

Тут надо от скобок плясать, но как блин -( Простейшая задача но долбаемся уже целый день -(

gl_SPICE
Участник

1766
# Дата: 30 Июн 2007 16:39


WarGot, капайте в сторону регулярных выражений, там вроде есть какая-то функция-аналог explode, только с шаблоном.

SpiriTzzz
Темный джедай

1382
# Дата: 30 Июн 2007 16:42


gl_SPICE
уже запарились мы копать скоро до Америки докапаемся блин. С рег. выр. я что то находил, но толкового из этого ничего не вышло

maxtat
pda killer

1489
# Дата: 1 Июл 2007 00:20


там вроде есть какая-то функция-аналог explode, только с шаблоном.

preg_split (string pattern, string subject [,int limit [,int flags]])

Cryptex
Участник

312
# Дата: 1 Июл 2007 00:25


<?php 
 
$scr = "<a href='#'>text</a><p><b> texte tex {code} bla bla </a>"; 
     
    list($a, $bc) = explode("{", $scr); 
    list($b, $c) = explode("}", $bc); 
     
    print "\$a = $a<br>"; 
    print "\$b = $b<br>"; 
    print "\$c = $c<br>"; 
     
    ?>



Ну вот это мне вывело вот это:
$a = [url=#]text[/url] 
 
texte tex 
$b = code 
$c = bla bla


Если подумать что html код не пеказывается на прямую, то всё ок

если выводить так:
print <<<HERE 
<textarea cols="30" rows="10"> 
\$a = $a 
\$b = $b 
\$c = $c 
</textarea> 
HERE;


то будет вот что:
$a = <a href='#'>text</a><p><b> texte tex 
$b = code 
$c =  bla bla </a>


maxtat
pda killer

1489
# Дата: 1 Июл 2007 00:30


Cryptex
htmlspecialchars легче применить

SpiriTzzz
Темный джедай

1382
# Дата: 1 Июл 2007 14:06 ° Поправил: SpiriTzzz


с идеи maxtat, при благословление Defa и его помощи все оказалось гораздо проще, чем я думал

 
<?php 
$line = "Hello, f {world} yysdffdsdfds11"; 
     
    $var  = strpos($line, "{"); 
    $var2 = strpos($line, "}",$var); 
     
    $p1=substr($line,0,$var); 
    $p2=substr($line,$var+1,$var2-$var-1); 
    $p2="code"  ; 
    $p3=substr($line,$var2+1); 
     
    echo($p1.$p2.$p3); 
    ?> 
    


Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:34178, gzipped size:9438

Mp3 Download || Мир Спанч боба || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]