php
  • string
  • substring
  • 2014-05-14 2 views -3 likes 
    -3

    Я пробовал substr и сплит, но не могу понять, как получить эти данные.Извлечь 2 подстроки из строки

    $string = 'aDetails.push(new Array("XADP10520", "XADP10520 - ec Example Title"));'; 
    
    //$label = 'XADP10520'; 
    
    //$title = 'Example Title'; 
    
    +1

    Итак, почему '$ title' равен просто« Примеру заголовка », а не полной строке« XADP10520 - ec Example Title », как в примере? –

    +0

    Что вы пытаетесь сделать? Это похоже на попытку разобрать javascript в php, что просто не имеет смысла. – Arjan

    +0

    @JonathanKuhn Возможно, потому что 'XADP10520' является ярлыком и не должен быть частью названия. Тогда запуск названия с '-' может быть странным. –

    ответ

    0

    Вы можете использовать основное регулярное выражение для извлечения обеих частей с помощью preg_match().
    Вот пример:

    $string = 'aDetails.push(new Array("XADP10520", "XADP10520 - ec Example Title"));'; 
    
    preg_match('/\("(?<label>.+)", "\1 - ec (?<title>.+)"\)/i', $string, $parts); 
    
    $label = $parts['label']; 
    $title = $parts['title']; 
    
    echo $label; // XADP10520 
    echo $title; // Example Title 
    

    Пожалуйста, обратите внимание, я предположил, оба ключа, чтобы быть таким же, и - ec часть будет удалена.

    -1

    Не уверен, что вы пытаетесь сделать, но что-то, как это должно работать:

    <?php 
    $string = 'aDetails.push(new Array("XADP10520", "XADP10520 - ec Example Title"));'; 
    $tmps = explode('"', $string); //NOT SPLIT.. DEPRECATED 
    $label = $tmps[1]; 
    $title = str_replace($label.' - ec ','',$tmps[3]); 
    ?> 
    

    Не тестировался, и код довольно много бесполезной для этого конкретного примера, за исключением, но он должен работать

    Смежные вопросы