结合两个PHP代码

时间:2015-03-23 22:19:03

标签: php

所以现在我有两个完全按照它们应该工作的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”

我希望我有所了解。感谢

2 个答案:

答案 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'];