preg_replace ссылка с http или https без тега img и якоря - PullRequest
0 голосов
/ 21 октября 2019

Мне нужна помощь с моим текущим кодом, так как мне сложно создать тег привязки. Мне нужно заменить URL-адрес тегом привязки, когда на странице есть строка http или https, а теги img и anchor отсутствуют.

Если у меня есть тег img и anchor, я хочу игнорировать его и делатьне добавляйте ничего, если у меня нет тега img и якоря, как если бы у меня была строка http или https, чтобы я мог использовать его для создания тега якоря с URL.

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

$html = "<a id=":1cz" class="aQy aZr e aZI" href="https://mail.google.com/mail/u/0?ui=2&amp;ik=1ca3fe2372&amp;attid=0.1&amp;permmsgid=msg-a:r-103572840791832398&amp;th=16a655dceeae5ad6&amp;view=att&amp;disp=safe&amp;realattid=f_jv1babdd0" target="_blank" rel="noreferrer"></a>

image

http://clicks.example.com/y/ct/?l=KxJU8&m=3ZDqmfOWi_DwlcG&b=tXXwls_rBd6eoiu8B0TqzQ";

$email_body = $html;
$message = preg_replace('/(?<!src=[\'"])(?<!a href=[\'"])(((f|ht){1}tps?:\/\/)[-a-zA-Z0-9@:%_\+.~#?&\/\/=]+)/i', '<a href="\\1" target="_blank">\\1</a>', $email_body);
$mail->htmlText = $message;
$mail->mailtype = 'html';

Это создаст тег привязки, когда у меня будет тег привязки. Он будет работать только тогда, когда у меня нет тега img, поскольку он создаст тег привязки с URL-адресом. Я попытался удалить (?<!a href=[\'"]), но это не имело никакого значения, так как тег привязки все равно будет отображаться, поэтому я не знаю, что делать.

Вот, например, что происходит, когда я используюэто с моим кодом:

<a id=":1cz" target="_blank" class="aQy aZr e aZI" href="<a href=" https:="" mail.google.com="" mail="" u="" 0?ui="2&amp;&quot;">https://mail.google.com/mail/u/0?ui=2&amp;</a>
";ik=1ca3fe2372&amp;attid=0.1&amp;permmsgid=msg-a:r-103572840791832398&amp;th=16a655dceeae5ad6&amp;view=att&amp;disp=safe&amp;realattid=f_jv1babdd0" tabindex="0"&gt;

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

<a href="http://clicks.example.com/y/ct/?l=KxJU8&m=3ZDqmfOWi_DwlcG&b=tXXwls_rBd6eoiu8B0TqzQ" target="_blank">http://clicks.example.com/y/ct/?l=KxJU8&m=3ZDqmfOWi_DwlcG&b=tXXwls_rBd6eoiu8B0TqzQ</a>

Можете ли вы показать мне пример того, как я мог бы использовать функцию preg_replace для замены наURL без тега img и якоря, чтобы я мог видеть гиперссылку на своей веб-странице?

Спасибо.

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