Перейти к содержимому

Сервис обмена электронных валют


Требуется помощь в скрипте. Обрезать значение переменной, после .jpg

#1 Avin

Avin
  • Пользователь
  • 82 сообщений
  • Репутация: 1
0

Отправлено 07 Октябрь 2010 - 22:57

Привет, друзья.

Проблема такая.

Есть переменная $image, начинается она с правильных http:// но заканчивается не требуемым .jpg а еще парой-четверкой букв из БД.

Требуется скрипт, который будет обрезать переменную после .jpg и сохранять результат в переменную $image.

Например

есть "http://site.ru/kartinka.jpgright img]"

надо превратить в "http://site.ru/kartinka.jpg"

Буду очень благодарен за помощь.

Спасибо.

 

 

  • 0

#2 Avin

Avin
    Topic Starter
  • Пользователь
  • 82 сообщений
  • Репутация: 1

Отправлено 07 Октябрь 2010 - 23:15

Порылся в справочниках..

вот, может кому понадобится
$charsimage=strpos($image,".jpg");
$charsimage=$charsimage+4;
$obrezok = substr($image, 0, $charsimage);
$image=$obrezok;

  • 0

#3 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 08 Октябрь 2010 - 00:15

А пробел между путем и мусором всегда присутствует? Если да, то в пути пробела быть не может.
Просто использовать разбиение по пробелу.
Например так:

$image = explode(' ', $image); // Теперь в переменной $image[0] будет храниться путь картинки без мусора.

  • 0

#4 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 08 Октябрь 2010 - 07:59

Так понимаю, нужно отрубать все, что идет после первого вхождения ".jpg"?
Тогда, примерно, так:
<?php
$str ="http://site.ru/kartinka.jpgright img]";
$splitter = ".jpg";
$tok = explode($splitter, $str);
$res = $tok[0] . $splitter;
echo "<br />$res";
?>

  • 0

#5 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 08 Октябрь 2010 - 10:08

А вот тут подвох. А может расширение не только JPG?


  • 0

#6 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 08 Октябрь 2010 - 12:35

gaaarfild,
подвох не наблюдается: автор просил именно "Обрезать значение переменной, после .jpg" (см название топика).
На случай использования расширений на равне с ".jpg" так же ".JPG" и даже ".JpG" можно еще так поправить:

<?php
$str ="http://site.ru/kartinka.jpgright img]";
$splitter = ".jpg";
$tok = spliti($splitter, $str);
$image = $tok[0]. $splitter;
echo "<br />$image";
?>

Возможность, что кто-то нам подсунет файл с расширением вообще не похожим на ".jpg", конечно, желательно проверять, но об этом нас вроде не просили.
Ведь мы инфу берем из базы, куда непроверенные данные допускать нельзя. ;)
Хотя, конечно, можно и проверку на наличие правильного (.jpg) расширения добавить:
<?php
$str ="http://site.ru/kartinka.jpgright img]";
$splitter = ".jpg";
$tok = spliti($splitter, $str);
if ($tok[0] != $str) {
$image = $tok[0]. $splitter;
echo "<br />$image"; }
else echo "<br />incorrect file extension";
?>


  • 0

#7 Avin

Avin
    Topic Starter
  • Пользователь
  • 82 сообщений
  • Репутация: 1

Отправлено 08 Октябрь 2010 - 12:57

Спасибо большое, переделал свой вариант по последнему :)
  • 0

#8 marker

marker
  • Пользователь
  • 52 сообщений
  • Репутация: 0

Отправлено 22 Октябрь 2010 - 14:18

$url = 'http://site.ru/kartinka.jpgright img]';
preg_match("/(.+).jpg/i", $url, $url );
print_r($url);
// Array ( [0] => http://site.ru/kartinka.jpg [1] => http://site.ru/kartinka )
print $url[0];
// http://site.ru/kartinka.jpg

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru