代码之家  ›  专栏  ›  技术社区  ›  Adam Ramadhan

替换字符串的最佳方法?

php
  •  0
  • Adam Ramadhan  · 技术社区  · 16 年前
    string '/home/adam/Projects/red/storage/22ff0bc0662bd323891844f6ed342cce2603490ec0_tumb_2.jpg' (length=85)
    

    我需要的只是 http://localhost/storage/22ff0bc0662bd323891844f6ed342cce2603490ec0_tumb_2.jpg

    最好的方法是什么?我是说用斯特伦?是否替换?子串?我有点困惑,最好的方法是什么?因为有很多方法可以做到这一点。

    编辑*没有新用户标签:|

        // get from database red/storage/22ff0bc0662bd323891844f6ed342cce2603490ec0_tumb_2.jpg
        $image_path = $this->data['products'][0]['image_small'];
        $exploded = end(explode('/', $image_path));
        $myurl = DOMAIN;
        $myfullurl = $myurl."/storage/".$exploded;
    

    /它起作用了!,但是让我们看看评论也许有更好的方法:)

    5 回复  |  直到 13 年前
        1
  •  1
  •   Sarfraz    16 年前

    以下是获取图像部分的方法:

    $str = '/home/adam/Projects/red/storag/22ff0bc0662bd323891844f6ed342cce2603490ec0_tumb_2.jpg';
    $exploded = end(explode('/', $str));
    echo $exploded;
    

    结果:

    22ff0bc0662bd323891844f6ed342cce2603490ec0_tumb_2.jpg
    

    现在,您可以将它与任何内容连接起来,例如:

    $new_str = 'http://localhost/storage/' . $exploded;
    echo $new_str;
    

    结果:

    http://localhost/storage/22ff0bc0662bd323891844f6ed342cce2603490ec0_tumb_2.jpg
    

    您很可能希望将图像路径与文档根目录连接起来,如下所示:

    $img_path = $_SERVER['DOCUMENT_ROOT'] . $exploded;
    

    我们的想法是用 explode 通过指定 / 作为定界符。这给了你数组,现在你使用 end 函数获取数组的结尾部分,该部分实际上是您的图像。

        2
  •  1
  •   Gumbo    16 年前

    如果路径前缀代表您的文档根路径,那么您可以这样做来删除它:

    $path = '/home/adam/Projects/red/storage/22ff0bc0662bd323891844f6ed342cce2603490ec0_tumb_2.jpg';
    $_SERVER['DOCUMENT_ROOT'] = '/home/adam/Projects/red/';
    if (substr($path, 0, strlen($_SERVER['DOCUMENT_ROOT'])) === $_SERVER['DOCUMENT_ROOT']) {
        $uriPath = substr($path, strlen(rtrim($_SERVER['DOCUMENT_ROOT'], '/')));
        echo $uriPath;
    }
    
        3
  •  0
  •   zneak    16 年前

    我建议你检查一下绳子是否包含 /home/adam/Projects/red ,如果是,则使用SUBSTR在零件后面获取零件,然后用胶水将其粘合 http://localost .

    $path = '/home/adam/Projects/red/storage/*snip*.jpg';
    $basePath = "/home/adam/Projects/red";
    if (strpos($path, $path) !== false)
        $url = 'http://localhost' . substr($path, strlen($basePath));
    
        4
  •  0
  •   Maerlyn    16 年前

    这个差不多是最简单的

    str_replace(
      "/home/adam/Projects/red", 
      "http://localhost", 
      "/home/adam/Projects/red/storage/22ff0bc0662bd323891844f6ed342cce2603490ec0_tumb_2.jpg"
    );
    
        5
  •  0
  •   Alex Pliutau    16 年前
    $string = '/home/adam/Projects/red/storage/22ff0bc0662bd323891844f6ed342cce2603490ec0_tumb_2.jpg';
    str_replace('/home/adam/Projects/red', 'http://localost', $string)
    
    推荐文章