【问题标题】:Php get string after x charactersphp在x个字符后获取字符串
【发布时间】:2017-11-15 01:56:16
【问题描述】:

我有一个数组,它返回如下路径:

C:\xampp\htdocs\app\storage\app/img/img24.png"  


C:\xampp\htdocs\app\storage\app/img/img3.png"

我需要从这些部分中提取数字,在本例中为 24 和 3,并将它们保存到另一个数组中。到目前为止,我提取的长度是这样的:

$pathLen = strlen(storage_path('app/img/'));

返回给我 45,但我不知道如何继续

【问题讨论】:

  • 为什么在一个与php相关的问题中标记了laravel、mysql?
  • 你可以使用 substr
  • 它是从另一个我想发布的问题中缓存的,我更改了它sry
  • 你试过 preg_match 吗?
  • 您必须找到始终存在于您要查找的内容之前的位置(例如/img/img),然后使用子字符串函数。如果你事先不知道这个数字可能有多长,就会有问题。您可以考虑使用简单的正则表达式,而不是使用普通的旧字符串函数,这样可以轻松执行此任务。

标签: php string path


【解决方案1】:
preg_match('~img/img(.*?).png~', $arrayinput, $output);

print_r($output[1]);

【讨论】:

    【解决方案2】:

    您可以从最后一个/ 中获取 substr,然后使用 intval() 获取 int。 Live demo.

    <?php
    $string = "C:\xampp\htdocs\app\storage\app/img/img24.png";
    echo intval(substr($string, strrpos($string, '/') +4));
    

    【讨论】:

    • 这个答案很好,因为它不依赖于路径(可能会改变)。
    • 如何创建一个条件来检查数字是否为 0 if ist 0 将其更改为空字符串
    • $value = intval(substr($string, strrpos($string, '/') +4)); $value = $value == 0 ? '' : $value;
    猜你喜欢
    • 1970-01-01
    • 2011-07-09
    • 2021-05-10
    • 2012-05-19
    • 1970-01-01
    • 2021-05-17
    • 2011-02-10
    • 1970-01-01
    相关资源
    最近更新 更多