Hướng dẫn explode double quotes php - bùng nổ dấu ngoặc kép php

Tôi muốn chạy đa URL cùng một lúc, nhưng tôi không muốn sao chép và dán nó nhiều lần vào một mảng. Tôi muốn đặt tất cả như một chuỗi và phát nổ nó để trích dẫn gấp đôi với dấu phẩy giống như chúng ta viết trong một mảng.

Tôi muốn từ điều này

$urls = "
    http://
    http://
    http://
    http://";

Vào điều này

$urls = array("http://","http://","http://","http://");

Đây là những gì tôi đã làm cho đến nay

    <?php
    $urls = "
        http://
        http://
        http://";
     $url = preg_match_all('/"(?:\\\\.|[^\\\\"])*"|\S+/', $urls, $matches);
    foreach($url as $ul){
        echo $ul[1];
    }
?>

Đã hỏi ngày 9 tháng 11 năm 2015 lúc 3:29Nov 9, 2015 at 3:29

Hướng dẫn explode double quotes php - bùng nổ dấu ngoặc kép php

1

<?php
$urls = "
    http://
    http://
    http://
    http://";

var_dump(array_map(function($s){return trim($s);},explode(PHP_EOL,trim($urls))));

Xóa mảng trên một dòng mới, trước tiên cắt giảm khoảng trắng từ đầu và cuối. Sau đó chuyển mảng này qua

<?php
$urls = "
    http://
    http://
    http://
    http://";

var_dump(array_map(function($s){return trim($s);},explode(PHP_EOL,trim($urls))));
1 trong đó mỗi phần tử được cắt lại để loại bỏ khoảng trắng khỏi mỗi phần tử.

Đã trả lời ngày 9 tháng 11 năm 2015 lúc 3:34Nov 9, 2015 at 3:34

ElefantphaceelefantphaceElefantPhace

3.7763 huy hiệu vàng19 Huy hiệu bạc36 Huy hiệu đồng3 gold badges19 silver badges36 bronze badges

Trên thực tế, bạn có thể làm cho mã của mình hoạt động với một vài thay đổi

<?php
    $urls = "
        http://a
        http://b
        http://c";
     $url = preg_match_all('/"(?:\\\\.|[^\\\\"])*"|\S+/', $urls, $matches);

    if($url != false && $url > 0 && array_key_exists(0, $matches)) {
        foreach($matches[0] as $ul){
            echo $ul . "<br />";
        }
    }
?>

Đã trả lời ngày 9 tháng 11 năm 2015 lúc 3:36Nov 9, 2015 at 3:36

Hướng dẫn explode double quotes php - bùng nổ dấu ngoặc kép php

Bạn có thể sử dụng hàm preg_split trên chuỗi được cắt tỉa hoặc bằng cờ

<?php
$urls = "
    http://
    http://
    http://
    http://";

var_dump(array_map(function($s){return trim($s);},explode(PHP_EOL,trim($urls))));
2.

$urls = preg_split('/\s+/', trim($urls));

<?php
$urls = "
    http://
    http://
    http://
    http://";

var_dump(array_map(function($s){return trim($s);},explode(PHP_EOL,trim($urls))));
3 khớp với một hoặc nhiều khoảng trắng.

Xem bản demo tại eval.in

Đã trả lời ngày 9 tháng 11 năm 2015 lúc 4:02Nov 9, 2015 at 4:02

Hướng dẫn explode double quotes php - bùng nổ dấu ngoặc kép php

Bong bóng bong bóng bobblebobble bubble

14.2k3 Huy hiệu vàng26 Huy hiệu bạc42 Huy hiệu đồng3 gold badges26 silver badges42 bronze badges

Bạn có thể làm điều đó như thế này;

$urls = "http:// http:// http:// http://";
$myArray= explode(" ", $urls);
echo  '<pre>';
var_dump($myArray);
echo  '<pre>';

bạn cần thêm dấu phân tách trong đó

Đã trả lời ngày 9 tháng 11 năm 2015 lúc 3:32Nov 9, 2015 at 3:32

Hướng dẫn explode double quotes php - bùng nổ dấu ngoặc kép php

Blambblambblamb

4.1624 Huy hiệu vàng30 Huy hiệu bạc49 Huy hiệu đồng4 gold badges30 silver badges49 bronze badges

52

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.Learn more.
Learn more.

Làm cách nào tôi có thể phát nổ chuỗi sau:

Lorem ipsum "dolor sit amet" consectetur "adipiscing elit" dolor

vào trong

array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")

Để văn bản trong trích dẫn được coi là một từ duy nhất.

Đây là những gì tôi có bây giờ:

