我很新的PHP和不能找出如何解决这个问题。 我有一个表格,并希望通过一些字符串,并把它与其他文件进行检查。 如果所有的字符串在同一行,但只要我把字符串的多条线路,它会失败这是工作的罚款。
我有下面的代码的PHP文件:
<?php
echo "<center><form method='post' enctype='multipart/form-data'>";
echo "<b></b><textarea name='texttofind' cols='80' rows='10'></textarea><br>";
echo "<input name='submit' type='submit' style='width:80px' value='Run' />";
echo "</form></center>";
$texttofind = $_POST['texttofind'];
if(get_magic_quotes_gpc()) {
$texttofind = stripslashes($texttofind);
}
$texttofind = html_entity_decode($texttofind);
$s = file_get_contents ("/home/xxxxx/public_html/abc.txt");
if (strpos ($s, $texttofind) === false) {
echo "not found";
}
else
echo "found";
?>
在的abc.txt,我有
dog
cat
rat
每当我打开PHP页面,并输入在短短的狗或猫,会被罚款,并显示'found'
的消息,但是当我输入多行像“狗<enter on keyboard>
猫”,并点击提交按钮,它将返回在'not found'
的消息。
什么是错的代码,还是要适应它,这样它就能搜索多个行?
先感谢您。
<?php
$values=explode("\n",$txttofind);
foreach($values as $value)
{
if (strpos ($s, $value) === false)
{
echo "$value : not found <br>";
}
else
{
echo "$value : found <br>";
}
}
?>
当您将上新的生产线的搜索词要添加不中你比较文件存在的字符。 例如,当你进入...
狗猫鼠
你实际上是发送一个字符串,它看起来像...
“狗\ NCAT \ nrat”
\ n表示字符13或标准的非窗口换行字符。 对此问题进行修复取决于你想要做什么。 您可以使用PHP的爆炸函数将输入字符串转换成一个数组,然后获得每个字位置搜索结果...
$inputs = explode("\n", $_POST['field']);
$positions = array();
foreach($inputs as $val)
$positions[] = str_pos($compareTo, $val);
现在$位置应该是str_pos的那个地方发现的各行的阵列。
如果你还在试图寻找该比较文件具有所有的文字,你根本不关心,如果它是一个新行或不是你可以简单地剥离出新行字符一起(也删除\ r刚需安全)
$inputs = str_replace("\n", "", $_POST['field']);
$inputs = str_replace("\r", "", $inputs);
现在的投入将是“dogcatrat”。 您可以使用str_replace函数的第二个参数设置一个空间,而不是\ n要回的空间分隔的列表。
$inputs = str_replace("\n", " ", $_POST['field']);
$inputs = str_replace("\r", "", $inputs);
是的,我们仍然忽略\ r一起(傻窗口)。 所有我建议就如何使用数组,爆炸和内爆和str_replace函数读了一样。 许多人会对此进行评论,并告诉你,str_replace函数不好,你应该学习正则表达式。 作为一个有经验的开发者,我觉得很少数情况下,正则表达式替换用简单的字符替换提供任何更好的功能,它会导致你学习的命令完全新的语言。 现在忽略那些谁告诉你使用正则表达式,但绝对学习正则表达式在不久的将来。 你会需要它最终只是没有这种性质的东西。
http://php.net/manual/en/language.types.array.php
http://php.net/manual/en/function.explode.php
http://php.net/manual/en/function.implode.php
http://php.net/manual/en/function.str-replace.php
http://php.net/manual/en/function.preg-match.php