PHP preg_match for empty lines
<p>I want to have an array of strings with <code>&lt;answers&gt;</code> and <code>&lt;names&gt;</code> tags from my xml file, (it's not guaranteed for file to be valid, so I can't parse it with simplexml)</p>

<p>after code execution I get an array with <code>array[0]</code> equal to something empty with lenght of 5, I thought that my regexp <code>/^[\s\S]*$/</code> should remove all empty characters and lines, but on practice that <code>array[0]</code> element is stays the same as after array_filter.</p>

<p>how can I get this array without emty values?</p>

<pre><code>array(8) { 
[0]=&gt; 
string(5) " " 
[3]=&gt; 
string(39) "&lt;name&gt;первый вопрос&lt;/name&gt; " 
[4]=&gt; 
string(68) "&lt;answer id="1"&gt;Первый ответ на вопрос 1&lt;/answer&gt; " 
[5]=&gt; 
string(68) "&lt;answer id="2"&gt;Второй ответ на вопрос 1&lt;/answer&gt; " 
[6]=&gt; 
string(68) "&lt;answer id="3"&gt;Третий ответ на вопрос 1&lt;/answer&gt; "
[9]=&gt; 
string(51) "&lt;name&gt; второй вопрос&lt;/name&gt; " 
[10]=&gt; 
string(68) "&lt;answer id="1"&gt;Первый ответ на вопрос 2&lt;/answer&gt; " 
[11]=&gt; 
string(68) "&lt;answer id="2"&gt;Второй ответ на вопрос 2&lt;/answer&gt; " 
} 
</code></pre>

<p>I have xml file </p>

<pre><code>&lt;?xml version="1.0" standalone="yes"?&gt; 
&lt;test&gt; 
&lt;question id="1"&gt;
&lt;name&gt;первый вопрос&lt;/name&gt;
&lt;answer id="1"&gt;Первый ответ на вопрос 1&lt;/answer&gt;
&lt;answer id="2"&gt;Второй ответ на вопрос 1&lt;/answer&gt;
&lt;answer id="3"&gt;Третий ответ на вопрос 1&lt;/answer&gt;
&lt;/question&gt;
&lt;question id="2"&gt;

&lt;name&gt;            второй вопрос&lt;/name&gt;
&lt;answer id="1"&gt;Первый ответ на вопрос 2&lt;/answer&gt;
&lt;answer id="2"&gt;Второй ответ на вопрос 2&lt;/answer&gt;
&lt;/question&gt;
&lt;/test&gt;
</code></pre>

<p>and code </p>

<pre><code>&lt;?php
$xml = file_get_contents("test.xml");
$per = preg_replace('/&lt;question[\s\S]+?&gt;|&lt;\/question&gt;|&lt;test&gt;|
&lt;\/test&gt;|&lt;\?xml[\s\S]+?&gt;/i', "", $xml);
$array = explode("\n", $per);
function filter($str)
{
    return !preg_match('/^[\s]*$/', $str);
}

$array = array_filter($array, "filter");
var_dump ($array);
?&gt;
</code></pre>