php文本字符串

时间:2011-01-31 16:28:15

标签: php html regex

我有一个字符串:

...<a href="http://mple.com/nCCK8.png">...

由此我试图删除

"nCCK8.png" part

我尝试了substr,但这需要2个数字并且不起作用,因为它可以在字符串中的不同位置。它确实只在字符串中出现一次。

基本字符串在nCCK8.png部分之前始终具有mple.com/,并始终为“&gt;之后。

最简单的方法是什么?

3 个答案:

答案 0 :(得分:4)

[^\/]+?\.png

$_ = null;
if (preg_match('/([^\/]+?\.png)/i',$data,$_)){
  echo $_[1];
}

工作演示:http://www.ideone.com/3IkhB

答案 1 :(得分:2)

哇,所有这些其他答案都是如此复杂。

$tmp = explode('/', $string);
//if you actually WANT the "nCCK8.png" part
return substr($tmp[count($tmp) - 1], 0, -2);

//if you actually want the rest of it
$tmp = $array_pop($tmp);
return substr(implode('/', $tmp), 0, -2);

除非字符串比您发布的字符串长,并且包含其他斜杠,否则这应该有用。

答案 2 :(得分:0)

通过simplexml或DOM(请参阅this answer)获取href元素,然后使用parse-url获取实际文件,最后basename

<?php

$href = 'http://mple.com/nCCK8.png';
$url_parts = parse_url($href);
echo basename($url_parts['path']);

?>