$image = 'http://example.com/thisisimage.gif';
$filename = substr($image, strrpos($image, '/') + 1);
echo '<br>';
echo $filename;
echo '<br>';
echo preg_replace('/^[^\/]+/', 'http://mydomain.com', $image);
echo '<br>';
$ image是字符串;
$ filename是图像名称(在上面的示例中,它返回'thisisimage.gif')
现在我想用'http://mydomain.com'替换$ filename之前的所有代码,我的代码在上面,但它不起作用。
谢谢!
答案 0 :(得分:2)
$foo = explode($filename, $image);
echo $foo[0];
爆炸“拆分”一个给定的参数(在你的情况下为$ filename)。它返回一个数组,其中键被分割在您给出的字符串上。
如果您只想更改网址。你使用str_replace
$foo = str_replace("http://example.com", "http://localhost", $image);
//This will change "http://example.com" to "http://localhost", like a text replace in notepad.
在你的情况下:
$image = 'http://example.com/thisisimage.gif';
$filename = substr($image, strrpos($image, '/') + 1);
$foo = explode($filename, $image);
echo '<br>';
echo $filename;
echo '<br>';
echo str_replace($foo[0], "http://yourdomain.com/", $url);
echo '<br>';
答案 1 :(得分:2)
还有另一种方法,你不需要正则表达式:
简称:
$image = 'http://example.com/thisisimage.gif';
$url = "http://mydomain.com/".basename($image);
说明:
如果你只想要没有网址或目录路径的文件名,basename()
就是你的朋友;
$image = 'http://example.com/thisisimage.gif';
$filename = basename($image);
输出:thisisimage.gif
然后你可以添加你想要的任何域名:
$mydomain = "http://mydomain.com/";
$url = $mydomain.$filename;
答案 2 :(得分:1)
试试这个:
$image = 'http://example.com/thisisimage.gif';
echo preg_replace('/^http:\/\/.*\.com/', 'http://mydomain.com',$image);
答案 3 :(得分:1)
这里的其他人已经给出了关于如何做到这一点的好答案 - 正则表达式有其优点但也有缺点 - 它的速度较慢,分别需要更多的资源,对于简单的事情,我会建议你使用爆炸方法,但是在为正则表达式函数说话时,你也可以试试这个,而不是你的preg_replace:
echo preg_replace('#(?:.*?)/([^/]+)$#i', 'http://localhost/$1', $image);
PHP中似乎不支持可变长度的positve lookbehind。
答案 4 :(得分:1)
这应该只是起作用:
$image = 'http://example.com/thisisimage.gif';
$filename = substr($image, strrpos($image, '/') + 1);
echo '<br>';
echo $filename;
echo '<br>';
echo 'http://mydomain.com/'.$filename;
echo '<br>';
答案 5 :(得分:1)
如果您只想在文件名之前添加自己的域名,请尝试以下方法:
$filename = array_pop(explode("/", $image));
echo "http://mydomain.com/" . $filename;
如果您只想更换域名,请尝试以下方法:
echo preg_replace('/.*?[^\/]\/(?!\/)/', 'http://mydomain.com/', $image);