3 PHP字符串问题

时间:2011-11-23 18:58:59

标签: php

  1. 我在文本文件中搜索PHP,然后打印回信息。我有一个工作脚本,但只有当用户正确输入包名称并使用该项目在文件中的任何上限时它才有效。如何让PHP对此不那么严格?比如,用户拼写错误的单词,或忘记“ - ”。
  2. 下面是我正在努力从文件中获取信息的另一个脚本。我的目标是让脚本抓住第一行和第三行,而不是第二行。 PACKAGES.TXT的文件内容如下所示:
  3.  PACKAGE NAME:  asdf
     PACKAGE SIZE: 8k
     PACKAGE LOCATION:  www.asdf.com/asdf-package.html
    

    目前,我正在使用它收集这些信息,但它根本不适用于第一行和第三行:

    $data4 = file('www.asdf.com/PACKAGES.TXT'); //the text file above
    
    for ($i = 0, $found = FALSE; isset($data4[$i]); $i++) { //$i is the counter.
    /*$package2 consists of the word searched and a constant string: "PACKAGE NAME:  */
    if (trim($data4[$i]) === $package2) { 
    $fdas = trim($data3[++$i]); //$fdas is going to hold the url info
       echo ($find2); //$find2 is the original package name.
       echo("<br/>"); //two breaks
       echo("<br/>");
    //the lines below handle making a link from a URL and custom package location
    $finout = strstr($fdas, '.'); //
    $secondfinout = "http://www.asdf.com/".$finout;
    echo("<a href='$secondfinout'>$secondfinout</a>");
    $found = TRUE;
    break; 
    }
    }
    

    第二步是我现在写的脚本。它不起作用。我确实有更简单的那些遵循相同的概念工作,唯一的问题是strstr($ fdas,'。');在网址中加一个点。我不得不在某个地方启动字符串,并省略了不属于网址的部分,点似乎是我唯一的选择,有没有办法可以删除它?

    非常感谢您的任何意见,我理解这是一个冗长的问题,所以请随时回答您的意见。我应该注意,php脚本是由javascript / html表单启动的,然后POST传递给PHP。我相信这一切都正常。

    谢谢。

2 个答案:

答案 0 :(得分:3)

您可以对比较强制执行案例:

if (strtolower(trim($data4[$i])) === strtolower($package2)) { 

或做一些现实世界的执法,比如如果他们输入坏的数据,就会通过woodchipper运行人员。这些天工人很多,而且一般都是一次性的,所以看到数据录入的人变成番茄酱,应该会提升工作场所满意度。

答案 1 :(得分:1)

1)您可以使用正则表达式和preg_replaceRegular Expression References

2)我想如果您想要txt文档的第一行和第三行,可以使用以下代码:

$data4 = file('www.asdf.com/PACKAGES.TXT');
$firstLine = $data4[0]; //PACKAGE NAME:  asdf
$thirdLine = $data4[2]; //PACKAGE LOCATION:  www.asdf.com/asdf-package.html

3)如果你想从第三行获取URL,你可以找到preg_match的正斜杠:

preg_match('/\/(\S+)/',$thirdLine,$finout);
$secondfinout = "http://www.asdf.com/".$finout[1]; //take the second value in the newly created $finout array, which is asdf-package.html

希望能回答一切。 :)