PDA

View Full Version : شرطی فقط برای یک نوع عکس



clip2ni
پنج شنبه 20 بهمن 1390, 07:10 صبح
با سلام

من میخوام یک شرط رو فقط برای عکس هایی با پسوند gif بزارم.میتونید راهنمایی کنید لطفا؟

می خوام این دو تا کار فقط برای عکس های gif رخ بده و برای سایر عکس ها اتفاقی نیفته

// $message = str_replace('../includes/timthumb.php?src=', '', $message);
// $message = str_replace('&q=60', '', $message);

MMSHFE
پنج شنبه 20 بهمن 1390, 07:29 صبح
آدرس عکس رو توی چه متغیری ذخیره کردین؟ من فرض کردم اسم متغیر شما image$ هست. این کد رو برحسب همین متغیر نوشتم:


if(strtolower(substr($image, -3)) == 'gif') {
$message = str_replace('../includes/timthumb.php?src=', '', $message);
$message = str_replace('&q=60', '', $message);
}

لطفاً کد رو برحسب متغیر خودتون، تغییر بدین. موفق باشید.

clip2ni
پنج شنبه 20 بهمن 1390, 14:16 عصر
آدرس عکس رو توی چه متغیری ذخیره کردین؟ من فرض کردم اسم متغیر شما image$ هست. این کد رو برحسب همین متغیر نوشتم:


if(strtolower(substr($image, -3)) == 'gif') {
$message = str_replace('../includes/timthumb.php?src=', '', $message);
$message = str_replace('&q=60', '', $message);
}

لطفاً کد رو برحسب متغیر خودتون، تغییر بدین. موفق باشید.

با سلام

یعنی چی در چه متغیری ذخیره شده؟!!!

MMSHFE
پنج شنبه 20 بهمن 1390, 14:21 عصر
منظورم اینه که آدرس عکس رو از کجا میخونید؟ توی دیتابیس هست؟ توی پوشه خاصی هست و اسمش رو استخراج میکنید؟ بالأخره اسم و آدرس عکس رو یکجا توی متغیری ذخیره میکنید تا بعداً ازش استفاده کنید دیگه. درصورت امکان کد کامل رو بگذارین تا دقیقاً بتونم راهنمایی کنم. موفق باشید.

clip2ni
پنج شنبه 20 بهمن 1390, 14:34 عصر
کد خیلی طولانیه.

اتچ کنم؟

از یک فیلد یک تیبل دیتابیس فراخوانی میشه و مال phpnuke هم هست.اما نمیدونم کجا تعریف شده تو کد

clip2ni
پنج شنبه 20 بهمن 1390, 14:58 عصر
داره از فیلد post_text از تیبل _posts میخونه

clip2ni
پنج شنبه 20 بهمن 1390, 14:59 عصر
if(strtolower(substr($row['post_text'], -3)) == 'gif') {
$message = str_replace('../includes/timthumb.php?src=', '', $message);
$message = str_replace('&q=60', '', $message);
}

این باید باشه احتمالا اما کاری انجام نداد !!

