【问题标题】:Using a variable in $html = file_get_html();在 $html = file_get_html(); 中使用变量
【发布时间】:2012-09-22 08:46:18
【问题描述】:

我不明白为什么变量在这里不起作用。这是代码:

include_once('../simple_html_dom.php');
$url = htmlentities($_GET['q']);
$urlall = str_replace(" ", "+", $url);
$html = file_get_html('http://www.example.com/some?key=$urlall&hl=en');
echo $html->plaintext;

如果您查看此代码,您会发现我在网址中应用了$urlall 变量,但该变量无法提取其数据。作为一个新的 PHP 程序员,现在不明白该怎么做才能让它工作.. 在这里我使用了 HTML DOM PARSER..谢谢

【问题讨论】:

    标签: php parsing variables html-parsing


    【解决方案1】:

    单引号内的字符串是文字,所以$urlall只是一个字符串,它不会被替换为acual变量值。您要做的是使用双引号:

    $html = file_get_html("http://www.example.com/some?key=$urlall&hl=en");
    

    更多解释请参考PHP Strings:

    注意:与双引号和 heredoc 语法不同,变量和 特殊字符的转义序列在它们时不会被扩展 出现在单引号字符串中。

    【讨论】:

      【解决方案2】:

      PHP 变量不会被解析并用单引号替换。

      试试

      $html = file_get_html("http://www.example.com/some?key=$urlall&hl=en");
      

      【讨论】:

        【解决方案3】:

        尝试用双引号替换单引号:

        "http://www.example.com/some?key=$urlall&hl=en"
        

        或使用字符串连接而不是直接将变量输入到字符串中:

        'http://www.example.com/some?key='.$urlall.'&hl=en'
        

        第二种变体更可取。

        希望对你有帮助

        【讨论】:

          猜你喜欢
          • 2016-08-29
          • 2016-05-23
          • 1970-01-01
          • 2016-09-25
          • 2014-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多