1

I have my json from a url feed. Here's a sample below. I'm not doing the foreach loop correctly is the problem

{
    "useLive": true,
    "models": [
        {
            "snapshotUrl": "https://img-eu.whatevercdn.com/eu7/previews/1537971705/5293074",
            "widgetPreviewUrl": "https://img-eu.whatevercdn.com/eu7/previews/1537971705/5293074",
            "id": 5293074,
            "country": "",
            "gender": "female",
            "isNew": false,
            "previewUrl": "https://st.whatevercdn.com/cdn/previews/b/a/a/baa515a42e75d80b0dc1e7a75bf4ea0f-full",
            "previewUrlThumbBig": "https://st.whatevercdn.com/cdn/previews/b/a/a/baa515a42e75d80b0dc1e7a75bf4ea0f-thumb-big",
            "previewUrlThumbSmall": "https://st.whatevercdn.com/cdn/previews/b/a/a/baa515a42e75d80b0dc1e7a75bf4ea0f-thumb-small",
            "broadcastGender": "female",
            "snapshotServer": "eu7",
            "tags": ["autoTagPopular","keyword","keyword2"],
            "topBestPlace": 0,
            "username": "model1",
            "languages": ["en"],
            "stripScore": 998.5,
            "token": "93021860dbebd5ba27e604f6b4b93754"
        },
        {
            "snapshotUrl": "https://img-eu.whatevercdn.com/eu8/previews/1537971700/6492104",
            "widgetPreviewUrl": "https://img-eu.whatevercdn.com/eu8/previews/1537971700/6492104",
            "id": 6492104,
            "country": "",
            "gender": "female",
            "isNew": false,
            "previewUrl": "https://st.whatevercdn.com/cdn/previews/2/b/3/2b366955f5a66d73ee038d43bf77c99b-full",
            "previewUrlThumbBig": "https://st.whatevercdn.com/cdn/previews/2/b/3/2b366955f5a66d73ee038d43bf77c99b-thumb-big",
            "previewUrlThumbSmall": "https://st.whatevercdn.com/cdn/previews/2/b/3/2b366955f5a66d73ee038d43bf77c99b-thumb-small",
            "broadcastGender": "female",
            "snapshotServer": "eu8",
            "tags": ["autoTagPopular","keyword","keyword2"],
            "topBestPlace": 0,
            "username": "model2",
            "languages": [],
            "stripScore": 997.25,
            "token": "2c6ee95270f6faf76cd33321732136e3"
        }
    ],
    "ttl": 15,
    "tagType": "F+T",
    "tagName": "Featured",
    "defaultTags": [
        {
            "name": "whatever1",
            "url": "/tags/whatever1"
        },
        {
            "name": "whatever2",
            "url": "/tags/whatever2"
        },
        {
            "name": "whatever3",
            "url": "/tags/whatever3"
        }
    ],
    "serverTime": "2018-09-26T14:23:00Z"
}

Here's my php code so far. I've tried quite a few different things. I normally use xml feeds which seem to be easy for me to setup for what I need. I'm not sure what I'm missing here.

$url = 'https://whatever.com/api/external/v4/widget?userId=whatever&tag=featured'; // path to your JSON file
$data = file_get_contents($url); // put the contents of the file into a variable
$performers = json_decode($data, true); // decode the JSON feed

foreach ($performers as $performer) {
  $info = $performer[0]["username"];
  echo $info;
}

I'm only getting the first username and then error messages.

Warning: Illegal string offset 'username' in /whatever

Can anyone help with this?

1 Answer 1

1

You should use $performers['models'] array in foreach and then get username it will work fine try the following code

$performers = json_decode($data, true); 
if(isset($performers['models'])){   
    foreach ($performers['models'] as $performer) {
        $info = (isset($performer["username"])) ? $performer["username"] : '';
        echo $info;
        echo "<br>";
    }   
}

Output

model1
model2
Sign up to request clarification or add additional context in comments.

1 Comment

also check for username if exists and not empty

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.