मैं इस तरह कास्टिंग करके बेस 64 लाइन को आउटपुट करने के लिए मूल फ़ंक्शन प्राप्त करने में कामयाब रहा:
$stmt = $this->con->prepare("SELECT owner, pet_name, last_seen, contact, description, CAST(photo as CHAR(1000000) CHARACTER SET utf8) as photo, location FROM Pets");
जबकि इसने बेस 64 स्ट्रिंग को प्राप्त करने की अनुमति दी थी, इसमें अभी भी अवांछित वर्ण शामिल थे। अवांछित वर्ण JSON_ENCODE के कारण थे। नीचे मैं इसे ठीक करने के लिए उपयोग करता था।
मूल रूप से, 1. जोड़े गए वर्णों को हटा दें और 2. JSON_ENCODE को JSON_UNESCAPED_SLASHES के साथ एस्केप वर्णों को प्रिंट न करने के लिए कहें।
समारोह के लिए getReports()
function getReports() {
$stmt = $this->con->prepare("SELECT owner, pet_name, last_seen, contact, description, CAST(photo as CHAR(1000000) CHARACTER SET utf8) as photo, location FROM Pets");
$stmt->execute();
$stmt->bind_result($owner, $pet_name, $last_seen, $contact, $description, $photo, $location);
$reports = array();
while($stmt->fetch()) {
$report = array();
$report['owner'] = $owner;
$report['pet_name'] = $pet_name;
$report['last_seen'] = $last_seen;
$report['contact'] = $contact;
$report['description'] = $description;
$photo = str_replace("\n","",$photo);
$photo = str_replace("\\/","/", $photo);
$photo = stripcslashes($photo);
$report['photo'] = $photo;
$report['location'] = $location;
array_push($reports, $report);
}
return $reports;
}
और एपी लिपि में,
. से वापसी को बदल दियाecho json_encode($resultArray);
करने के लिए
echo json_encode($resultArray, JSON_UNESCAPED_SLASHES);
अब सब कुछ शानदार काम करता है। क्या यह सर्वोत्तम अभ्यास है? मुझे यकीन नहीं है। मुझे यकीन है कि बेस 64 को स्टोर करना शायद नहीं है...