SEO Сообщество: Спрашивайте и помогайте

Присоединяйтесь к сообществу профессиональных веб-мастеров PR-CY, отвечайте на вопросы коллег и задавайте свои.

Q&A SEO

Как правильно использовать if в данном случае.php.

ildar58 ildar58  
1
  24.08.2015 16:34       1 203    
Написал код с условными операторами, вида если определенный url есть, то отображается текст, если его нет, то и текста нет, но допустил ошибку, не знаю в чем, в php плох. Подскажите.
<?php$url = 'url';if (strlen($url) > 0){echo "текст есть"}else{echo "текста нет";}?>

Под url вот такой код подразумевается:
<?php echo get_post_meta($post->ID, 'wpcf-file_site', true);?>

Это дополнительное поле от плагина types, в которое вписывается url

Ответы на пост (12) Написать ответ
otmorozkov-net otmorozkov-net
11
24.08.2015 16:45
после 'echo "текст есть"' не поставили ; (точку с запятой). Также вместо strlen() можете использовать !empty() или $url!=''', или просто if ($url) echo '.....';
0
otmorozkov-net otmorozkov-net
11
24.08.2015 16:56
если я правильно понял пользовательская ф-ция get_post_meta возвращает результат, который необходимо проверить на существование, тогда можно так:
if (get_post_meta($post->ID, 'wpcf-file_site', true)) echo 'текст есть';
else echo 'текста нет';
0
ildar58 ildar58
1
26.08.2015 21:16
Ваш код работает, но проблема возникает из-за того, что вместо текст есть вот такой код
Скачать файл
Смотреть онлайн

0
ildar58 ildar58
1
26.08.2015 21:17
В общем вместо текст есть html код
0
otmorozkov-net otmorozkov-net
11
28.08.2015 00:08
Ну значит его и выводите, проверьте чтоб были заэкранированы одинарные кавычки (обратным слэшем \), если используете их при выводе строки в echo, или вместо них в html поставьте двойные.
0
ildar58 ildar58
1
30.08.2015 01:08
В таком случае все полностью отказывается работать, точнее говоря <?php echo get_post_meta($post->ID, 'wpcf-file_site', true);?> этот код не работает
0
otmorozkov-net otmorozkov-net
11
31.08.2015 23:17
Если в выводимом html коде есть теги <?php ?>, то переделайте вывод, используя несколько строк и конкатенацию (оператор точка . - объединяет строки в одну строку) Пример: есть html: <?php echo 'содержимое тега div'; ?>. Этот блок необходимо вывести с помощью echo. Тогда можно переделать следующим образом: echo ''.'содержимое тега div'.''; опустив при этом открывающие и закрывающие теги php и конструкцию echo внутри них.
0
otmorozkov-net otmorozkov-net
11
31.08.2015 23:25
Пример не корректно отобразился. Исключены открывающие и закрывающие теги div, как в примере (перед и после блока <?php ?>), так и в переделанном варианте в одинарных кавычках. Пример: есть блок <div><?php echo 'содержимое тега div'; ?></div> Переделанный вариант: echo '<div>'.<?php echo 'содержимое тега div'; ?>.'</div>';
0
otmorozkov-net otmorozkov-net
11
31.08.2015 23:27
только без тегов <?php ?> и echo ))
0
ildar58 ildar58
1
02.09.2015 22:44
https://yadi.sk/d/ALmyy5NJiqGnv вот код, который хочу вставить, сколько пытался сделать по вашему совету, ничего не выходило.
0
otmorozkov-net otmorozkov-net
11
02.09.2015 23:11
в вашем случае можно поступить 2 способами: все описаны в файле - http://rusfolder.com/44160710
0
ildar58 ildar58
1
03.09.2015 01:17
Благодарю за помощь, выручили
0