Đây http://php.net/manual/en/ Chức năng. Preg-match-all.php bạn có thể đọc về tham số thứ 4 của preg_match_all. Bạn có thể lặp lại các url được tìm thấy. Tôi đã thay đổi phần cuối của biểu thức chính quy của bạn, vì vậy nó sẽ không bắt được toàn bộ dòng:
$urlinput=mysql_real_escape_string($_POST['url']);
$pattren="/(http:\/\/)[a-zA-Z0-9]*\.[a-z]*(.*)|(www)\.[a-zA-Z0-9]*\.[com]*([a-zA-Z0-9\.\-_\/\?=\:]*)/";
preg_match_all( $pattren, $urlinput, $matches, PREG_SET_ORDER );
foreach($matches as $match) {
$id=rand(10000,99999);
$shorturl=base_convert($id,20,36);
$sql = "insert into url values('$id','" . mysql_real_escape_string($match[0]) . "','$shorturl')";
mysql_query($sql,$con);
}
Ngoài ra, hãy cẩn thận với SQL injection và sử dụng mysql_real_escape_string khi bạn sử dụng dữ liệu người dùng trong các truy vấn của mình.