نمایش نتایج 1 تا 4 از 4

نام تاپیک: تبدیل یک متغیر در یک کد سه خطی ( خواهشا اساتید کمکم کنید )

  1. #1

    تبدیل یک متغیر در یک کد سه خطی ( خواهشا اساتید کمکم کنید )

    سلام دوستان حرفه ای عزیز . من یک کد رو اجرا میکنم که کاملا درست و صحیح کار میکنه اما من میخوام مقدار متغیر address رو از داخل تگ <span> بگیرم . لطفا راهنمایی کنید . واقعا سپاسگذارم

    در کد زیر مقدار متغیر وارد شده و مقدار صحیح برگردانده میشه و چاپ میشه
    <?php$address="1EzwoHtiXB4iFwedPr49iywjZn2nnekhoj"  ;function getBalance($address) {    return file_get_contents('https://blockchain.info/de/q/addressbalance/'. $address);}
    echo 'Address Balance: ' . getBalance($address);
    ?>


    حالا من یک کد صفحه html دارم که این خط درون تگ اسکریپت هست و من میخوام مقدار داخل تگ <span> رو که کد هایی مثل address داخلش قرار میگیره رو به متغیر php تبدیل کنم که بشه در تابع قرار داد
     <script type="text/template" id="address-row-template">
    <tr>
    <td class="address"> <span data-show-qr></span> </td>
    </tr>
    </script>

    فرض میکنیم مقدار داخل تگ SPAN مقدار 1EzwoHtiXB4iFwedPr49iywjZn2nnekhoj باشد که البته تغییر میکند

    ممنون میشم اساتید کمکم کنید خیلیوقته روش گیر کردم .
    در ضمن اگر این کد به شکل جاوا اسکریپت نوشته بشه به چه شکل نوشته میشه
    سپاسگذارم

  2. #2
    کاربر جدید آواتار Arioun
    تاریخ عضویت
    تیر 1397
    محل زندگی
    لارستان، فارس
    پست
    12

    نقل قول: تبدیل یک متغیر در یک کد سه خطی ( خواهشا اساتید کمکم کنید )

    سلام دوست عزیز.
    سوالتون اندکی مبهم هستش.
    الآن دقیقا مشخص نیست که آیا هر دو بلاک در یک فایل قرار دارند یا خیر. یعنی آیا بخش پی‌اچ‌پی و بخش Span در یک فایل (مثلا index.php) هستند یا اینکه بخش span رو قراره از یک صفحه دیگه بگیرید؟
    اگر هر دو بلاک در یک فایل واحد هستن، می‌تونید از این قطعه کد استفاده کنید:

    <!DOCTYPE html>
    <html>
    <body>
    <span id="myspan">value</span>
    <?php
    $address = '<script>
    var param = document.getElementById("myspan").innerHTML;
    document.write(param);
    </script>';
    ?>
    <p style="color:DodgerBlue;"><?php echo $address; ?></p>
    </body>
    </html>

    بخش <!DOCTYPE html> اهمیت زیادی داره. چون محتوای span رو بعدا با همین در میاریم (getElementById). کلمه "value" در تگ span قرار گرفته که ما می‌خوایم بریزیمش داخل یک متغیر. برای این منظور، اسکریپت رو در برابر متغیر address می‌گذاریم تا رشته "value" داخل این متغیر ریخته بشه. دقت کنید که من برای Echo در PHP از ' استفاده کردم. در صورتی که برای استرینگ‌های داخل اسکریپت از " استفاه شده. این ضروریه که برای پی‌اچ‌پی و جاوا اسکریپت از دو چیز متفاوت برای استرینگ‌ها استفاده بشه. اگر این کد رو روی سرور ران کنید، واژه اول که سیاه‌رنگه مربوط به خود تگ span هست و واژه دوم که آبی‌رنگه از متغیر address گرفته شده.
    همونطور که می‌دونید، span در Html هست و نوعی کد سمت client محسوب میشه، ولی php سمت سرور هست. بنابراین دلیلی نداره که هر دو در یک فایل تعامل کنند.
    اگر در دو فایل جداگانه هستند، باید از کوکی یا فرم ساده (POST) استفاده کنید. یعنی مثلا از صفحه Html یه درخواست Post به فایل PHP داده بشه، فایل PHP محتوای POST رو در متغیر address بریزه و تابع رو فراخوانی کنه تا عدد صحیح از سایت مورد نظر (blockchain.info) بدست بیاد.
    موفق باشید.

  3. #3

    نقل قول: تبدیل یک متغیر در یک کد سه خطی ( خواهشا اساتید کمکم کنید )

    با تشکر از شما . به خاطر وقتی که گذاشتید . کد شما درست کار میکنه . من هم این رو نوشته بودم اما مشکلی که پیش میاد اگه مقدار valu تگ span برابر با
    1EzwoHtiXB4iFwedPr49iywjZn2nnekhoj قرار بدیم مقداری بر نمیگرده اما وقتی متغیر "address="1EzwoHtiXB4iFwedPr49iywjZn2nnekhoj$ را قرار میدیم مقدار برمیگرده و چاپ میشه . مشکل از کجاست در صورتیکه در هر دو مقدار address یکی است اما درون تابع که قرار میگیره جواب نمیده

  4. #4
    کاربر جدید آواتار Arioun
    تاریخ عضویت
    تیر 1397
    محل زندگی
    لارستان، فارس
    پست
    12

    نقل قول: تبدیل یک متغیر در یک کد سه خطی ( خواهشا اساتید کمکم کنید )

    بله، الان متوجه این موضوع شدم. مقدار مد نظر شما 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 بفرستید. اینکار‌ نسبت به خوندن محتوای صفحه یکم استانداردتره.
    آخرین ویرایش به وسیله Arioun : جمعه 29 تیر 1397 در 03:48 صبح

تاپیک های مشابه

  1. تبدیل یک کلاس 30 خطی به C#‎ (با Convertor خوب در نمیاد)
    نوشته شده توسط ostovarit در بخش C#‎‎
    پاسخ: 1
    آخرین پست: چهارشنبه 15 اردیبهشت 1389, 07:01 صبح
  2. تبدیل یک کلاس 30 خطی به C#‎‎ (با Convertor خوب در نمیاد)
    نوشته شده توسط ostovarit در بخش کامپوننت ها و ابزارهای کاربردی در VB6
    پاسخ: 1
    آخرین پست: سه شنبه 14 اردیبهشت 1389, 23:44 عصر
  3. سوال: نحوه تبدیل یک کد #C به Dll برای استفاده در برنامه های دیگر
    نوشته شده توسط lajevardi106 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 27 بهمن 1388, 10:03 صبح
  4. تبدیل یک کد از Sqlserver به اکسس
    نوشته شده توسط hanif_x90 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: جمعه 03 اسفند 1386, 21:25 عصر
  5. تبدیل یک کد از Sqlserver به اکسس
    نوشته شده توسط hanif_x90 در بخش Access
    پاسخ: 1
    آخرین پست: سه شنبه 30 بهمن 1386, 10:00 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •