亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php DOMDocument()->getAttribute() 不工作

php DOMDocument()->getAttribute() 不工作

PHP
慕蓋茨4494581 2023-04-21 09:57:48
我想從字符串中的 HTML 中獲取標簽href屬性的值。a我在這里制作了一個 PHP 小提琴,因為它string太長了。錯誤:PHP Parse error:  syntax error, unexpected 'undefined' (T_STRING) in...
查看完整描述

2 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

在 php 沙箱中,您的代碼有效。


但是,您忘記了標簽<的開頭a。


<?php

$string = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

            <head>

            </head>

            <body onclick="on_body_click()" text="#000000" alink="#FF0000" link="#0000FF" vlink="#800080"> 

             <a href="/cgi-bin/new_get_recorded.cgi?l_doc_ref_no=7506389&amp;COUNTY=san francisco&amp;YEARSEGMENT=current&amp;SEARCH_TYPE=DETAIL_N" title="Document Details">Show Name Detail</a> 

                </body>

    </html>';


$doc = new DOMDocument();

$doc->loadHTML($string);

$selector = new DOMXPath($doc);

$result = $selector->query('//a[@title="Document Details"]');

$url = $result[0]->getAttribute('href');

echo $url;

$url你有價值href(打印出來)。

您似乎對字符串和使用'and有疑問"。

$string 如果以with開頭,'則不能在內部使用它。'您可以在最后使用just 來關閉 php 變量';;

你有三種解決方案:

  1. 在代表您的 html 的字符串中'替換;"

  2. 在代表您的 html 的字符串中使用\'instead of only 。'這告訴 php 字符串尚未完成,但'表示字符串內容;

  3. heredoc 語法;

例如,對于第一種方法,我們有:

$string = ' Inside the string you should use just this type of apostrophe "    ';


查看完整回答
反對 回復 2023-04-21
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

對于長的多行字符串,我更喜歡切換到heredoc語法,它提供了一種更干凈/可見的方式來處理其中的字符串和引號。它還提供字符串的“所見即所得顯示”,因為可以安全地插入換行符、制表符、空格、引號和雙引號。

我將您的示例切換為 HEREDOC 語法,并且運行良好(結果正確),但由于您的 HTML 輸入格式錯誤而導致的警告很少。

<?php


$string = <<<HTMLINPUT

Your multi-line HTML input goes here.

HTMLINPUT;


$doc = new DOMDocument();

$doc->loadHTML($string);

$selector = new DOMXPath($doc);

$result = $selector->query('//a[@title="Document Details"]');

echo $url = $result[0]->getAttribute('href');

希望能幫助到你。


查看完整回答
反對 回復 2023-04-21
  • 2 回答
  • 0 關注
  • 134 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號