Eminim ki, gerçekten basit bir şeyi özlüyorum ama bir feed'i görünümlerime başvurmak için güzel ve temiz bir ilişkisel diziye dönüştürmeye çalışıyorum. Dizi anahtar değeri çiftleriyle php hatası
$headers = get_headers('https://s3-us-west-1.amazonaws.com/sg-retail/' . $file);
$metas = [];
foreach($headers as $meta) {
$metaKey = strtok($meta, ':');
$metaVal = ltrim(strstr($meta, ':'), ':');
array_push($metas, [$metaKey => $metaVal]);
}
Bu sonuç almak:
[{"HTTP\/1.1 200 OK":""},{"x-amz-id-2":" sNsiGT+p8eZaFJ3RxHKLe\/vN4BfJ27Zp6baI+OvXr+9VqSosNfpSfj73b0XnQAEXKsNgTzBSaM4="},{"x-amz-request-id":" 50EE32CE562BDBE1"},{"Date":" Thu, 14 Apr 2016 23:15:03 GMT"},{"x-amz-meta-featured":" Featured Style: DR349"},{"x-amz-meta-postcopy":" Choose a ring as unique as the woman wearing it, with help from @SimonGJewelry!"},{"x-amz-meta-title":" Friday, April 1"},{"x-amz-meta-hashtags":" #Ring #Jewelry #JewelryGram #EngagementRing #Style #Diamonds #HeAsked #SheSaidYes #Love #Wedding #WeddingInspo #SimonG #SimonGJewelry"},{"Last-Modified":" Thu, 14 Apr 2016 18:55:03 GMT"},{"ETag":" \"7042f7d9383e180d9ed8516d2df0428f\""},{"Accept-Ranges":" bytes"},{"Content-Type":" image\/jpeg"},{"Content-Length":" 499591"},{"Server":" AmazonS3"},{"Connection":" close"}]
iyi gibi geliyor bana ama her iki Ben geri zekalı değilim ya ben burada
(onları ayırmak için bazı metin biçimlendirme ile) döngü bu iç içe dizileri doğru biçimlendirmedi.Bu çalışır:
return $twitter_posts[0]["metas"];
Ben anahtar ile belirli bir değişken elde etmeye çalışmak: Bu% beni teels
return $twitter_posts[0]["metas"]["x-amz-meta-postcopy"];
& $ (kapalı:
undefined index
DÜZENLEME: istek başına tüm işlev (belki alakalı değil ama işte gidiyorsunuz):
işlev çağrısı:
$twitter_posts = \App\Asset::fetch('toolkit/social-media/twitter/post-images/');
fonksiyonu:
public static function fetch($path)
{
$files = Storage::files($path);
$data = [];
foreach($files as $file) {
$headers = get_headers('https://s3-us-west-1.amazonaws.com/sg-retail/' . $file);
$metas = [];
foreach($headers as $meta) {
$metaKey = strtok($meta, ':');
$metaVal = ltrim(strstr($meta, ':'), ':');
array_push($metas, [$metaKey => $metaVal]);
}
$array = ['image' => 'https://s3-us-west-1.amazonaws.com/sg-retail/' . $file, 'metas' => $metas];
array_push($data, $array);
}
return $data;
}
bu çağrı:
array(15) {
[0]=>
array(1) {
["HTTP/1.1 200 OK"]=>
string(0) ""
}
[1]=>
array(1) {
["x-amz-id-2"]=>
string(77) " cJgthWyhsfIdX5zgNAmS6fp05iYv7gKt4dhThGtItV5QPv5MgLxYsRCfQ8uEwwuWmsSTWSULE5c="
}
[2]=>
array(1) {
["x-amz-request-id"]=>
string(17) " 2C043CB5EDF8F423"
}
[3]=>
array(1) {
["Date"]=>
string(30) " Thu, 14 Apr 2016 23:33:38 GMT"
}
[4]=>
array(1) {
["x-amz-meta-featured"]=>
string(22) " Featured Style: DR349"
}
[5]=>
array(1) {
["x-amz-meta-postcopy"]=>
string(80) " Choose a ring as unique as the woman wearing it, with help from @SimonGJewelry!"
}
[6]=>
array(1) {
["x-amz-meta-title"]=>
string(16) " Friday, April 1"
}
[7]=>
array(1) {
["x-amz-meta-hashtags"]=>
string(134) " #Ring #Jewelry #JewelryGram #EngagementRing #Style #Diamonds #HeAsked #SheSaidYes #Love #Wedding #WeddingInspo #SimonG #SimonGJewelry"
}
[8]=>
array(1) {
["Last-Modified"]=>
string(30) " Thu, 14 Apr 2016 18:55:03 GMT"
}
[9]=>
array(1) {
["ETag"]=>
string(35) " "7042f7d9383e180d9ed8516d2df0428f""
}
[10]=>
array(1) {
["Accept-Ranges"]=>
string(6) " bytes"
}
[11]=>
array(1) {
["Content-Type"]=>
string(11) " image/jpeg"
}
[12]=>
array(1) {
["Content-Length"]=>
string(7) " 499591"
}
[13]=>
array(1) {
["Server"]=>
string(9) " AmazonS3"
}
[14]=>
array(1) {
["Connection"]=>
string(6) " close"
}
}
... mı Yerine array_push, sen bunun yerine bu, istediğiniz biçimi elde etmek
$array[$key]
sözdizimi kullanabilirsiniz Bir fonksiyon içindeki ilk kod bloğu? Fonksiyon çağrısını görebilir miyiz? $ Metas denen bir dizi var gibi görünüyor ve sonra aniden başka bir $ twitter_posts çağırdı. Oraya nasıl gittin? – larsAnders'dönüş $ twitter_posts [0] ['metas']' ?? Bu nereden geliyor? – Marcus
@larsAnders Tamam, tüm işlevi ekledim. S3 nesnesi metadatasını, bir laravel uygulaması için nesnenin url'si ile birlikte bir diziye ayrıştırmak için bir yöntemdir –