??? ???? ??? ???? ??? ?? ??? ???? ?? ??? ?? ?? ?? ???? ?? ? ????? ????. Workerman? PHP? ?? ??? ??????? ??? ?? ???? ?? ??? ? ????. ?? ???? ?? Workerman? ???? ??? ?? ?? ?? ???? ???? ??? ???? ???? ?? ??? ?????.
- ??? ???? ??
??? ?? ?? ?? ???? ??? ? ???? ? ??? ??? ????.
(1) ???? ?? ??? ??? ?? ? ????
(2) ?? ??? ??????? ???? ??? ??????
(3) ? ??? ??? ??? ???? ??? ??????
(4) ?? ??? ????? ?????? ??? ??????
? ??? ???? ?? ??? ?? ??? ????? ??? ? ????.
(1) HTML5? Geolocation API? ???? ???? ?? ??? ????.
(2) MySQL ??????? ?? ??? ?????.
(3) ???? ??? ???? ? ??? ??? ??? ?????.
(4) ?? ??? ?? ??? ????? ???? ?????? ?????.
- ????? ? ??
?? ???? ?? ??? ???? HTML5? geolocation API? ???? ???.
if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { alert("Geolocation API is not supported in your browser."); } function showPosition(position) { var lat = position.coords.latitude; var lng = position.coords.longitude; // 將經(jīng)緯度發(fā)送到服務(wù)器端進(jìn)行處理 var xhr = new XMLHttpRequest(); xhr.open("POST", "http://localhost:2345/savePosition.php", true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send("lat=" + lat + "&lng=" + lng); }
???? ??? ??? ??? ?? ?? ?? savePosition.php ??? ????. ??? ?? POST ?????.
?? ???? Workerman? MySQL ???? ???? ?? ??? MySQL ??????? ??? ? ????.
require_once __DIR__ . '/vendor/autoload.php'; use WorkermanMySQLConnection; $db = new Connection('localhost', '3306', 'root', 'password', 'dbname'); $lat = $_POST['lat']; $lng = $_POST['lng']; $db->insert('user_position', array('lat' => $lat, 'lng' => $lng));
??? ???? ?? ??? user_position??? ???? ?????.
- ??? ??
? ??? ??? ??? ???? ?? Haversine ??? ??? ? ????.
haversine ??? ??? ??? ????.
DELTA_LATITUDE = LATITUDE_B - LATITUDE_A DELTA_LONGITUDE = LONGITUDE_B - LONGITUDE_A a = sin(DELTA_LATITUDE/2)^2 + cos(LATITUDE_A) * cos(LATITUDE_B) * sin(DELTA_LONGITUDE/2)^2 c = 2 * atan2(sqrt(a), sqrt(1-a)) DISTANCE = EARTH_RADIUS * c
PHP?? haversine ??? ???? ??? ??? ????.
function haversineDistance($lat1, $lng1, $lat2, $lng2) { $earth_radius = 6371; $delta_latitude = deg2rad($lat2 - $lat1); $delta_longitude = deg2rad($lng2 - $lng1); $a = sin($delta_latitude / 2) * sin($delta_latitude / 2) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * sin($delta_longitude / 2) * sin($delta_longitude / 2); $c = 2 * atan2(sqrt($a), sqrt(1 - $a)); $distance = $earth_radius * $c; return $distance; }
? ??? ?? ??? ???? ? ??? ??? ??? ??? ? ????. ??? ???? ????, ???? ?? ???? ?? ??? ????? ???? ???? ???? ? ????. ??? ??? ?? ?????.
function getRecommendations($user_id, $lat, $lng) { $earth_radius = 6371; $max_distance = 20; $query = "SELECT id, lat, lng, interests FROM user_position WHERE id != '$user_id'"; $result = $db->query($query); $recommendations = array(); while ($row = mysqli_fetch_assoc($result)) { $distance = haversineDistance($lat, $lng, $row['lat'], $row['lng']); if ($distance <= $max_distance) { $interests = explode(",", $row['interests']); $common_interests = array_intersect($user_interests, $interests); if (count($common_interests) > 0) { $recommendations[] = $row['id']; } } } return $recommendations; }
- Summary
? ?? ?? Workerman? ???? ??? ?? ?? ?? ???? ???? ??? ???? ???? ?? ??? ??????. ??? ?? ???? ?? ???? ?? ?????? ???? ??, ?? ???? ? ???? ?? ???? ??? ????. ? ??? Workerman? ???? ??? ?? ???? ???? ??? ???? ? ??? ??? ????.
? ??? Workerman? ???? ??? ?? ?? ?? ???? ???? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

Workerman ???? ?? ??? ? ????? ????? ?? ?? ??? ?????. ??: Workerman? ???? ????? ???? ?? ??? PHP ??? ???? ?? ????????. ?? ???? ?? ??? ? ????? ???? ?? ?? ?????. ? ????? Workerman ?????? ???? ?? ??? ? ????? ???? ??? ???? ???? ?? ??? ?????. 1. ?? ???: ?? ???? ?? ???? ?? ??? ??? ???? ??? ????. ??? ?????

Swoole? Workerman? ?? ??? PHP ?? ????????. ??? ??, ??? ?? ? ????? ? ??? Swoole? ?? ?? ?? ??? ?? ???? ???? ?? ????? ?????. Workerman? ?? ???? ?? ??? ??? ???? ????? ? ??? ???? API? ?? ???? ? ??? ??? ???? ?????.

Workerman ??? ?? ???? ???? ?? ??: Workerman? ???? ???? ?? ???? ??????? ?? ???? ? ??? ?? ??? PHP ?? ????????. ? ????? ?? ? ??, ??? ? ?? ?? ??, ????? ?? ?? ? Workerman? ?? ???? ?????. ??? ?? ?? ??? ??????. 1. Workerman? ???? ????? ???? ?? ??? ?????.

Workerman ???? ??? ??? ???? ?? Workerman? ??? ??? ??? ??? ??? ???? ??? PHP ??? ???? ?? ????????. ???? ???? ??? ?? ?? ??? ??? ?????. ?? ??? ?? ? ??? ?? ?????? ????? ?? ?????. ????? Workerman?? ??? ??? ???? ??? ??? ???? ???? ?? ??? ???????. 1??: Workerman ?? ?? Worker? ???? ???.

Workerman ??: UDP ???? ?? ??? ???? ??: ? ???? Workerman ?????? ???? UDP ???? ?? ??? ???? ??? ???? ??? ?????. UDP ????? ??? ????? ???? ?? ??? ?? ????? ??? ??? ?? ?? ??????? ???? ??? ?????. ??: ???? ???? ??? ????? ?? ??? ?????. ?? TCP ????? ??? ?? ?? ?? ? ?? ?? ?? ??? ??? ? ????. ??? UDP

Workerman ???? ??? ??? ??? ????? ???? ?? ??? ?????. ??: Workerman? ??? ??? ??? ??? ???? ??? PHP ?? ???? ???? ?? ?????? ? ??? ?? ? ?? ??? ?? ?????. ??. ? ? Workerman? ??? ?? ???? ??? ? ?? ???? ?? ??? ??? ??? ? ?? ??? ??? ??? ?????. ? ???? Workerman? ???? ??? ??? ??? ???? ??? ?????.

Workerman? ???? ???? ?? ??? ???? ????? ?? ?? ??? ?????. ?? ?? ????? ???? ??? ???? ?? ?? ? ?? ????? ??????? ?? ?? ?? ??? ???? ???. ????? ???? ???? ?? ?? ??? ???? ?? ?? ?? ? ??? ?????. ? ????? PHP ?? ?? ?????? Workerman? ???? ???? ?? ??? ???? ???? ??? ???? ???? ?? ??? ?????. 1. WorkermanWorke ??

Workerman? PHP? ???? ??? ??? ??? ??? ?? ?????? TCP/UDP ?????? ? ?? ??? ?? ??? ? ????. ?? Workerman? ??? ?? ??, ??? ?? ?? ?????? ??? ? ?? ?? ?? ?? ??? ?????. ? ???? Workerman?? ?? ?? ??? ???? ??? ???? ???? ?? ??? ?????. 1. ?? ??? ?? ?? ??? ??? ???? ???? ?????? ???? ??? ??? ??? ??, ??? ?? ????.
