【问题标题】:delete code in string with loop when read PDF with php使用php读取PDF时使用循环删除字符串中的代码
【发布时间】:2021-09-08 10:06:49
【问题描述】:

我正准备用library\Smalot\PdfParser\Parser(); in laravel 5.6 阅读 PDF 文件

我正在阅读我所有的 pdf 文件,我正在阅读我所有的内容。我正在从我的 PDF 中删除标题,并在数组中逐行插入。

这是它的数据:

    [0] =>  MARTIN CARRILLO MARIA ESMERALDA ALHAMBRA 10 958 54 38 93
    [1] => 1745591 ESPIGARES DIAS JOSE ANTONIO ALHAMBRA 11 958 54 33 32
    [2] => 1770062 GUTIERREZ TITOS JOSE MANUEL ALHAMBRA 12 958 54 04 10
    [3] => 1793228 MARTIN COBOS ANTONIO ALHAMBRA 18 958 54 33 28
    [4] => 1768807 GOMEZ CARRILLO JOSE ALHAMBRA 20 958 54 32 72
    [5] => 1830072 RODRIGUEZ RUANO BUENAVENTURA ALHAMBRA 21 958 54 35 86
    [6] => 1759534 GARCIA ARIAS MARIA ISABEL ALHAMBRA 22 958 54 07 87
    [7] => 1831938 RODRIGUEZ JIMENEZ MIGUEL ALHAMBRA 27 958 54 08 77
    [8] => 1722022 GUTIERREZ FERNANDEZ AMANDA HILDA ALHAMBRA 3 958 49 98 62
    [9] => 1746872 DIAZ FLORIAN DOLORES ALHAMBRA 30 958 54 33 99
    [10] => 1817587 PEREZ LASTRA SAUL ADAN ALHAMBRA 32 958 54 31 46
    [11] => 1724006 AMIGO MOLINA MARIA MATILDE ALHAMBRA 35 958 54 31 91
    [12] => 1745604 ESPIGARES GOMEZ JORGE ALHAMBRA 37 958 54 02 22
    [13] => 1745595 ESPIGARES ESPIGARES JOSE ALHAMBRA 40 958 54 31 83

我需要删除第一个号码,这是来自这个客户的代码。我这样做是为了删除代码,但总是在第一个元素中这样做。

这是我的代码,用于从所有字符串中删除我的代码...

// loop to get data line
for($i=0; $i<count($dataByLine); $i++){
   // delete code
   $numberCode = stripos($dataByLine[$i], " ");
   $codeClear = substr($text, 0, $numberCode);
   $dataByLine = str_replace($codeClear, "", $dataByLine);

   print_r($dataByLine);
}

这个print_r() 这是我的第一个内容数组。正如您在我的数组中看到的,第一个元素没有代码。但其余元素有代码。

我怎样才能从这个字符串中删除所有代码¿?

感谢您的帮助和阅读。对不起我的英语

更新

// loop to get data line
foreach($dataByLine as &$line){                        
   //$line = preg_replace('/^[\d]+/','',$line);
   $line = ltrim($line,"0123456789");

   array_push($dataList, $line);
}

print_r($dataList);

这是它的结果:

    [0] =>  1794707 MARTIN CARRILLO MARIA ESMERALDA ALHAMBRA 10 958 54 38 93
    [1] =>  ESPIGARES DIAS JOSE ANTONIO ALHAMBRA 11 958 54 33 32
    [2] =>  GUTIERREZ TITOS JOSE MANUEL ALHAMBRA 12 958 54 04 10
    [3] =>  MARTIN COBOS ANTONIO ALHAMBRA 18 958 54 33 28
    [4] =>  GOMEZ CARRILLO JOSE ALHAMBRA 20 958 54 32 72
    [5] =>  RODRIGUEZ RUANO BUENAVENTURA ALHAMBRA 21 958 54 35 86
    [6] =>  GARCIA ARIAS MARIA ISABEL ALHAMBRA 22 958 54 07 87
    [7] =>  RODRIGUEZ JIMENEZ MIGUEL ALHAMBRA 27 958 54 08 77
    [8] =>  GUTIERREZ FERNANDEZ AMANDA HILDA ALHAMBRA 3 958 49 98 62
    [9] =>  DIAZ FLORIAN DOLORES ALHAMBRA 30 958 54 33 99

【问题讨论】:

  • ltrim($string, "0123456789");?正则表达式替换 ^[\d]+''?
  • @pavel 感谢您的回复,我不太了解您的回复,因为我需要字符串中除代码之外的所有数字

标签: php laravel-5


【解决方案1】:

使用foreach() 以便您可以使用通过引用调用选项(对您的情况有用)

使用ltirm()

foreach($dataByLine as &$line){

    $line = ltrim($line,"0123456789");
    
    //Or you can do $line = preg_replace('/^[\d]+/','',$line);
}
print_r($dataByLine);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-20
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    相关资源
    最近更新 更多