3 PHP字符串问题


3 PHP String Questions

  1. 我让PHP在一个文本文件中搜索包,然后它打印回信息。我有一个工作脚本,但只有当用户正确键入包的名称并使用文件中项目的任何captailization时,它才能工作。如何让PHP对此不那么严格?比如,用户拼写有点错误,或者忘记了"-">
  2. 下面是我正在编写的另一个从文件中获取信息的脚本。我的目标是让剧本抓住第一行和第三行,而不是第二行。PACKAGES.TEXT的文件内容如下所示:
 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,'.'(;在url中放一个点。我不得不在某个地方开始这个字符串,去掉不在url中的部分,而点似乎是我唯一的选择,有没有办法去除它?

非常感谢您的任何输入,我理解这是一个很长的问题,所以请随时回答您想要的问题。我应该注意,php脚本是由javascript/html表单启动的,然后将POST传递给php。我相信这些都很管用。

谢谢。

您可以在比较中强制执行case:

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

或者做一些现实世界中的强制执行,比如如果人们输入了错误的数据,就让他们通过伐木机。如今,工作人员很多,而且通常都是一次性的,所以看到其他数据输入的人变成番茄酱应该会促进人们对工作场所的普遍满意度。

1(您可以使用正则表达式和preg_replace。正则表达式引用

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

希望这能回答一切。:(