Shadow

Рейтинг
115
Регистрация
10.08.2006
Dweep:
Решение Вашей задачи в обобщенном виде:

echo preg_replace('#<a((?!</a>).)*</a>#is', '', $string);

читается как - удалить из текста все ссылки и их анкоры.
Если не то, то сформулируйте правильно постановку задачи.

Вот еще дополнение, которые описывает уточнения вашей задачи:
$text = preg_replace('#<a((?!</a>).)*</a>#is', '', $string);
if (preg_match('#'.$template.'#i', $text)) {
echo $template." есть ВНЕ ссылки";
} else {
echo $template." не встречается ВНЕ ссылки";
}

удалять ссылки и анкоры не нужно, только поиск.

/<a.*?>(.*?)<\/a.*?>/ - это поиск ссылки, а тут задача обратная, поиск НЕссылки без модификации и удаления существующих ссылок.

т.е. в этой строке "<a href="http://site.ru">это ссылка</a> это не ссылка" ищется текст "это не ссылка" вне тега <a>. другие ссылки не должны быть модифицированы.

p.s.

если мы находим "это не ссылка" - мы делаем из него ссылку на другую страницу(preg_replace("reg_ex", "<a href=\"http://site.ru\">\\1</a>", $text)), но этот текст уже может быть внутри <a>, в этом случае мы его трогать не должны, иначе получится <a href="http://site.ru><a href="http://site.ru>это не ссылка</a></a>

в обобщённом виде задача описана в первом посте: найти в строке текст, который не находится внутри тега <a>. дан пример строки.

ведь таким образом /<a.*?>(.*?)<\/a.*?>/ можно найти, то, что находится внутри <a>? а тут задача обратная. что тут может быть не понятно?

invoice:
if (preg_match("/<\/a>.*?".$template.".*?/",$string)) {
....
}

Тоже не до конца понял условия :)
Может так?

нужно наоборот, чтобы текст не был внутри <a>

есть искомое значение ($template = "это не ссылка"), это значение не должно быть ссылкой

например строка:

$string = '<a href="http://site.ru">это ссылка</a> это не ссылка';

в ней нужно найти $template (т.е. текст "это не ссылка" и этот текст не должен являться анкором ссылки, т.е. он не должен быть внутри тега <a>)

p.s.

строка может быть такой:

$string = '<a href="http://site.ru">это ссылка</a> это не ссылка';

и такой:

$string2 = '<a href="http://site.ru">это ссылка</a> <a href="http://site.ru">это не ссылка</a> бла-бла';

текст "это не ссылка" должен быть найден в первой строке, но никак не во второй (т.к. во второй он является анкором ссылки)

stealthy:
Постановка задачи некорректна, т.к. вы не пишете чем блок текста ограничен у вас справа. Если у вас там конец строки, например, то:

$str =~ /<A [^>]+>(.*?)$/si;

поместит все что после вашей ссылки в $1 (Perl, но в ПХП все примерно то же самое). Если у вас справа не конец строки а что-то другое, то вместо доллара вы рисуете регекс на правую часть, а все что между левой и правой известными частями - будет ваш искомый блок.

пример строк:

$string = '<a href="http://site.ru">это ссылка</a> это не ссылка';

$string = '<a href="http://site.ru">это ссылка</a> это не ссылка ';

т.е. может быть и конец строки и не конец. искаться будет не весь текст, что не является ссылкой (анкором ссылки), а лишь некоторое совпадение с искомым значением (например $template = "это не ссылка")

>>$str =~ /<A [^>]+>(.*?)$/si;

думаю, что правильно записал, но работать не захотело. preg_replace("/<A [^>]+>(.*?)$/si/","123",$str);

а firstvds.ru и ispserver.ru - это одно и тоже (различия только в цене?)?

а есть тут пользователи довольные качеством ispserver? и если есть, на какой площадке размещаетесь?

Psycho:

Psycho добавил 04.03.2009 в 01:52

Здрасьте. А если я на карточку получил, то что? В этом случае налоги тоже уже уплочены (то бишь удержаны) (речь о наёмнике, а не о директоре, который этим должен распоряжаться, естественно).

да, если на и карточку налоги уже удержаны. НДФЛ удерживается всегда (если это не чёрный нал и официальное офомление), и у директора и у любого работника. если компания не заплатит налоги, скорее всего у директора вскоре пропадёт спокойный сон

jumbosic:
А когда выдает налом через кассу предприятия?
Кстати, а если зарплату дали людям, а деньги не перечислили, чего ждать?

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

p.s.

ну вы и размхались... (одним органом) прямо мегамозг.

лицензировать розницу с комплектухой не нужно.

регистрируете ИП, покупаете кассу, ставите её на учёт в налоговой и вперёд. (кассу потом периодически нужно будет показывать мастеру (там, где покупали), и платить за её обслуживание (диагностику)

чек можно бить в офисе (или дома) в день доставки

linux2005:
Igoron:

Не хотел писать негатива о Вашей компании, даже после того как вы недели 2 назад мне "уронили" репутацию на форуме, но сейчас решил что надо донести правду до народа.

а куда ушли, если не секрет?

Всего: 316