На моем сайте есть кое-какие ссылки на главной, которые не желательно вот так в открытом виде держать. Те ссылки, которые начинаются на http://mysite.ru/file.php?id= необходимо зашифровать (они открываются в новом окне, где с помощью метода get я получу их в зашифрованном виде и расшифрую с помощью base64 decode).
Тут получается, надо сделать "маской" - то есть если ссылка начинается с http://mysite.ru/file.php?id=, то шифровать надо то,что после id= и до двойной кавычки.
допустим, содержимое занесено в $a
тогда что-то вроде:
$find="http://mysite.ru/file.php?id=";
if(strpos ($a, $find)) {
$a = str_replace("что на что менять используя base64 decode???", $a); }
вот как правильно замену сделать? То что после id= и до знака "
Спустя 1 час, 5 минут, 58 секунд (2.08.2011 - 16:23) killer8080 написал(а):
mav1
без регулярок не обойтись ;)
без регулярок не обойтись ;)
$t = '
<a href="http://mysite.ru/file.php?id=123&p=56&t=88">link</a>
text
text
<a href="http://mysite.ru/file.php?id=456&d=hh&h=66">link2</a>
';
$t = preg_replace_callback(
'#(href="http\://mysite\.ru/file\.php\?id\=)([^"]+)"#ius',
create_function('$m', 'return $m[1].base64_encode($m[2]).\'"\';'),
$t
);
echo '<pre>',htmlspecialchars($t), '</pre>';
Спустя 21 час, 53 минуты, 19 секунд (3.08.2011 - 14:16) mav1 написал(а):
вот блин, всё отлично, но как бы от PRE избавиться, дизайн весь летит фтопку из за этого...
спасибо что откликнулись!!!
спасибо что откликнулись!!!
Спустя 14 минут, 27 секунд (3.08.2011 - 14:30) waldicom написал(а):
<pre> - это же просто для тебя. Можно убрать

Спустя 26 секунд (3.08.2011 - 14:31) mav1 написал(а):
дада, все сделал, все работает, спасибо!!!!!
Спустя 16 минут, 7 секунд (3.08.2011 - 14:47) killer8080 написал(а):
Цитата (mav1 @ 3.08.2011 - 14:16) |
вот блин, всё отлично, но как бы от PRE избавиться, дизайн весь летит фтопку из за этого... спасибо что откликнулись!!! |
htmlspecialchars() тоже убери

это только для удобства просмотра примера.
Спустя 2 минуты, 38 секунд (3.08.2011 - 14:50) mav1 написал(а):
killer8080 ,спасибо вам за помощь, а как будет выглядеть строка кода если мне надо заменить в тексте то что начинатся со слова SLOVO и до кавычек ?
чтобы SLOVOjdlijrgkjk47y...t7cyt7cy78cty378 стало в шифре?
text
text
bla bla bla SLOVOjdlijrgkjk47y...t7cyt7cy78cty378"
чтобы SLOVOjdlijrgkjk47y...t7cyt7cy78cty378 стало в шифре?
Спустя 3 минуты, 47 секунд (3.08.2011 - 14:53) killer8080 написал(а):
да тут простая регулярка ;)
'#SLOVO[^"\s]+"#'
Спустя 8 минут, 13 секунд (3.08.2011 - 15:02) mav1 написал(а):
$t = preg_replace_callback(
'#SLOVO[^"\s]+"#',
create_function('$m', 'return $m[1].base64_encode($m[2]).\'"\';'),
$t
);
echo $t;
что то не хочет работать) где косячок? )
Спустя 8 минут, 17 секунд (3.08.2011 - 15:10) killer8080 написал(а):
mav1
а откуда возьмётся $m[1] и $m[2]? :)
в реге же скобок нет ;)
что нужно кодировать
или
а откуда возьмётся $m[1] и $m[2]? :)
в реге же скобок нет ;)
что нужно кодировать
'SLOVOjdlijrgkjk47y...t7cyt7cy78cty378'
или
'jdlijrgkjk47y...t7cyt7cy78cty378'
Спустя 9 минут, 15 секунд (3.08.2011 - 15:19) mav1 написал(а):
скобок нет, верно, я синтаксис не знаю, сорри((
SLOVOjdlijrgkjk47y...t7cyt7cy78cty378- это кодировать
Спустя 3 минуты, 27 секунд (3.08.2011 - 15:23) killer8080 написал(а):
$t = '
text
text
bla bla bla SLOVOjdlijrgkjk47y...t7cyt7cy78cty378"
';
$t = preg_replace_callback(
'#SLOVO[^"\s]+"#',
create_function('$m', 'return base64_encode($m[0]);'),
$t
);
echo $t;
PS там последняя кавычка то же захватывается, если не нужно то
$t = '
text
text
bla bla bla SLOVOjdlijrgkjk47y...t7cyt7cy78cty378"
';
$t = preg_replace_callback(
'#(SLOVO[^"\s]+)"#',
create_function('$m', 'return base64_encode($m[1]);'),
$t
);
echo $t;
Спустя 40 минут, 38 секунд (3.08.2011 - 16:03) mav1 написал(а):
вот не знаю, и первый и второй варианты кода - и там и там кавычка съедается(
а мне надо чтобы кавычка оставалась кавычкой)
а мне надо чтобы кавычка оставалась кавычкой)
Спустя 3 минуты, 45 секунд (3.08.2011 - 16:07) killer8080 написал(а):
она съедается но не шифруется, если её нужно сохранить, то
$t = preg_replace_callback(или
'#(SLOVO[^"\s]+)(")#',
create_function('$m', 'return base64_encode($m[1]).$m[2];'),
$t
);
$t = preg_replace_callback(
'#(SLOVO[^"\s]+)"#',
create_function('$m', 'return base64_encode($m[1]).\'"\';'),
$t
);
Спустя 7 минут, 8 секунд (3.08.2011 - 16:14) mav1 написал(а):
вроде добили)) вымучили)) работает)