Okuma php flash XML oluşturulan?

2 Cevap php

İşte sorunun parçası 1 (Loading a dynamically generated XML file as PHP in Flash).

Şimdi XML dosyasını okumak için Flash olsun başardık, ama biz sadece gerçek Flaş programından (test film) test sırasında Flash doğru hale görebilirsiniz. Ancak, bazı önemli bilgileri eksik, Flash doğru kılmaz önizleme için online dosya upload zaman (vs küçük, başlıkları, videoyu.).

Additional information:

The SWF file exists on Domain 1 The XML & PHP file both exists on Domain 2 And the HTML file with the embed code lies on Domain 3

Bu bir crossdomain sorun olabilir eğer merak mı ediyorsunuz? Biz Domain 1 & yerinde bu dosyalardan birine sahip Biz de erişebilir 2, ancak Domain 3 için biz orada bir crossdomain.xml dosyası olamaz.

Here is the PHP code:

$xml = new XMLWriter();
$xml->openMemory();
$xml->setIndent(true);
$xml->setIndentString("\t");
$xml->startDocument();
$xml->startElement('data');
$xml->startElement('config');
    $xml->startElement('hex');
        $xml->writeCData('0x' . $widget_profile['background_color']);
    $xml->endElement();
    $xml->startElement('width');
        $xml->writeCData($widget_profile['width']);
    $xml->endElement();
    $xml->startElement('height');
        $xml->writeCData($widget_profile['height']);
    $xml->endElement();
    $xml->startElement('fullscreen');
        $xml->writeCData('false');
    $xml->endElement();
    $xml->startElement('special');
        $xml->writeCData('false');
    $xml->endElement();
    $xml->startElement('specialName');
        $xml->writeCData('Tools & Offers');
    $xml->endElement();
    $xml->startElement('specialLink');
        $xml->writeCData('XXXXXX');
    $xml->endElement();
    $xml->startElement('client');
        $xml->writeCData($widget_profile['site_url']);
    $xml->endElement();
$xml->endElement();

if (count($widget_content) > 0) {
    foreach ($widget_content as $tab) {
        $xml->startElement('tab');
        $xml->writeAttribute('id', $tab['tabname']);

        if (count($tab['video']) > 0) {
            foreach ($tab['video'] as $video) { 
                $video_sql = "select VID, flvdoname, title
                              from video 
                              where VID='" . $video . "'";

                $video_result = $howdini->query($video_sql);

                if ($video_result->rowCount() > 0) {
                    foreach ($video_result as $video_row) {

                        $video_row['flvdoname'] = substr($video_row['flvdoname'], 35, -4);

                        $xml->startElement('vid');
                        $xml->writeAttribute('flv', $video_row['flvdoname']);
                        $xml->writeAttribute('thumb', 'XXXXXXXXX' . $video_row['VID'] . '.jpg');
                        $xml->writeAttribute('title', $video_row['title']);
                        $xml->endElement();
                    }
                }

            }
        }

        $xml->endElement();
    }
}
$xml->endElement();
$xml->endDocument();
header('Content-Type: text/xml; charset=UTF-8');
echo $xml->flush();

Herhangi bir cevap için şimdiden teşekkürler! EDIT: Ben değişikliği dahil ettik ve şimdi Kundakçı XML görür. Şimdi sadece swf dosyası görmeye değil ama sayfanın diğer bölümlerinde swf dosya görebilirsiniz.

2 Cevap

Tam bir çözüm, ama sadece bir veri noktası (kodlama sorunları emmek çünkü). Ben statik dosya ve PHP dosyası ile XML indirilen ve onları diffed, ben şu sonuçları aldı

% diff php.xml static.xml
1c1
< <?xml version="1.0"?>
---
> <?xml version="1.0"?>
10a11
>
19a21
>

Sizin statik dosya bunun başında ekstra bir "non-ASCII" karakteri vardır.

Benim tahminim statik XML dosyası oluşturulan dosya değil PHP UTF-8 BOM vardır, ve flash film UTF-8 dosya bekliyor olmasıdır. I generating a BOM PHP, XML dosyası ile ve yardımcı olur, ya da sunucunun kodlama ayarları ile uğraşmaktan onu görmeye denemek istiyorum.

(Film gömülü web sayfası eşleştirme) şu başlığı çıktılar yüzden size PHP değiştirmeyi deneyin.

header('Content-Type: text/html; charset=UTF-8') 

Ben cevap oldu sanırım. I = UTF-8 benim php içine charset eklemek gerekiyordu. Şimdi her şey planlandığı gibi çalışıyor gibi görünüyor.