html в массив

Статус
В этой теме нельзя размещать новые ответы.

Wertos

Пьянь местная
Регистрация
13 Апр 2007
Сообщения
178
Реакции
39
Есть html
HTML:
Origin: Hungary <br><br> Agency:<br><br> Other Name:babs, Barbara, Barbara B, Barbie B, Gianna, Ginger, Ginger B, <br> Debut year: 2006<br><br> Debut age: 21 years old<br><br> Breast: Small<br><br> Birthday: 27/06/1985<br><br> Hair Color: Brown<br><br> Tattoos: <br> Flower on left stomach<br><br> Piercings: <br><br> Forum Thread
Возможно ли привести данный код к массиву ключ -> значение, например
"Other Name" => "babs, Barbara, Barbara B, Barbie B, Gianna, Ginger, Ginger B"
 
PHP:
$elements = explode('<br><br>', $str);
$array = array()
foreach($elements as $element){
    $els = explode(':', $element);
    $array[trim($els[0])] = trim($els[1]);
}
 
Но там есть и одиночный <br>
 
тебе регулярным выражением извлечь то что перед двоеточием и то что после? Для просмотра ссылки Войди или Зарегистрируйся здесь заполненные атрибуты спарсились.
 
Наверное я вопрос не так поставил... Код работает но там может ещё и вот так быть
Код:
Origin: Brazil <br><br> Agency: <br><br><br> Other Name:, Abby Lee, Abby Lee Brazil, <br> Debut year: 2014<br><br> Debut age: 25 years old<br><br> Breast: Big<br><br> Birthday: 1989-09-08<br><br> Hair Color: Brown<br><br> Tattoos: <br> Flower on right stomach<br> Flowers on left side<br> Dinosaur on left buttock<br><br> Piercings: Navel, clit<br><br> Forum Thread
т.е. Tattoos там 3 шт и они должны быть в значении.
Наверное надо обсуждение на время прекратить, до тех пор пока я не приведу код к лучшему варианту... Слишком много разных вариантов
 
Вот привёл код к такому виду
HTML:
Origin: Brazil<br>Agency:<br>Other Name:, Abby Lee, Abby Lee Brazil,<br>Debut year: 2014<br>Debut age: 25 years old<br>Breast: Big<br>Birthday: 1989-09-08<br>Hair Color: Brown<br>Tattoos:<br>Flower on right stomach<br>Flowers on left side<br>Dinosaur on left buttock<br>Piercings: Navel, clit<br>Forum Thread
И вот вылазят кое где типа Tattoos... должно примерно так быть
"Tattoos" => "Flower on right stomach,Flowers on left side,Dinosaur on left buttock"
Запятые не обязательны, хоть что нибудь...
 
Вот привёл код к такому виду
HTML:
Origin: Brazil<br>Agency:<br>Other Name:, Abby Lee, Abby Lee Brazil,<br>Debut year: 2014<br>Debut age: 25 years old<br>Breast: Big<br>Birthday: 1989-09-08<br>Hair Color: Brown<br>Tattoos:<br>Flower on right stomach<br>Flowers on left side<br>Dinosaur on left buttock<br>Piercings: Navel, clit<br>Forum Thread
И вот вылазят кое где типа Tattoos... должно примерно так быть
"Tattoos" => "Flower on right stomach,Flowers on left side,Dinosaur on left buttock"
Запятые не обязательны, хоть что нибудь...
PHP:
echo '<pre>';


$str = '<br>'.'Origin: Brazil<br>Agency:<br>Other Name:, Abby Lee, Abby Lee Brazil,<br>Debut year: 2014<br>Debut age: 25 years old<br>Breast: Big<br>Birthday: 1989-09-08<br>Hair Color: Brown<br>Tattoos:<br>Flower on right stomach<br>Flowers on left side<br>Dinosaur on left buttock<br>Piercings: Navel, clit<br>Forum Thread  ';

preg_match_all("#\<br\>([a-z\s]*)\:#ui", $str, $matches);

foreach($matches[1] as $m)
{
    $str = str_replace($m, str_replace(' ', '\s', $m), $str);
}

$a1 = array(':', '<br>');
$a2 = array(': ', ' ');

$str = str_replace($a1, $a2, $str);
$str = strip_tags($str);
$elements = explode(' ', $str);
$array = array();

print_r($elements);

foreach($elements as $element){
    if(trim($element) === '') continue;
 
    if(strpos($element, ':'))
        $key = substr(str_replace('\s', ' ', $element), 0, -1);
    else
    {
        $array[$key] = isset($array[$key]) ? $array[$key].' '.trim(str_replace('<br>', ' ', $element)) : trim(str_replace('<br>', ' ', $element));
    }
}

print_r($array);
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху