Heim >Backend-Entwicklung >PHP-Tutorial >alert如何显示function方法返回的结果

alert如何显示function方法返回的结果

WBOY
WBOYOriginal
2016-06-23 14:02:022100Durchsuche

php;alert;function

如下代码:
function check($out) {
  $file_handle = fopen($out, 'r');
  while (!feof($file_handle)) {
    $line = fgets($file_handle);
    if (substr($line, 0, 6) == "#ERROR") {
      return substr($line, 8);
    }
  }
  fclose($file_handle);
  return "";
}

$out = "output/out.txt";
$error = check($out);
if ($error != "") {
  echo "<script>alert('$error');</script>";
  exit;
}
?>

此时无法弹出alert对话框。。。
但如果把check方法的return改为 return "abc",就能够弹出alert对话框了

我需要alert弹出的内容是从文件中获得的,请问如何修改?

回复讨论(解决方案)

$error在php打印是个什么东东看下不就知道了嘛

$error是从输出文件中捕获错误信息,然后通过对话框的形式显示给用户看

这段程序里能够正确获得$error的值,但是alert却无法弹出对话框

我这边帮你调试了是没问题的 可以正常弹出提示

我这边就是出不来……

function里的返回值是类似于substr吗?如果是直接返回字符串的话,是能够弹出来的

$error = check($out);
echo $error; 是什么结果

把你的out.txt发来看看
我的out.txt是这样的

把你的out.txt发来看看
我的out.txt是这样的


我似乎找到点原因了
如果文件只有一行或者最后一行是“#ERROR   abc”的话,能够正常弹出,但是如果后面还有别的信息,我的程序就不行了。。。

function check($out) {  $file_handle = fopen($out, 'r');  while (!feof($file_handle)) {    $line = fgets($file_handle);    if (substr($line, 0, 6) == "#ERROR") {      return preg_replace("/\s/","",substr($line, 8));//去掉换行    }  }  fclose($file_handle);}$out = "out.txt";$error = check($out);if ($error != "") {  echo "<script>alert(\"$error\");</script>";  exit;}

取出一行存在换行问题 把换行去掉就行了

我知道怎么改了,但是不知道为什么……

把所需要的字符串完全截出来就行了,比如“return substr($line, 8, 5)”,此时就能正常弹出了,是不是当不是最后一行时,substr会把一行末尾的换行符也取得,而alert无法处理……

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn