Вырезать двойные ковчычки, не трогая html теги

1. Михаил (22.11.2011 / 08:18)
Всем привет. Дан текст <a href="bla bla">Вася Петю "олололо" делала</a>
Какую регулярку нужно составить,чтобы олололо оказалось без ковычек, и при этом не затронулись ковычки html тега. Заранее спасибо

2. Hennessy (22.11.2011 / 08:48)
<a href="bla bla"> - это заранее известно или нет?

3. Михаил (22.11.2011 / 09:04)
bla bla тоже всегда меняется =(

4. ramzes (22.11.2011 / 09:06)
$text = str_replace('"', '', $text); скорее всего сработает

5. Михаил (22.11.2011 / 09:10)
не помогло( в коде ковччки записаны в чистом виде, а не как "

6. Hennessy (22.11.2011 / 10:36)
Тогда никак. Если бы ссылка была постоянной, то тогда ещё можно было бы сообразить...а так - нет...

7. Дмитрий (22.11.2011 / 10:54)
Если я правильно понял
$var = preg_replace('/<a href="(.*)">Вася Петю "(.*)" делала<\/a>/si', '<a href="\1">Вася Петю \2 делала</a>', $var);
короче че то из отряда 8ми колесных...

8. Hennessy (22.11.2011 / 11:18)
Кстати, тоже как вариант... Я где-то у себя такое использовал...для бб-кодов чтоли...

9. Владислав (22.11.2011 / 12:13)
<?
function htmlquot($text)
 {
 	$res='';
 	$tag=false;
 	$len=strlen($text);
 	for($i=0; $i<$len; ++$i)
 	 {
 	 	switch($q=$text{$i})
 	 	 {
 	 	 	case '<':
 	 	 		$tag=true;
 	 	 		$res.='<';
 	 	 		break;

 	 	 	case '>':
 	 	 		$tag=false;
 	 	 		$res.='>';
 	 	 		break;

 	 	 	case '"':
 	 	 		if($tag)$res.='"';
 	 	 		break;

 	 	 	default:
 	 	 		$res.=$q;
 	 	 		break;
 	 	 }
 	 }
 	return $res;
 };


10. Владислав (22.11.2011 / 12:30)
попробовал регулярку сообразить...в общем регуляркой не получитсо, только перебор, условие перебора можно усложнить

11. Антон (22.11.2011 / 12:31)
4. ramzes, все правильно ты предложил, только чуть по другому..
$mytext = str_replace('"', '', $mytext);
И тогда все двойные кавычки будут обрезаться в переменной $mytext.

12. Михаил (22.11.2011 / 12:41)
mrUp, работает, спасибо! Но оказывается в <a href="bla bla bla "delete" bla bla"> тоже встречаются ковычки. Можно ли в функцию изменить так, чтобы в адресе ссылки ковычки тоже убирались?

Добавлено через 00:34 сек.
WmLiM, так бы и я сделал....но мне нельзя все ковычки удалять, так как они используются в html тегах

13. Владислав (22.11.2011 / 13:24)
это уже синтаксическая ошибка...любой парсер выдаст ошибку, ибо есть стандарт и он должен соблюдатся...
тобиш парсер поймет код <a href="bla bla bla "delete" bla bla">
как открытый тег a атрибут тега href="bla bla bla " boolean атрибут delete и что то непонятное " bla bla"

14. Михаил (22.11.2011 / 14:24)
т.е убрать ковычки в адресе нельзя?

15. Владислав (22.11.2011 / 15:03)
почему, можно...но это уже будет не просто вырезание кавычек, а работа с исправлением синтаксиса, и в итоге получится вырезать лишь то что не понятно парсеру, тобишь " bla bla" и при желании не существующие в стандарте boolean атрибуты...если кавычки проэкранированны <a href="bla bla bla \"delete\" bla bla"> это не будет ошибкой синтаксиса и естественно не составит большего труда их вырезать

16. Михаил (22.11.2011 / 15:07)
Я плохо понимаю, как нужно составлять выражения....поэтому прошу помоши....можешь с этим помочь?

17. Владислав (26.11.2011 / 00:58)
еслиб время было и перспектива личного использования кода, то помог бы...))) долговатая работа может получитса

Добавлено через 01:42 сек.
есть вроде что то подобное для проверки валидности и исправления синтаксиса html кода...я гдет видел реализацию на php гугли)))

18. Дмитрий (26.11.2011 / 01:17)
Включай magic_quotes и вырезай свободно регуляркой E

19. Удаленный (26.11.2011 / 01:47)
<a href='bla bla bla "delete" bla bla'>

Добавлено через 08:42 сек.
ссылка с текстом откуда берется? если ссылка берется из базы то так же
$mytext = str_replace('"', '', $mytext);

20. Удаленный (26.11.2011 / 01:59)
а если ковычки нужны то
$mytext = str_replace('"', '\"', $mytext);

URL: https://visavi.net/topics/26721