如何在PHP中清理来自数据库的URL?

时间:2015-01-22 11:00:55

标签: php image url

我来自数据库的网址如下。

http://34.158.85.145/file/pic/user/2014/11/d424bc46529b9f8d764b6b485e6c8716%s.png

现在,如果仔细查看图像名称,会在其中插入一些特殊符号。我想避免它,所以我为它编写了以下逻辑,但它没有用。

$user_image = Slug('http://34.158.85.145/file/pic/user/2014/11/d424bc46529b9f8d764b6b485e6c8716%s.png');

function Slug($string) {
    return strtolower(trim(preg_replace('~[^0-9a-z]+~i', '-', html_entity_decode(preg_replace('~&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);~i', '$1', htmlentities($string, ENT_QUOTES, 'UTF-8')), ENT_QUOTES, 'UTF-8')), '-'));
  }

有人可以帮我用PHP清理这个图像名称吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您只想从URL的文件名中删除所有特殊字符(除了'。'),您可以使用以下内容:

<?php
$url = 'http://34.158.85.145/file/pic/user/2014/11/d424bc46529b9f8d764b6b485e6c8716%s.png';
$exp= explode('/', $url);
$image = array_pop($exp);
$replace = preg_replace('/[^A-Za-z0-9.\-]/', '', $image);
$url = str_replace($image, $replace, $url);
var_dump($url);