MMSHFE
پنج شنبه 20 بهمن 1390, 19:33 عصر
یکبار ['row['post_text$ رو echo کنید ببینید چی چاپ میشه؟

xoogle.ir
پنج شنبه 20 بهمن 1390, 20:08 عصر
به نظر میاد ['row['post_text$ متن پست باشه آیا شما میخواهید این کد برای عکس هایی که آدرسشون در متن پست هست اتفاق بیفته؟ اگر این طوره باید ابتدا عکس ها رو از توی متن جدا کنید.

clip2ni
پنج شنبه 20 بهمن 1390, 21:38 عصر
به نظر میاد ['row['post_text$ متن پست باشه آیا شما میخواهید این کد برای عکس هایی که آدرسشون در متن پست هست اتفاق بیفته؟ اگر این طوره باید ابتدا عکس ها رو از توی متن جدا کنید.

بله دقیقا

این محتوای کل تاپیک است.چه جوری عکس رو بکشم بیرون؟

MMSHFE
پنج شنبه 20 بهمن 1390, 22:21 عصر
باید از عبارات با قاعده استفاده کنید. یک نمونه از متن پست رو اینجا بگذارین ببینیم چه دستوری براش مناسبه. موفق باشید.

clip2ni
جمعه 21 بهمن 1390, 05:54 صبح
مشاهده پیشرفته ترین تکنولوژی جهان در بین دانشجویان ایرانی!!!



http://up.clip2ni.com/i/images/hpb44yk2ul211iilgtoc.jpg (http://up.clip2ni.com/i/)

MMSHFE
جمعه 21 بهمن 1390, 07:39 صبح
عزیز کد مربوط به یک تصویر GIF رو هم میشه بگذارین؟ منظورم مقاله ای که تصویرش از نوع gif باشه. ممنون میشم.

clip2ni
جمعه 21 بهمن 1390, 07:43 صبح
سیستم phpbb است.کدهایی که ایمپورت میشه دقیقا مثل همین سایته.الآنم من کد اصلی رو کپی کردم اما اینجا تبدیل شده !!

82350

MMSHFE
جمعه 21 بهمن 1390, 08:03 صبح
ببینید دوست عزیز، شما توی کدی که ابتدای این تاپیک گذاشتین، گفتین که این دستورات میخواین فقط روی تصاویر GIF کار کنه:


$message = str_replace('../includes/timthumb.php?src=', '', $message);
$message = str_replace('&q=60', '', $message);

اما توی خروجی نمونه ای که گذاشتین، اصلاً عبارات =includes/timthumb.php?src/.. و یا 60=q& و مشابه اون بکار نرفته. حالا احتمال داره این عبارتها فقط برای تصاویر GIF ظاهر بشه که میخواین اونها رو حذف کنید چون دستوراتی که گذاشتین، عمل حذف این عبارات رو انجام میدن. اگه میشه خروجی یک تصویر GIF رو هم بگذارین تا ببینیم چطور باید این کدها رو از توش حذف کنیم. موفق باشید.

clip2ni
جمعه 21 بهمن 1390, 08:14 صبح
http://www.clip2ni.com/includes/timthumb.php?src=http://www.clip2ni.com/Forum/images/smilies/217.gif&q=60

clip2ni
شنبه 22 بهمن 1390, 00:35 صبح
متاسفانه جوابی داده نشد !

MMSHFE
شنبه 22 بهمن 1390, 11:10 صبح
$find = array();
preg_match_all('#((.*)src=)(.*).gif(.*)#i', $message, $find);
$message = str_replace($find[1], '', $message);
$message = str_replace($find[4], '', $message);

دوست عزیز یکم صبور باشین. بخدا روبات نیستیم! :چشمک:

clip2ni
شنبه 22 بهمن 1390, 12:01 عصر
میشه یه توضیح درمورد این بدی؟!!

الآن کل کدی که باید استفاده بشه چیه؟

clip2ni
شنبه 22 بهمن 1390, 12:15 عصر
if(strtolower(substr($row['post_text'], -3)) == 'gif') {
$find = array();
preg_match_all('#((.*)src=)(.*).gif(.*)#i', $message, $find);
$message = str_replace('../includes/timthumb.php?src=', '', $message);
$message = str_replace('&q=60', '', $message);
}


اینو زدم کار نکرد

MMSHFE
شنبه 22 بهمن 1390, 14:54 عصر
$find = array();
preg_match_all('#((.*)src=)(.*).gif(.*)#i', $row['post_text'], $find);
$row['post_text'] = str_replace('../includes/timthumb.php?src=', '', $row['post_text']);
$row['post_text'] = str_replace('&q=60', '', $row['post_text']);

clip2ni
شنبه 22 بهمن 1390, 17:33 عصر
$find = array();
preg_match_all('#((.*)src=)(.*).gif(.*)#i', $row['post_text'], $find);
$row['post_text'] = str_replace('../includes/timthumb.php?src=', '', $row['post_text']);
$row['post_text'] = str_replace('&q=60', '', $row['post_text']);


این که کلا کار نمیکنه اما این کد تغییرات رو در همه عکس ها انجام میده


$find = array();
preg_match_all('#((.*)src=)(.*).gif(.*)#i', $message, $find);
$message = str_replace('../includes/timthumb.php?src=', '', $message);
$message = str_replace('&q=60', '', $message);

MMSHFE
یک شنبه 23 بهمن 1390, 06:29 صبح
پس از قرار معلوم مشکل برطرف شد. ظاهراً فقط مشکل بخاطر شرط if بود. درسته؟

clip2ni
یک شنبه 23 بهمن 1390, 09:09 صبح
پس از قرار معلوم مشکل برطرف شد. ظاهراً فقط مشکل بخاطر شرط if بود. درسته؟

نه دیگه

این برای همه عکس ها انجام میده در حالیکه من فقط برای gif می خواستم

MMSHFE
یک شنبه 23 بهمن 1390, 09:25 صبح
این چطور؟


$find = array();
preg_match_all('#(.*)\.giF#‎‎‎‎‎‎i', $message, $find);
if(count($find[1]) > 0) {
$message = str_replace('../includes/timthumb.php?src=', '', $message);
$message = str_replace('&q=60', '', $message);
}

clip2ni
یک شنبه 23 بهمن 1390, 09:39 صبح
این که کلا ارور میده

[phpBB Debug] PHP Warning: in file /viewtopic.php on line 1625: preg_match_all() [function.preg-match-all (http://www.clip2ni.com/Forum/function.preg-match-all)]: Unknown modifier '�'

MMSHFE
یک شنبه 23 بهمن 1390, 09:52 صبح
من که تستش کردم درست کار میکنه. البته بجای F بزرگ، f کوچک بگذارین. تگ PHP سایت برنامه نویس یکم کد رو بهم میریزه.

clip2ni
یک شنبه 23 بهمن 1390, 09:57 صبح
متاسفانه باز هم ارور داد

خیلی اذیتتون کردما!

MMSHFE
یک شنبه 23 بهمن 1390, 10:04 صبح
میشه کدی که گذاشتین رو اینجا بنویسید؟

clip2ni
یک شنبه 23 بهمن 1390, 10:05 صبح
$find = array();
preg_match_all('#(.*)\.giF#ýýýi', $message, $find)
if(count($find) > 0) {
$message = str_replace('../includes/timthumb.php?src=', '', $message);
$message = str_replace('&q=60', '', $message);
}

MMSHFE
یک شنبه 23 بهمن 1390, 10:27 صبح
خوب عزیز دل، بعد از # و قبل از i نباید ý بیاد! اونها رو حذف کنید. ضمناً بجای find$ توی تابع count از $find[1] استفاده کنید.

clip2ni
یک شنبه 23 بهمن 1390, 10:31 صبح
شما اینو میگی دیگه

اینم ارور میده.من همین کد رو که کپی میکنم تو نمایش تغییر میدش برنامه نویس

82508

MMSHFE
یک شنبه 23 بهمن 1390, 10:43 صبح
این تصاویر رو ببینید:
82510
82509
همونطور که میبینید، کدی که گذاشتم، رشته حاوی عکس jpg رو تغییر نداده. مطابق همین کد عمل کنید، منتها بجای $str1 و $str2 از message$ استفاده کنید:


$find = array();
preg_match_all('#(.*)\.gif#‎‎‎‎‎‎‎i' , $message, $find);
if(count($find[1]) > 0) {
$message = str_replace('../includes/timthumb.php?src=', '', $message);
$message = str_replace('&q=60', '', $message);
}

موفق باشید.