dqp10099 2013-04-26 03:35
浏览 62
已采纳

PHP DOMNode :: hasAttributes检查失败

I am using PHP DOMNode hasAttributes to retrieve all of the elements' attributes. So far, everything is working great. My code is below. However, this line else if($imageTags->hasAttributes() == false) is where I can't get it to work, it displays error on my page instead redirecting the user to index php when code failed to work. What I really want is if ($imageTags->hasAttributes() == true) does not equal TRUE. Redirect the user to index.php and don't display the errors instead.

function get_iframe_attr($string){
        $doc = new DOMDocument();
        $doc->loadHTML("$string");

            $imageTags = $doc->getElementsByTagName('iframe')->item(0);
            if ($imageTags->hasAttributes() == true) {
              foreach ($imageTags->attributes as $attr) {
                $name = $attr->nodeName;
                $value = $attr->nodeValue;
                $attr_val[] = "$name=\"$value\" ";

              }
              echo  $implode_str = implode(" ", $attr_val);
            }else if($imageTags->hasAttributes() == false){
              header("Location: index.php");
            }

        } 


get_iframe_attr('<iframe src="" scrolling="no" width="600" height="438" marginheight="0" marginwidth="0" frameborder="0"></iframe>');

Note: if you remove the '<iframe' tags on the string. You will get the error

  • 写回答

2条回答 默认 最新

  • doushi9376 2013-04-26 03:58
    关注
    ...
    } else if($imageTags->hasAttributes() == false){
       header("Location: index.php");
       die; // needed here to prevent code below, if any from executing
    }
    ...
    

    also on your edit note about removing iframe and getting error, you need to check if $doc->getElementsByTagName('iframe') has actually grabbed anything, example:

    $imageTags = $doc->getElementsByTagName('iframe')
    if ($imageTags->length > 0) {
       $imageTags = $imageTags->item(0);
       ...
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误