前のtopicによると、PHPの文字列の空白/タブを整えるつもりです。文を書く方法PHPを使用して文字列の空白/タブを整える
$html = '<tr><td>A </td><td>B </td><td>C </td></tr>'
に変換
$html = '<tr> <td>A </td> <td>B </td> <td>C </td> </tr>'
はstr.replace(/>\s+</g,'><');
が好き?
前のtopicによると、PHPの文字列の空白/タブを整えるつもりです。文を書く方法PHPを使用して文字列の空白/タブを整える
$html = '<tr><td>A </td><td>B </td><td>C </td></tr>'
に変換
$html = '<tr> <td>A </td> <td>B </td> <td>C </td> </tr>'
はstr.replace(/>\s+</g,'><');
が好き?
$str = preg_replace('/(?<=>)\s+(?=<)/', '', $str);
破損しにくいが、いくつかのより多くのリソースを使用しています。
<?php
$html = '<tr> <td>A </td> <td>B </td> <td>C </td> </tr>';
$d = new DOMDocument();
$d->loadHTML($html);
$x = new DOMXPath($d);
foreach($x->query('//text()[normalize-space()=""]') as $textnode){
$textnode->deleteData(0,strlen($textnode->wholeText));
}
echo $d->saveXML($d->documentElement->firstChild->firstChild);
http://sandbox.phpcode.eu/g/54ba6.php
結果
<tr><td>A </td><td>B </td><td>C </td></tr>
コード
<?php
$html = '<tr> <td>A </td> <td>B </td> <td>C </td> </tr>';
$html = preg_replace('~(</td>)([\s]+)(<td>)~', '$1$3', $html);
$html = preg_replace('~(<tr>)([\s]+)(<td>)~', '$1$3', $html);
echo preg_replace('~(</td>)([\s]+)(</tr>)~', '$1$3', $html);
ソリューションのおかげで、あなたは "〜" '〜()([\ s] +)()〜'と "$ 1 $ 3"?感謝 –
@Charles:デリミタ。 –
@Tomalak Geret'kal:ありがとう、でも$ 1 $ 3? –
['preg_replace()'](http://php.net/manual/en/function.preg-replace.php) – Phil
@Phil:いいえHTML解析にregexを使用しないでください。 –
@Tomolakこの場合、私はそれが有効だと言っています。 HTMLはとにかく解析されていません。それは簡単な文字列操作です。また、それは質問 – Phil