Reputation: 11
here is my code to view posts from users, but it show link as normal text.how to detect url and convert into clickable link? reference attached:
function get_posts()
{
global $con;
$get_posts = "SELECT * FROM posts";
$run_posts = mysqli_query($con, $get_posts);
while ($row_posts = mysqli_fetch_array($run_posts)) {
$post_id = $row_posts['post_id'];
$user_id = $row_posts['user_id'];
$content = $row_posts['post_content'];
$post_date = $row_posts['post_date'];
echo "<div class='posts'>
<p>$post_date</p>
<p>$content</p>
<a href='single.php?post_id=$post_id'Style='float:right;'>
<button>See Replies or Reply to is</button></a>
</div><br/>";
}
}
Upvotes: 1
Views: 1883
Reputation: 1350
This solution will catch all http/https/www and convert to clickable links.
$url = '~(?:(https?)://([^\s<]+)|(www\.[^\s<]+?\.[^\s<]+))(?<![\.,:])~i';
$content = preg_replace($url, '<a href="$0" target="_blank" title="$0">$0</a>', $content);
Please see Convert plain text URLs into HTML hyperlinks in PHP.
Upvotes: 0
Reputation: 289
Check below code as you have not properly prepared html. You have used button inside the anchor tag.
function get_posts(){
global $con;
$get_posts="SELECT * FROM posts";
$run_posts=mysqli_query($con,$get_posts);
while($row_posts=mysqli_fetch_array($run_posts)){
$post_id=$row_posts['post_id'];
$user_id=$row_posts['user_id'];
$content=$row_posts['post_content'];
$post_date=$row_posts['post_date'];
echo '<div class="posts">
<p>'.$post_date.'</p>
<p>'.$content.'</p>
<a href="single.php?post_id='.$post_id.'" style="float:right;">
See Replies or Reply to is</a>
</div><br/>';
}
}
Upvotes: 1