2

PHP に文字列変数があり、その内容は次のとおりです。

$var='<SPAN id=1 value=1 name=1> one</SPAN>
<div id=2 value=2 name=2> two</div >';
 ....

"" で HTML 属性を囲む関数が必要です。すべてのメタタグに対してこれを行う必要があります。

など、結果は次のようになります。

$var='<SPAN id= "1" value="1" name="1"> one </SPAN>
<div id="2" value="2" name="2" > two</div >';
 ...

すべての =[az][AZ][1-9] を ="[az][AZ][1-9]" に置き換える必要があります。preg_replace の正規表現が必要です

4

4 に答える 4

1

次のように、すべてを一重引用符で囲む必要があります。

$myHtml='<SPAN id="1" value="1" name="1"> one </SPAN>
    <div id="2" value="2" name="2" > two</div >';
于 2012-11-10T16:27:37.557 に答える
0

以下を除くほとんどのものをエスケープする必要をなくすヒアドキュメントを使用します$

$var = <<<EOL
<span id="1" value="1" name="1">one</span>
etc...
EOL
于 2012-11-10T16:32:47.680 に答える
0

DOMDocument文字列を次のように実行します。

$var='<SPAN id=1 value=1 name=1> one</SPAN>
<div id=2 value=2 name=2> two</div >';

// Create a new DOMDocument and load your markup.
$dom = new DOMDocument();
$dom->loadHTML($var);

// DOMDocument adds doctype and <html> and <body> tags if they aren't
// present, so find the contents of the <body> tag (which should be
// your original markup) and dump them back to a string.
$var = $dom->saveHTML($dom->getElementsByTagName('body')->item(0));

// Strip the actual <body> tags DOMDocument appended.
$var = preg_replace('#^<body>\s*(.+?)\s*</body>$#ms', '$1', $var);

// Here $var will be your desired output:
var_dump($var);

出力:

string(85) "<span id="1" value="1" name="1"> one</span>\n<div id="2" value="2" name="2"> two</div>"

$varに実際の<body>タグが含まれる可能性がある場合は、このコードを変更する必要があることに注意してください。OPの練習としてそれを残します。

于 2012-11-10T17:32:42.100 に答える