بله، الان متوجه این موضوع شدم. مقدار مد نظر شما 34 کاراکتره.درسته؟
اگر انتهای کد اینو اضافه کنید، عدد 79 رو میبینید:
echo strlen($address);
حالا چرا 79؟
چون که کد جاوا اسکریپت که مقابل address نوشتیم 79 کاراکتره.
یعنی وقتی آدرس رو در صفحه echo میکنیم، کد جاوا اسکریپ تازه اجرا میشه. وگرنه آدرس مورد نظر در متغیر ریخته نشده.
پیشنهاد من اینه که به طریقی مقدار متغیر رو ثابت کنید.
مثلا یه تابع بنویسید که کد جاوا اسکریپت رو ران کنه و آدرس رو return کنه.
ولی مراقب باشید که دوباره خود اسکریپت return نشه. فقط همون مقدار address.
من با ساختارهای دیتا در php آشنایی چندانی ندارم.
ولی مشکل از همینجاست و جهت دیباگ کردن میتونید از strlen() استفاده کنید. تا وقتی که 79 رو میبینید، کدتون کار نخواهد کرد. چون که صرفا کد جاوا اسکریپت رو به انتهای سایت بلاکچین اضافه میکنه.
آپدیت: یه راهکار اینه که مقدار مورد نظر رو بلافاصله به فانکشن getbalance ندید. اول با پروتکل POST مقدار رو به یک فایل دیگه (یا خود فایل) پاس بدید و مقدار دریافتی از POST رو در فانکشن مورد نظر قرار بدید. اینطوری احتمالا همون مقدار مورد نظر پاس داده میشه، نه کد اسکریپت.حتی میشه در یک فایل محلی جداگانه write بشه و بعد با همین file_get_contents خونده بشه. در این صورت این متد اول آدرس رو از یک فایل محلی میخونه و بعد با ترکیب آدرس و url سایت بلاکچین اون مقدار رو برمیگردونه. ضمنا، با متدهای var_dump و var_export هم چندبار امتحان کنید.
البته راه حل بهتر شاید این باشه که بجای file_get_contents از curl استفاده کنید و درخواست Http بفرستید. اینکار نسبت به خوندن محتوای صفحه یکم استانداردتره.