组合两个php代码


Combining two php codes

所以现在我有两个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'];