Проблема с отображением строки php как функции javascript - PullRequest
1 голос
/ 26 июля 2011

Я использую Jaipho для отображения изображений в мобильной галерее из пользовательского плагина Wordpress.Тема WordPress, использующая галерею Jaipho, отображается с помощью плагина WP-mobile-Detector.

Проблема, с которой я сталкиваюсь, заключается в том, что я использую php для сбора URL-адресов к фотографиям, чтобы отобразить функцию для анализапо JavaScriptЯ взял полученный статический код JavaScript из инспектора элементов Safari и вставил его в свой код, закомментировав php, и он работает везде.Safari для iOS, похоже, не нравится код JavaScript, сгенерированный php.

  • HTML 5
    • <DOCTYPE html>
    • <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    • <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
  • PHP 5.2.6
  • Wordpress 3.2.1

Когда он работает:

  • Пользовательский агент установлен на iPhone в Safari
  • Статический код заменяет сгенерированный php код

    $imageArray = $case->images_assc_array();  
    $i = 0;  
    foreach($imageArray['views'] as $view_name => $view_images) {  
       $before_img = $view_images['before'];  
       $after_img = $view_images['after'];  
    
       echo "dao.ReadImage($i,'".$before_img->medium_size()."','".$before_img->small_size()."','".ucfirst($view_name)." Before','".$case->description."');";  
       $i++;  
       echo "dao.ReadImage($i,'".$after_img->medium_size()."','".$after_img->small_size()."','".ucfirst($view_name)." After','".$case->description."');";  
       $i++;  
    }
    

Ожидаемый пример сгенерированного вывода:

    dao.ReadImage( 0,'/wp-content/uploads/rmgallery_images/medium/408/before-front.jpg','/wp-content/uploads/rmgallery_images/small/408/before-front.jpg','Front Before','38 year old who underwent a tummy tuck.');  
    dao.ReadImage( 1,'/wp-content/uploads/rmgallery_images/medium/410/after-front.jpg','/wp-content/uploads/rmgallery_images/small/410/after-front.jpg','Front After','38 year old who underwent a tummy tuck.');
    dao.ReadImage( 2,'/wp-content/uploads/rmgallery_images/medium/409/before-side.jpg','/wp-content/uploads/rmgallery_images/small/409/before-side.jpg','Side Before','38 year old who underwent a tummy tuck.');
    dao.ReadImage( 3,'/wp-content/uploads/rmgallery_images/medium/411/after-side.jpg','/wp-content/uploads/rmgallery_images/small/411/after-side.jpg','Side After','38 year old who underwent a tummy tuck.');

Ответы [ 3 ]

2 голосов
/ 27 июля 2011

Благодарим @Marc B и @ linuxrules94 за комбинированное решение:

<?php
$imageArray = $case->images_assc_array();
$i = 0;

    foreach($imageArray['views'] as $view_name => $view_images):
        $before_img = $view_images['before'];
        $after_img = $view_images['after'];
    ?>

        dao.ReadImage(<?=json_encode($i);?>, <?=json_encode($before_img->medium_size());?>,<?=json_encode($before_img->small_size());?>,<?=json_encode(ucfirst($view_name));?> + " Before", <?=json_encode(stripslashes($case->description));?>);
        <? $i++; ?>
        dao.ReadImage(<?=json_encode($i);?>, <?=json_encode($after_img->medium_size());?>,<?=json_encode($after_img->small_size());?>,<?=json_encode(ucfirst($view_name));?> + " After", <?=json_encode(stripslashes($case->description));?>);
        <? $i++;
    endforeach; ?>

Спасибо всем!

2 голосов
/ 26 июля 2011

У вас есть несколько несоответствующих цитат:

echo dao.ReadImage($i,'".$before...

echo "dao.ReadImage($i,'".$after...

и так далее.

Попробуйте это:

echo 'dao.ReadImage('.$i.',"'.$before_img->medium_size().'","'.$before_img->small_size().'","'.ucfirst($view_name).' Before","'.$case->description.'");';
echo 'dao.ReadImage('.$i.',"'.$after_img->medium_size().'","'.$after_img->small_size().'","'.ucfirst($view_name).' After","'.$case->description.'");';
1 голос
/ 26 июля 2011

Как насчет использования heredocs: http://php.net/manual/en/language.types.string.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...