Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вырезать текст из <BODY> php 4.4.0
 
 автор: graga   (01.09.2008 в 15:49)   письмо автору
 
 

Извините за то что поднимаю старую тему но примеры, указанные в предыдущей теме у меня не работают.
Нужно получить содержимое тега
<BODY  …..  > Текст </ ….  BODY   ……   > 
причем рег. выражение должно быть “бронебойным”.

Помогите, пожалуйста!

  Ответить  
 
 автор: Balamut182   (01.09.2008 в 16:18)   письмо автору
 
   для: graga   (01.09.2008 в 15:49)
 

может что-нибудь типа этого?
<?php
preg_match_all
('|<body[^>]+>(.*)</body[^>]+>|i'$str$regs)
print_r($regs[1]);
?>

  Ответить  
 
 автор: graga   (01.09.2008 в 19:08)   письмо автору
 
   для: Balamut182   (01.09.2008 в 16:18)
 

Notice: Array to string conversion

Побывал во всех позах, не работает.

Может проблема в php 4.4.0

  Ответить  
 
 автор: Balamut182   (01.09.2008 в 19:10)   письмо автору
 
   для: graga   (01.09.2008 в 19:08)
 

странно, а у меня работает на php5, врядли проблема в этом, что у вас в $str? - распечатайте

  Ответить  
 
 автор: graga   (01.09.2008 в 19:45)   письмо автору
 
   для: Balamut182   (01.09.2008 в 19:10)
 

>странно, а у меня работает на php5, врядли проблема в этом, что у вас в $str? - распечатайте

Тестовая форма


<?php
$str
="";
if(isset(
$_POST['Submit'])){
$str=$_POST['textarea'];
}

preg_match_all('|<body[^>]+>(.*)</body[^>]+>|i'$str$regs);


print
"<form id='form1' name='form1' method='post' action=''>
<textarea name='textarea' cols='100' rows='5'></textarea>
<br><br><input type='submit' name='Submit' value='Подтвердить'>
</form><br><br><br><br>"
;

print_r($regs[1]);

?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Документ Без Имени</title>
</head>

<body>
Счастье иногда так неожиданно сваливается, что не успеваешь отскочить в сторону.

</body>
</html> 

  Ответить  
 
 автор: Balamut182   (02.09.2008 в 09:55)   письмо автору
 
   для: graga   (01.09.2008 в 19:45)
 

ну а так?
<?php
preg_match_all
('|<body[^>]+>([^</body>]*)|i'$str$regs);
print_r($regs[1]);
?>

  Ответить  
 
 автор: graga   (02.09.2008 в 10:09)   письмо автору
 
   для: Balamut182   (02.09.2008 в 09:55)
 

Результат
Array ( ) 


Воспользуйтесь тестовой формой.
Я неуверен что вообще правильно применяю рег. выражение.

  Ответить  
 
 автор: balamut182   (02.09.2008 в 10:24)   письмо автору
 
   для: graga   (02.09.2008 в 10:09)
 

регулярка походу работает - проблема в том через пост, по крайней мере у меня, не проходят теги - только сам текст - вам обязательно постить эти данные?

  Ответить  
 
 автор: xx77   (02.09.2008 в 21:49)   письмо автору
 
   для: graga   (02.09.2008 в 10:09)
 

первое выражение неплохое,
только не хватало модификатора "s" , и "*" вместо "+"
<?php 
$text 
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:.........">
<html xmlns="http:..................."> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
<title>Документ Без Имени</title> 
</head> 
<body> 
Счастье иногда так неожиданно сваливается, что не успеваешь отскочить в сторону. 
</body> 
</html>
'


 if (isset(
$_POST['textarea']) && preg_match('|<body[^>]*>(.*)</body[^>]*>|is'
 
$_POST['textarea'], $str)) 
    print 
'<pre>' htmlspecialchars($str[1]) . '</pre><hr>';
?>

<form method='post' action='?'> 
<textarea name='textarea' cols='100' rows='5'><?
print htmlspecialchars($text);
?></textarea> 
<br><br><input type='submit' value='Подтвердить'> 
</form>

  Ответить  
 
 автор: graga   (03.09.2008 в 23:04)   письмо автору
 
   для: xx77   (02.09.2008 в 21:49)
 

Большое спасибо участникам форума за помощь.

Разобрался, все отлично работает. :-)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования