Înlocuirea liniuței (-) și underscore (_) cu spațiu

1 iul. 2018, 17:21:30
Vizualizări: 19.6K
Voturi: 0

Vreau să înlocuiesc liniuțele și underscore-urile cu spații în numele acestui fișier imagine:

text1_text2-10212-etc_125.jpg (rezultat al unui plugin)

Codul meu este: $string = preg_replace('/[\-_]/',' ', $file['name']);

Încerc cu str_replace și preg_replace dar nu funcționează. Acest cod face parte din plugin-ul Advanced Image Grabber (în class_image_grabber.php)

//preia URL-ul unei imagini ca argument și o salvează în biblioteca media
// returnează Null în caz de eșec
static public function imageUpload($imageUrl) {
    $file = array();
    $file['name'] = basename($imageUrl);
    $file['tmp_name'] = download_url($imageUrl);
    if (is_wp_error($file['tmp_name'])):
    @unlink($file['tmp_name']);
    return NULL;
    endif;
    $attachmentId = media_handle_sideload($file, 0);
    // creează thumbnail-uri
    $attach_data = wp_generate_attachment_metadata( $attachmentId,  get_attached_file($attachmentId));
    wp_update_attachment_metadata( $attachmentId,  $attach_data );
    return $attachmentId;   
}//EOF
3
Comentarii

$string = str_replace( array( '-', '_' ), ' ' , $file['name'] );. Dar ține minte că aceste modificări vor dispărea după actualizarea pluginului.

Max Yudin Max Yudin
1 iul. 2018 17:33:52

nu a funcționat. rezultatul este text1-text2-10212-etc_125.jpg. dacă elimin un spațiu rezultatul este: text1text210212etc125.jpg. 2 ani nu a fost actualizat. poate autorul a uitat de acest plugin :D

Aube Aube
1 iul. 2018 18:55:20

Ce afișează echo $file['name'];?

Max Yudin Max Yudin
2 iul. 2018 11:07:08
Toate răspunsurile la întrebare 1
1
-1
$file_name = "text1_text2-10212-etc_125.jpg";
$result = preg_replace("/[\-_]/", " ", $file_name);
ECHO $result;

REZULTAT

text1 text2 10212 etc 125.jpg

Link pentru DEMO

3 iul. 2018 12:15:18
Comentarii

Întrebarea include deja acea linie de cod. Ei știu deja acea parte. Partea despre care întreabă este realizarea acesteia în contextul unei imagini încărcate de un plugin. Acest răspuns nu abordează întrebarea reală.

Jacob Peattie Jacob Peattie
3 iul. 2018 13:53:34