【问题标题】:Open a text file, search for integer and then display text after a character打开一个文本文件,搜索整数,然后在字符后显示文本
【发布时间】:2020-08-11 23:46:03
【问题描述】:

我有一个包含数字和网址的多行文本文件

59=folder/image.png
63=folder/image2.png
etc...

我想在文件中搜索“59”,然后在 img src 中回显 url

如果文本文件不包含“59”,我想回显一个替代图像

有问题,因为png文件名也是整数

正如下面一位用户所指出的,我已尝试使用没有意义的代码进行此操作。

【问题讨论】:

    标签: php


    【解决方案1】:

    你说你想“在文件中搜索 59”,但实际上你肯定只想搜索行首。这将解决文件名中包含数字的问题。

    到目前为止,您的代码没有多大意义,它根本没有在文本中的任何位置搜索 59。

    这将正确地完成工作:

    $search_ID = "59"; //Note: this is now a string, so we can check its length, and match that in the file
    $data = file_get_contents('text_file.txt'); //$contents was redundant, just start by calling it $data
    $result = "";
    
    if (substr($data, 0, strlen($search_ID)) == $search_ID)
    {
        $result = substr($data, strpos($data, "=")+1); 
    }
    else
    {
        $result = "something else"; //replace this with whatever alternative output you need
    }
    

    演示:http://sandbox.onlinephpfunctions.com/code/fb413cd66670001fe6e665b9e10b55285d1440b1

    附:此代码假定文件只有一行。从您的问题中不太清楚,它是否有可能具有相同格式的多行。

    【讨论】:

    • 谢谢。 txt 文件将包含多行。每行将包含不同的数字和 URL。
    • 好的。在原始问题中提及(或显示多行示例)是明智的,因为它改变了所需代码的性质。您需要逐行读取文件并分别处理每一行。您应该已经能够在网上找到如何使用 PHP 逐行读取文本文件,所以我现在将其留给您。如果您遇到困难,请更新您的问题。
    • 与此同时,这个答案解决了最初提出的问题,所以如果您对此感到满意,请记住将其标记为“已接受”,以利于未来的读者(请参阅@987654322 @)。
    • 再次感谢您。我已编辑问题以包含多行。我一直在尝试使用 while 循环和 fget,但页面超时。
    • 谢谢。还请使用您尝试过的导致问题的代码更新问题。附:你的测试文件有多大——到底有多少行?
    猜你喜欢
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    相关资源
    最近更新 更多