2016-02-12 3 views
1

Я хочу изменить все значения тега href перед отправкой их в базу данных.Измените все значения href с помощью php

Допустим, у меня есть абзац с некоторыми якорь-тегами в нем, и я хочу изменить значения всех якорных тегов.

Моя цель состоит в том, чтобы base64 кодирования URLs и затем добавить префикс к URLS , если веб-адресов является

http://google.com 

Перед подачей в хотите изменить его http://exmaple.com/visit/base64encodeedurl

+0

не могли бы вы разместить некоторые свои коды? – Drudge

+0

@ Drudge я еще не работал над этим. но я нашел код для замены всех URL-адресов '$ newurl =" http://myotherexample.com "; $ pattern = "/ (? <= Href = (\" | ')) [^ \ "'] + (? = (\" | '))/"; $ newstring = preg_replace ($ pattern, $ newurl , $ строка); ' – opncart

ответ

1

Вы можете использовать preg_replace_callback функцию и base64_encode функция

$string = 'Your string to save with http://goo.gl urls ...'; 
$fixedString = preg_replace_callback(
    '#[[email protected]:%_\+.~\#?&//=]{2,256}\.[a-z]{2,18}\b(\/[[email protected]:%_\+.~\#?&//=]*)?#si', 
    function($matches) { 
     return 'http://exmaple.com/visit/' . base64_encode($matches[0]); 
    }, 
    $string 
); 

Здесь живой пример https://3v4l.org/TUktY

+0

я получаю эту ошибку ' PHP Catchable фатальной ошибки: Объект класса закрытия не может быть преобразован в строку в' – opncart

+0

жаль, что я написал 'preg_replace' вместо' preg_replace_callback' – 0x13a

+0

Thanks своей работы :) – opncart

Смежные вопросы