如何用PHP字符替换空格

时间:2015-03-17 16:44:39

标签: php arrays string str-replace explode

我的字符串$ content 1stText 2ndText 3rdText 4thText, 5thText, 6thText存在这个奇怪的问题,我无法用字符替换空格。主要目的是我必须将我的字符串放在数组中,之后每个元素都会有自己的名字。但是,当我从其他网站解析数据时,请坚持下去:

if ($child->nodeName == "div"){
    $textContentArray = preg_split('/\n/', $child->textContent);
    $counter = 0;
    $counter2 = 0;
    foreach ($textContentArray as &$value) 
    {
        if (trim($value) != "")
        {
            $counter2++;
            $string = preg_replace('/\s+/', ';', $content);
            $test = explode(';', $string);
            var_dump($string);

echo $ string给了我 1stText2ndText3Text4Text;5Text;6Text 而var_dump:string(2) "1stText" string(18) "2ndText" string(3) "3Text" string(16) "4Text"

4Text(4thText,5thText,6thText)由三个单词组成,所以在它们之间,字符“;”添加,但在文本节点之间 - 不是。

我尝试了很多我在这里找到的变体,简单的str_replace在这里不起作用。当我从表中复制字符串时,也许这就是问题?但是,为什么我不能单独将它保存在数组中?

1 个答案:

答案 0 :(得分:0)

尝试使用单个空格从字符串中删除额外空格。然后尝试用;字符替换该单个空格,最后爆炸,因为你希望获得最终的数组。

$str = preg_replace( "/\s+/", " ", $content ); 

#replaced multiple space with single space
$str = "1stText 2ndText 3rdText 4thText, 5thText, 6thText,"; 
$re = "/\\s+/m"; 
$subst = ";"; 
$result = preg_replace($re, $subst, $str);
$final=explode(';',$result);

echo '<pre>'; 
print_r($final) ;
echo '</pre>';

编辑: print_r(array_map('trim',explode(";",$result)));