所以现在我有两个完全按照它们应该工作的PHP代码
第一个从“img”标签的“src”中提取所有信息
<?php
$url="foo";
$html = file_get_contents($url);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$tags = $doc->getElementsByTagName('img');
foreach ($tags as $tag) {
echo $tag->getAttribute('src') . "<br>";
}
?>
第二个用于从两个其他字符串中拉出一串字符
<?php
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$fullstring = "this is my [tag]dog[/tag]";
$parsed = get_string_between($fullstring, "[tag]", "[/tag]");
echo $parsed; // (result = dog)
?>
我需要的是弄清楚如何使用第二个代码只拉一段“src”并替换它,只要还有“img”标签要处理
所以如果标签回来“/pics/foo.jpg”我可以删除“/ pics /”和“.jpg”,只留下“foo”
我希望我有所了解。感谢
答案 0 :(得分:0)
为什么要使用第二个代码?你可以通过爆炸全长串来实现它:
$exploded_tag = explode($tag,'\');
然后你需要字符串的最后一个元素(foo.jpg):
$last_part = end($exploded_tag);
然后你必须爆炸它并采取第一个元素(foo):
$exploded_lastpart = explode($last_part,'.');
$piece = $exploded_lastpart[0];
答案 1 :(得分:0)
您不需要第二个代码。 PHP中有一个名为pathinfo()的函数。所以你可以这样做:
$path_parts = pathinfo('/pics/foo.jpg');
echo $path_parts['filename'];