Удалить параметры, добавляемые в тег img - PullRequest
0 голосов
/ 17 мая 2019

У меня есть изображение ниже, и я хочу удалить все после jpg (? Resize = 495% 2C371 & ssl = 1)

https://i1.wp.com/atalantadigital.com/wp-content/uploads/2016/11/sampleimg.jpg?resize=495%2C371&ssl=1

Я пробовал:

preg_match_all('/<img[^>]+>/i', $images);

foreach ($images[0] as $image) {
 str_replace('?resize=495%2C371&ssl=1', ' ', $image);
}

Есть несколько изображений с этими добавляемыми параметрами, которые мне нужно исправить. Я открыт для решения php или javascript, заранее спасибо!

И я искал stackoverflow и не нашел ответа.

Ответы [ 4 ]

1 голос
/ 17 мая 2019

Javascript хорошо подходит для этой задачи, потому что мы можем легко выбрать все теги img, а также свойство src через img.src.

Это удалит все строки запроса (? и все, что после него) из img src URL-адресов на странице.

// searches for all images on page
let images = document.getElementsByTagName("img")
// for each image
for (let img of images) {
    // replace source query string with nothing
    img.src = img.src.replace(/\?.+$/, "")
}

Regex объяснение:

\? Совпадения буквально ?

.+$ Соответствует всему после него до конца ввода

Ниже показано, как работает регулярное выражение:

let img = new Image;
img.src = 'https://i1.wp.com/atalantadigital.com/wp-content/uploads/2016/11/sampleimg.jpg?resize=495%2C371&ssl=1';

img.src = img.src.replace(/\?.+$/, "");

console.log(img.src);
0 голосов
/ 17 мая 2019

Если вы используете плагин W3 Total Cache , этот параметр можно отключить, чтобы избежать создания строк запроса. Эту опцию можно найти, перейдя на вкладку Производительность плагина W3> Кэш браузера . В разделе «Общие» этой страницы есть опция под названием «Запретить кеширование объектов после изменения настроек» .

enter image description here

Этот параметр по умолчанию отменен, но если по какой-либо причине он включен, просто отмените его выбор и сохраните настройки, чтобы предотвратить создание строк запроса .

0 голосов
/ 17 мая 2019

Не уверен, правильно ли я понял, но из того, что я понимаю, у вас есть:

  • Строка, содержащая <img src="image_url.jpg/?resize=495%2C371&ssl=1"> один или несколько раз.

Еслидело обстоит именно так (почти так же, как и вы):

$images = "<img src='https://sampleimg.jpg?resize=495%2C371&ssl=1'><img src='https://sampleimg.jpg?resize=495%2C371&ssl=1'>";
preg_match_all('/img[^>]+>/i', $images, $matches);

foreach ($matches[0] as $image) {
    echo $image;    // "<img src="image_url.jpg/?resize=495%2C371&ssl=1">"
    $image = str_replace('?resize=495%2C371&ssl=1', ' ', $image);    
    echo $image;    // "<img src="image_url.jpg">"
}

Надеюсь, это поможет вам!

0 голосов
/ 17 мая 2019

если

var imgName = 'https://i1.wp.com/atalantadigital.com/wp-content/uploads/2016/11/sampleimg.jpg?resize=495%2C371&ssl=1'

, то вы можете получить то, что вы хотите,

imgName.substring(0, imgName.indexOf('?'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...