Измените значение ссылки 'href', используя PHP и DOM - PullRequest
0 голосов
/ 21 октября 2018

Я хотел бы изменить все ссылки в переменной HTML на случайные.Вот мой код, но что-то препятствует изменению ссылок:

<?php
$jobTemplateDetails = '<a href="https://www2.google.com">Click!</a>
<a href="https://www3.google.com">Click!</a>';
////////////////////// CHANGE ALL LINKS
$linkDom = new DOMDocument;

@$linkDom->loadHTML($jobTemplateDetails);

$allLinks = $linkDom->getElementsByTagName('a');

foreach ($allLinks as $rawLink) {

    $longLink = $rawLink->getAttribute('href');
        $str = 'abcdefghijklmnopqrstuvwxyz';
        $randomChar1 = $str[mt_rand(0, strlen($str)-1)];
        $randomChar2 = $str[mt_rand(0, strlen($str)-1)];
        $randomChar3 = $str[mt_rand(0, strlen($str)-1)];
        $randomChar4 = $str[mt_rand(0, strlen($str)-1)];
        $shortURL = mt_rand(1, 9).$randomChar1.mt_rand(1, 9).$randomChar2.$randomChar3.$randomChar4;
        $rawLink->setAttribute('href', $shortURL);
}
echo $jobTemplateDetails;

1 Ответ

0 голосов
/ 21 октября 2018

Когда вы echo $jobTemplateDetails; показываете только самую первую входную строку, а не DomDocument, которым вы манипулируете.
Измените его на

echo $linkDom->saveHTML();

///OUTPUT:
<a href="7y2rpn">Click!</a>
<a href="3b5qtr">Click!</a>

скрипку: https://3v4l.org/KuCic
и документы

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