2015-11-16 3 views
0

Итак, я попытался получить что-либо с заменой #texthere t на ссылку, чтобы я мог перейти к хеш-странице этого конкретного хэша.Использование Preg_replace с Json

С кодом, который у меня есть, я просто продолжаю получать «неопределенные» обратно. Может кто-нибудь, пожалуйста, взгляните и укажите, где я ошибаюсь.

$json = array(
'userpost' => array() 
); 

$row = mysqli_fetch_assoc($check1); 

     $posts = array(); 

     $posts['num'] = $num; 
     $posts['streamitem_id'] = $row['streamitem_id']; 
     $autoembed = new AutoEmbed(); 
     $posts['streamitem_content'] = $autoembed->parse($row['streamitem_content']); 
     $regex = "/#(\w+)/"; 
     $string=$row['streamitem_content']; 
     $string = preg_replace($regex, '<a href="hash.php?tag=$1">$1</a>', $string); 
     $posts['streamitem_content']=json_decode($string); 
     $posts['streamitem_creator'] = $row['streamitem_creator']; 
     $posts['streamitem_timestamp'] = $row['streamitem_timestamp']; 
     $posts['username'] = $row['username']; 
     $posts['id'] = $row['id']; 
     $posts['first'] = $row['first']; 
     $posts['middle'] = $row['middle']; 
     $posts['last'] = $row['last']; 

$json['userpost'][] = $posts; 

echo json_encode($json); 
+0

'$ 0' - ничто; группы захвата начинаются с '$ 1'. Вы также можете упростить регулярное выражение до '# (\ w +)'. Я не уверен, почему вы количественно определяете '#', будет ли более 1 '#' в строке, и если бы последующие были частью самого тега? Ваше сообщение 'undefined' звучит как ошибка JS, хотя .. – chris85

+0

изменен, и я просто получаю 'null' обратно на стороне клиента. –

+0

Исходные неопределенные и нулевые сообщения поступают со стороны сервера и показывают его рядом с streamitem_content в firebug –

ответ

0

Хорошо, это то, что я сделал для решения проблемы. нет необходимости в расшифровке, и именно это и вызывало проблему.

$regex = "/#(\w+)/"; 
    $posts['streamitem_content'] = $row['streamitem_content']; 
    $posts['streamitem_content'] = preg_replace($regex, " 
    <a href='hash.php?tag=$1'>$1</a>", $posts['streamitem_content']);