|
|
|
| Есть например мета теги типа:
<meta name="description" content="content content"/>
<meta name="description" content="content content">
<meta content="content content" name="description"/>
<meta content="content content" name="description">
|
Как вытащить значения 'name' и 'content'?
При чем может быть как "content content" так и 'content content', но не "content content' и 'content content". | |
|
|
|
|
|
|
|
для: pina
(02.02.2008 в 17:26)
| |
<?php
preg_match("#name=(\"|\')([^\"\']*)(\"|\')#", $text, $buf);
echo $buf[2][0]; // покажет содержимое name
?>
|
у меня вроде так работало... | |
|
|
|
|
|
|
|
для: pina
(02.02.2008 в 17:26)
| |
<?php
$text = <<<TEXT
<meta name="description" content="content content"/>
<meta name="description" content="content content">
<meta content="content content" name="description"/>
<meta content="content content" name="description">
TEXT;
preg_match_all('#<meta\s+(?:name=(["\'])(?P<name1>.*)\1\s+content=(["\'])(?P<content1>.*)\3|content=(["\'])(?P<content2>.*)\5\s+name=(["\'])(?P<name2>.*)\7).*>#isU', $text, $regs);
print_r($regs);
// правда тут еще пустые значения будут, но их можно не обрабатывать
|
| |
|
|
|
|
|
|
|
для: ЯR
(02.02.2008 в 18:04)
| | что значит (?P<name1>.*) и тому подобные записи? | |
|
|
|
|
|
|
|
для: pina
(02.02.2008 в 18:58)
| | Если не ошибаюсь, это называется «именованным шаблоном», то, что в треугольных скобках - имя шаблона, также их можно и в preg_replace юзать | |
|
|
|
|
|
|
|
для: ЯR
(02.02.2008 в 19:18)
| | хм.. зачем такое громоздкое? =) | |
|
|
|
|
|
|
|
для: ddhvvn
(02.02.2008 в 21:03)
| | Оно найдет все пары name-content meta-тегов в коде, насколько я понял, нужно было именно это. | |
|
|
|
|
|
|
|
для: ЯR
(02.02.2008 в 22:55)
| | Да именно это и надо было, спасибо! | |
|
|
|