$mytext = "Lorem ipsum %22dolor sit amet%22 consectetur %22adipiscing elit%22 dolor"
$noquotes = str_replace("%22", "", $mytext");
$newarray = explode(" ", $noquotes);

Nhưng mã của tôi chia từng từ thành một mảng. Làm thế nào để tôi tạo ra các từ bên trong dấu ngoặc kép được coi là một từ?

Đã hỏi ngày 4 tháng 2 năm 2010 lúc 19:08Feb 4, 2010 at 19:08Feb 4, 2010 at 19:08

2

Bạn có thể sử dụng

array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")
3:
$urls = array("http://","http://","http://","http://");
1

sẽ sản xuất:

$urls = array("http://","http://","http://","http://");
2

Và như bạn có thể thấy, nó cũng chiếm các trích dẫn thoát ra bên trong các chuỗi được trích dẫn.

CHỈNH SỬA

Một lời giải thích ngắn:

$urls = array("http://","http://","http://","http://");
3

Và trong trường hợp khớp

array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")
4 thay vì báo giá kép, bạn sẽ làm:
$urls = array("http://","http://","http://","http://");
5

Đã trả lời ngày 4 tháng 2 năm 2010 lúc 19:18Feb 4, 2010 at 19:18Feb 4, 2010 at 19:18

Bart Kiersbart KiersBart KiersBart Kiers

163K35 Huy hiệu vàng290 Huy hiệu bạc284 Huy hiệu Đồng35 gold badges290 silver badges284 bronze badges35 gold badges290 silver badges284 bronze badges

16

Điều này sẽ dễ dàng hơn nhiều với

array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")
5.
$urls = array("http://","http://","http://","http://");
7

Mang đến cho bạn

$urls = array("http://","http://","http://","http://");
8

Đã trả lời ngày 7 tháng 7 năm 2011 lúc 10:56Jul 7, 2011 at 10:56Jul 7, 2011 at 10:56

PetahpetahPetahPetah

44.7K27 Huy hiệu vàng155 Huy hiệu bạc211 Huy hiệu đồng27 gold badges155 silver badges211 bronze badges27 gold badges155 silver badges211 bronze badges

6

Bạn cũng có thể thử chức năng nhiều nổ tung này

$urls = array("http://","http://","http://","http://");
9

Taryn

Phim thương hiệu vàng 238K5555 gold badges362 silver badges403 bronze badges55 gold badges362 silver badges403 bronze badges

Đã trả lời ngày 25 tháng 5 năm 2013 lúc 9:10May 25, 2013 at 9:10May 25, 2013 at 9:10

NikznikzNikzNikz

1.2881 Huy hiệu vàng18 Huy hiệu bạc24 Huy hiệu đồng1 gold badge18 silver badges24 bronze badges1 gold badge18 silver badges24 bronze badges

1

Tôi đã đến đây với một vấn đề phân tách chuỗi phức tạp tương tự như thế này, nhưng không có câu trả lời nào ở đây đã làm chính xác những gì tôi muốn - vì vậy tôi đã viết của riêng mình.

Tôi đang đăng nó ở đây chỉ trong trường hợp nó hữu ích cho người khác.

Đây có lẽ là một cách rất chậm và không hiệu quả để làm điều đó - nhưng nó hoạt động với tôi.

array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")
0

Việc sử dụng là như sau.

array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")
6 mất 5 đối số:
  1. Một mảng các ký tự mở một khối - ví dụ:
    array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")
    
    7,
    array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")
    
    8, v.v.
  2. Một mảng các ký tự đóng một khối - ví dụ:
    array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")
    
    9,
    $mytext = "Lorem ipsum %22dolor sit amet%22 consectetur %22adipiscing elit%22 dolor"
    $noquotes = str_replace("%22", "", $mytext");
    $newarray = explode(" ", $noquotes);
    
    0, v.v.
  3. Một mảng các ký tự chuyển đổi một khối - ví dụ:
    $mytext = "Lorem ipsum %22dolor sit amet%22 consectetur %22adipiscing elit%22 dolor"
    $noquotes = str_replace("%22", "", $mytext");
    $newarray = explode(" ", $noquotes);
    
    1,
    $mytext = "Lorem ipsum %22dolor sit amet%22 consectetur %22adipiscing elit%22 dolor"
    $noquotes = str_replace("%22", "", $mytext");
    $newarray = explode(" ", $noquotes);
    
    2, v.v.
  4. Một mảng các ký tự sẽ gây ra sự chia rẽ vào phần tiếp theo.
  5. Chuỗi để làm việc trên.

Phương pháp này có thể có lỗ hổng - chỉnh sửa được chào đón.

Đã trả lời ngày 20 tháng 5 năm 2015 lúc 17:13May 20, 2015 at 17:13May 20, 2015 at 17:13

Trong một số tình huống,

$mytext = "Lorem ipsum %22dolor sit amet%22 consectetur %22adipiscing elit%22 dolor"
$noquotes = str_replace("%22", "", $mytext");
$newarray = explode(" ", $noquotes);
3 ít được biết đến có thể chứng minh hữu ích:
array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")
1

Results:

array("Lorem", "ipsum", "dolor sit amet", "consectetur", "adipiscing elit", "dolor")
2

Đã trả lời ngày 1 tháng 11 năm 2014 lúc 20:36Nov 1, 2014 at 20:36Nov 1, 2014 at 20:36

Cleongcleongcleongcleong

6,9474 Huy hiệu vàng29 Huy hiệu bạc40 Huy hiệu đồng4 gold badges29 silver badges40 bronze badges4 gold badges29 silver badges40 bronze badges