0

在我的父文件的一个函数中,我从一个外部 php 文件调用一个函数。这是我的(简化的)代码:

父文件:

include "HelperFiles/htmlify.php";

function funcName(){
    $description = "some sample text"; 
    $description = htmlify($description, "code");

    echo $description;
};
funcName();

带有被调用函数的 htmlify.php 文件:

$text = "";

function htmlify($text, $format){

    if (is_array($_POST)) {
          $html = ($_POST['text']);
        } else {
          $html = $text;
        };    

        $html = str_replace("‘", "'", $html); //Stripping out stubborn MSWord curly quotes
        $html = str_replace("’", "'", $html);
        $html = str_replace("”", '"', $html);
        $html = str_replace("“", '"', $html);
        $html = str_replace("–", "-", $html);
        $html = str_replace("…", "...", $html);



      if ($format == "code"){

        $html = str_replace(chr(149), "•",$html);
        $html = str_replace(chr(150), "—",$html);
        $html = str_replace(chr(151), "—",$html);
        $html = str_replace(chr(153), "™",$html);
        $html = str_replace(chr(169), "©",$html);
        $html = str_replace(chr(174), "®",$html);


       $trans = get_html_translation_table(HTML_ENTITIES);
       $html = strtr($html, $trans);

       $html = nl2br($html);
       $html = str_replace("<br />", "<br>",$html);

       $html = preg_replace ( "/(\s*<br>)/", "\n<br>", $html );  // seperate lines for each <br>
       //$text = str_replace ( "&amp;#", "&#", $text );
       //return htmlspecialchars(stripslashes($text), ENT_QUOTES, "UTF-8");

        return htmlspecialchars($html, ENT_QUOTES, "UTF-8");
      }
      else if ($format == "clean"){
        return $html;
      }

};

我收到以下错误:

注意:未定义索引:第 25 行 C:_Localhost_Tools\HelperFiles\htmlify.php 中的文本

我尝试在多个地方声明范围内外的 $text 变量,但似乎无法解决此错误(警告)。任何帮助将不胜感激!谢谢。

4

2 回答 2

2

代替

if (is_array($_POST)) {

if (isset($_POST['text'])) {

你不应该再收到警告了。

但是,我建议将其全部删除。应该始终使用函数参数 - 其他一切都令人困惑。

您还可以删除 htmlify.php 中的第一行 - 这基本上什么都不做。

于 2012-11-05T20:13:55.633 回答
0

错误消息读取未定义索引,而不是未定义变量。查看您尝试使用textas 键访问关联变量的所有地方,在$_POST['text']我看来这是您最好的选择,没有任何迹象表明您正在处理$_POST数据 AFAIK...

于 2012-11-05T20:15:32.247 回答