所以现在我有两个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/"answers".jpg",只留下"foo"
我希望我说得有道理。感谢
为什么要使用第二个代码?你可以通过分解全字符串来完成:
$exploded_tag = explode($tag,''');
然后您需要字符串的最后一个元素(foo.jpg):
$last_part = end($exploded_tag);
然后你必须将其分解并获取第一个元素(foo):
$exploded_lastpart = explode($last_part,'.');
$piece = $exploded_lastpart[0];
您不需要第二个代码。PHP中有一个函数叫做pathinfo()。所以你可以做:
$path_parts = pathinfo('/pics/foo.jpg');
echo $path_parts['filename'];