-
September 22nd, 2018, 23:02
#1
عضو انجمن
مشکل ساده در کد php
سلام دوست خوبم.
ممنون میشم اگه دانشی در زمینه php و وردپرس داری این تاپیک رو بخونی و به من کمک کنی.
من در حال ساخت یک قالب وردپرس با فریم ورک redux framework هستم و برای نمایش تصویر بک گراندی که از پنل مدیریت قالب آپلود میشه از کد زیر استفاده میکنم:
کد:
<?php
global $redux_demo;
echo '<style type="text/css">';
if(!empty($redux_demo['header-bg-image'])) {
echo '.mheader {background: url('.$redux_demo['header-bg-image']['url'].')}';
}
echo '</style>';
توی ای نکد گفته که اگر header-bg-image وجود داشت دستور echo '.mheader {background: url('.$redux_demo['header-bg-image']['url'].')}'; رو چاپ کن...
کد به خوبی کار میکنه و هیچ مشکلی نداره .. فقط مشل اینه که زمانی که header-bg-image وجود نداره و هیچ تصویری در این فیلد از پنل مدیریت آپلود نشده نباید دستور بعدی رو اجرا کنه ... که متاسفانه اینطور نیست و در صورتی که header-bg-image هیچ مقداری نداشته باشه خروجی زیر نمایش داده میشه :
کد:
.mheader {
background: url();
}
ممنون میشم اگر مشکل من رو میدونی به من کمک کنی...
ویرایش توسط bloodthirstyb : September 22nd, 2018 در ساعت 23:05
-
-
September 22nd, 2018 23:02
# ADS
-
September 23rd, 2018, 03:26
#2
عضو انجمن
پاسخ : مشکل ساده در کد php
اینو امتحان کن
کد:
<?php
global $redux_demo;
echo '<style type="text/css">';
if(isset($redux_demo['header-bg-image']) && !empty(trim($redux_demo['header-bg-image']))) {
echo '.mheader {background: url('.$redux_demo['header-bg-image']['url'].')}';
}
echo '</style>';
-
تعداد تشکر ها از be099 به دلیل پست مفید
-
September 23rd, 2018, 18:34
#3
عضو انجمن
پاسخ : مشکل ساده در کد php

نوشته اصلی توسط
be099
اینو امتحان کن
کد:
<?php
global $redux_demo;
echo '<style type="text/css">';
if(isset($redux_demo['header-bg-image']) && !empty(trim($redux_demo['header-bg-image']))) {
echo '.mheader {background: url('.$redux_demo['header-bg-image']['url'].')}';
}
echo '</style>';
ممنون از پاسخگویی به تاپیک من
کدتون رو امتحان کردم ولی با این به کل هیچ خروجی نمایش داده نمیشه...یعنی چه header-bg-image مقدار داشته باشه و چه نداشته باشه هیچ خروجی نمایش داده نمیشه.
-
-
September 23rd, 2018, 18:53
#4
عضو انجمن
پاسخ : مشکل ساده در کد php
این یکیو امتحان کن
کد:
<?php
global $redux_demo;
echo '<style type="text/css">';
if(isset($redux_demo['header-bg-image']['url']) && !empty(trim($redux_demo['header-bg-image']['url']))) {
echo '.mheader {background: url('.$redux_demo['header-bg-image']['url'].')}';
}
echo '</style>';
-
تعداد تشکر ها از be099 به دلیل پست مفید
-
September 23rd, 2018, 19:10
#5
عضو انجمن
پاسخ : مشکل ساده در کد php

نوشته اصلی توسط
be099
این یکیو امتحان کن
کد:
<?php
global $redux_demo;
echo '<style type="text/css">';
if(isset($redux_demo['header-bg-image']['url']) && !empty(trim($redux_demo['header-bg-image']['url']))) {
echo '.mheader {background: url('.$redux_demo['header-bg-image']['url'].')}';
}
echo '</style>';
دستتون درد نکنه...با این کد کار کرد و مشکلی وجود نداره.
یه سوال دیگه هم داشتم گفتم شاید شما بدونید.
به نظر شما استاندارد ترین روش برای حل این مشکل چی میتونه باشه؟ آیا روشی هست که فقط با isset یا !empty و بدون استفاده از trim بشه این مشکل رو حل کرد؟
سپاس از شما
-
-
September 23rd, 2018, 19:24
#6
عضو انجمن
پاسخ : مشکل ساده در کد php

نوشته اصلی توسط
bloodthirstyb
دستتون درد نکنه...با این کد کار کرد و مشکلی وجود نداره.
یه سوال دیگه هم داشتم گفتم شاید شما بدونید.
به نظر شما استاندارد ترین روش برای حل این مشکل چی میتونه باشه؟ آیا روشی هست که فقط با isset یا !empty و بدون استفاده از trim بشه این مشکل رو حل کرد؟
سپاس از شما
خواهش میکنم
روش استاندارد اینه که
وقتی که از وجود متغیری مطمئن نیستی همیشه توی php باید اول از isset استفاده کنی و شرط های بعد برای بررسی بیشتره
شما میتونی اینجا trim رو حذف کنی و فکر نکنم مشکلی پیش بیاد من trim رو برای این گذاشتم که اگر کاربر فاصله ی خالی زده بود هم شرط برقرار نشه این دیگه بسته به سلیقه ی سختگیری برنامه نویسی خودتون داره
در کل اینجا روش استاندارد میشه اول isset بعد بررسی وجود رشته ی کارا برای این موقعیت ، که اینجا رشته ی کارا url هست ...
php زبون خیلی آسون گیریه و شما حتی میتونی از هم بجای trim استفاده کنی ..
-
تعداد تشکر ها از be099 به دلیل پست مفید
-
September 23rd, 2018, 19:36
#7
عضو انجمن
پاسخ : مشکل ساده در کد php

نوشته اصلی توسط
be099
خواهش میکنم
روش استاندارد اینه که
وقتی که از وجود متغیری مطمئن نیستی همیشه توی php باید اول از isset استفاده کنی و شرط های بعد برای بررسی بیشتره
شما میتونی اینجا trim رو حذف کنی و فکر نکنم مشکلی پیش بیاد من trim رو برای این گذاشتم که اگر کاربر فاصله ی خالی زده بود هم شرط برقرار نشه این دیگه بسته به سلیقه ی سختگیری برنامه نویسی خودتون داره
در کل اینجا روش استاندارد میشه اول isset بعد بررسی وجود رشته ی کارا برای این موقعیت ، که اینجا رشته ی کارا url هست ...
php زبون خیلی آسون گیریه و شما حتی میتونی از
هم بجای trim استفاده کنی ..
بابت وقتی که گذاشتید و کمک بدون چشم داشتتون خیلی خیلی ممنونم.از نوضیحاتتون استفاده کردم.
امیدوارم همیشه موفق و پیروز باشید.
-
تعداد تشکر ها از bloodthirstyb به دلیل پست مفید