【问题标题】:Trim the text "th_" from variable and save the result to a new variable?从变量中修剪文本“th_”并将结果保存到新变量?
【发布时间】:2013-04-02 15:40:14
【问题描述】:

我的问题既快速又简单。

我正在创建一个画廊,我正在使用 glob 从一个目录中获取我的全尺寸图像和缩略图。

我的缩略图路径有一个变量:images/photo-strip/thumb/*.jpg

我正在使用 basename() 将路径 images/photo-strip/thumb/*.jpg 减少到 *.jpg 并将其保存到 $filename

然后我像这样重新构建完整尺寸图像的路径:$pathToFull = 'images/photo-strip/' . $filename;

我在 thumb 文件夹中的文件是这样命名的:th_*.jpg,完整尺寸的图像是*.jpg(完全匹配但没有 th)。

然后我有一个回显,将 HTML 放入 <img> 标记中的缩略图路径和 <a> 标记中的完整路径。

问题是我的全尺寸图像的路径是错误的,因为图像文件名中的 th_。

有没有办法从$filename 中修剪th_ 并将其保存为$full_filename 之类的内容,以便我可以更正全尺寸图像的文件名?

我可以轻松地重命名缩略图图像以排除 th_,这将解决我的问题,但我更愿意保留文件名。

编辑:

我正在使用 BCMCFC 的方法,因为它去掉了我不需要的两行代码。

感谢您的快速答复!

【问题讨论】:

    标签: php


    【解决方案1】:

    听起来您可以将过程简化如下,而不是重建路径:

    $img = str_replace('images/photo-strip/thumb/th_', 'images/photo-strip/', $originalImage);
    

    或者只是:

    $img = str_replace('thumb/th_', '', $originalImage);
    

    【讨论】:

    • 这非常好,它允许我跳过使用 basename 来查找文件名,并允许我删除我已经“重建”文件路径的行。
    【解决方案2】:

    只需使用str_replace函数将“th_”替换为空字符串

    【讨论】:

    • 这是我最终使用的,但在某种程度上,如 bcmcfc 的回答所示。 +1,谢谢!
    【解决方案3】:

    看看$full_filename = substr($filename,3);

    【讨论】:

    • 很好的答案,它有效,但我更喜欢 bcmcfc 的答案。它允许我删掉两行代码。不过谢谢!!
    【解决方案4】:

    这将是最优雅的方式:-

    $filename = 'th_myimage.jpg';
    $pathToFull = 'images/photo-strip/' . preg_replace('/^(th_)?/', '', $filename);
    // $filename would be 'myimage.jpg'
    

    此正则表达式模式将替换第一次出现的th_,并且如果它位于字符串的开头。

    【讨论】:

    • +1 以获得非常好的答案。我正在使用 bcmcfc 的答案,因为它减少了实现我想要的代码量。如果不是因为不担心文件名后面出现 th_ 的其他情况,我会使用它。我的命名约定非常具体,因此无需担心会发生这种情况。谢谢!
    【解决方案5】:

    这有一个批量重命名目录中文件的实现。

    Bulk Rename Files in a Folder - PHP

    【讨论】:

      【解决方案6】:

      您可以使用“explode”将“_”字符上的字符串拆分为一个数组,然后获取数组的后一个元素。

      $myarray = explode("_", $filename);
      if(count($myarray)>1){
          $full_filename = $myarray[1];
      }
      

      【讨论】:

        猜你喜欢
        • 2018-12-02
        • 2014-05-25
        • 1970-01-01
        • 1970-01-01
        • 2014-04-16
        • 2020-08-17
        • 2013-02-15
        • 1970-01-01
        • 2018-06-15
        相关资源
        最近更新 更多