1

PHP で XML ファイルを解析します。私の問題は、複数行の動的文字列があり、各行にスペース文字がなく、その文字列で単語を見つけたいことです。文字列の長さは動的であるため、毎回変化します。

文字列の長さは動的であるため、文字列にスペースがないため、次の$c = substr($string, 0, -1)ようなものを使用できないか、次のようなものを使用できません。$i=stripos($story," word");

例の文字列は 4 行で、前の 2 行目にある ARC.docx という単語を検出したい</a>:

<![CDATA[
In <a href='/home/Apps/ARCMeeting'>ARCMeeting</a>, You edited the file <a href='https://dropbox.com/get/Apps/ARCMeeting/ARC.docx?w=d3' title='&#47;Apps&#47;ARCMeeting&#47;ARC.docx'>ARC.docx</a>.
<br/>
]]>

私の目標は、そのARC.docxを</a>メッセージ本文の2行前に追加することです

$message='X File has been edited!';

印刷できるように

$message='ARC.docx File has been edited!';

上記の文字列の間にある単語を検出するにはどうすればよい.......>exampleword</a>.ですか?

前もって感謝します

4

2 に答える 2

2

preg_match関数を試すことができます。

あなたの場合、次のようになります。

$subject = "In <a href='/home/Apps/ARCMeeting'>ARCMeeting</a>, You edited the file <a href='https://dropbox.com/get/Apps/ARCMeeting/ARC.docx?w=d3' title='&#47;Apps&#47;ARCMeeting&#47;ARC.docx'>ARC.docx</a>"

preg_match("/title=(.*)>(.*)<\/a>/U", $subject, $matches);

echo $matches[2]; // $matches[2] will contain `ARC.docx`
于 2012-09-20T15:35:19.500 に答える
2

PHP に組み込まれているようなDOM パーサーを使用します。

$doc = new DOMDocument();

$html_string = <<<EOD
 <![CDATA[
 In <a href='/home/Apps/ARCMeeting'>ARCMeeting</a>, You edited the file <a href='https://dropbox.com/get/Apps/ARCMeeting/ARC.docx?w=d3' title='&#47;Apps&#47;ARCMeeting&#47;ARC.docx'>ARC.docx</a>.
 <br/>
 ]]>
EOD;

@$doc->loadHTML($html_string);

$urls = $doc->getElementsByTagName('a');

foreach ($urls as $url) {
 echo $url->nodeValue;
}

ARC.docx

于 2012-09-20T15:40:23.667 に答える