2015-04-03 2 views
0

Я прочитал на php-функциях wordwrap и chunk_split, но я не могу понять, как разбить строку на более мелкие куски, когда нет физических перерывов в строка.php break string на более мелкие части на основе строки, а не длины

У меня есть URL-закодированные строки:

%5B%7B%22partNumber%22%3A%2243160-1104%22%7D%2C%7B%22partNumber%22%3A%2242410-6170%22%7D%2C%7B%22partNumber%22%3A%2222-10-2021%22%7D%2C%7B%22partNumber%22%3A%2255091-0674%22%7D%2C%7B%22partNumber%22%3A%2243160-0106%22%7D%2C%7B%22partNumber%22%3A%2287832-1420%22%7D%2C%7B%22partNumber%22%3A%2273415-1001%22%7D%2C%7B%22partNumber%22%3A%2253627-1274%22%7D%2C%7B%22partNumber%22%3A%2243650-0510%22%7D%5D 

кучу номера деталей я питающихся в API. Этот API может принимать только 500 символов за один раз до того, как он вернет мне false, поэтому мне нужно сломать свою строку до 500 символов, но все равно быть полной, доступной для поиска строкой .

Значение - однако он сломался, каждая итерация этой новой строки должна быть

  • под 500 символов
  • конец с B%22, так что следующая итерация строка начинается с
  • partNumber%22

Я не уверен, как бы я сделать это с помощью wordwrap + explodemethod как я когда-либо использовал это, чтобы сломать строку по длине. Есть ли функция, подобная этой функции, которую я могу использовать, когда я могу указать точную строку для разрыва после стольких символов?

+0

Привет, проверьте свою строку путем декодирования на http://meyerweb.com/eric/tools/dencoder/. Ваша строка - это строка JSON, и вы можете просто ее декодировать, а затем проанализировать ее. Это был бы лучший способ. Поддерживается ли API? Если это так, просто передайте чистый JSON после преобразования. – Hozikimaru

ответ

0

использование explode.

$apiStrings = explode("B%22", $string); 
foreach($apiStrings as $apiString) 
{ 
    //Do request 
} 
+0

Я думал об этом, но это заставляет меня делать ~ 500 поисков, что невероятно медленно. Имея длину общего номера детали, я могу сделать около 50 частей в одном поиске, поэтому я бы предпочел не разбить его на что-то маленькое .... если это возможно. –

+0

Вы можете взорвать, проверить длину строки и объединить строки вместе, чтобы сформировать более длинный запрос. –

+0

Это неправильный путь, он не должен разбить эту строку. Строка - это json, когда она декодируется. Поэтому для обеспечения будущих потребностей должно быть написано нечто более совместимое и единообразное. – Hozikimaru

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