Проверка PHP, если у меня есть строки http или https для замены с помощью Regex - PullRequest
0 голосов
/ 18 октября 2019

Я работаю над своим сценарием PHP, чтобы проверить, что если у меня есть строки http или https, чтобы я мог заменить их на теги атрибутов с помощью функции preg_replace.

Когда я пытаюсь это сделать:

$message = preg_replace("/<a(.*?)>/i", "<a$1 target=\"_blank\">", $email_body);

Это заменит только некоторые строки, но не на всех.

<a href="https://example1.io/" target="_blank">https://example1.io</a>
<a href="http://example2.in/71syplfpibkhttmf2wt/3baeceb6-ec04-46fe-a56d-bf16debfabd2" target="_blank">my site</a>
<a href="https://example3.com/61HBCSN/Z37BSH/" target="_blank" style="color: #15c; text-decoration: underline;">https://example3.com/61HBCSN/Z37BSH/</a>

Вот мои строки, которые идут с http и https:

<font color="red"> https://www.example3.com/61HBCSN/2C697NH/</font>
<font=“red”>http://www.example3.com/61HBCSN/29BWJG2/<br></font=“red”>
https://example1.io/
http://example2.in/71syplfpibkhttmf2wt/3baeceb6-ec04-46fe-a56d-bf16debfabd2
https://example3.com/61HBCSN/Z37BSH/

Вот полныйcode:

if (strpos($mail->htmlText, 'http') !== false || (strpos($mail->htmlText, 'https') !== false))
{
    $email_body = $mail->htmlText;
    $message = preg_replace("/<a(.*?)>/i", "<a$1 target=\"_blank\">", $email_body);
    $mail->htmlText = $message;
    $mail->mailtype = 'html';
}

Вот чего я хочу достичь:

<a href="https://example1.io/" target="_blank">https://example1.io</a>
<a href="http://example2.in/71syplfpibkhttmf2wt/3baeceb6-ec04-46fe-a56d-bf16debfabd2" target="_blank">my site</a>
<a href="https://example3.com/61HBCSN/Z37BSH/" target="_blank" style="color: #15c; text-decoration: underline;">https://example3.com/61HBCSN/Z37BSH/</a>
<font color="red"><a href="https://www.example3.com/61HBCSN/2C697NH" target="_blank" style="color: #15c; text-decoration: underline;">https://www.example3.com/61HBCSN/2C697NH</a></font>
<font color="red"><a href="http://www.example3.com/61HBCSN/29BWJG2" target="_blank" style="color: #15c; text-decoration: underline;">http://www.example3.com/61HBCSN/29BWJG2</a></font>

Итак, я пытаюсь проверить, что если у меня есть строки http или https беззатем я хочу добавить теги атрибута с помощью функции preg_replace.

Не могли бы вы показать мне пример того, как я могу использовать регулярное выражение для проверки строк между http или https, если у меня нет атрибута? Затем я могу добавить теги атрибутов в http и https?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...