Заменить дефис (-) и подчеркивание (_) на пробел

1 июл. 2018 г., 17:21:30
Просмотры: 19.6K
Голосов: 0

Мне нужно заменить дефисы и подчеркивания на пробелы в имени этого файла изображения:

text1_text2-10212-etc_125.jpg (результат работы плагина)

Мой код: $string = preg_replace('/[\-_]/',' ', $file['name']);

Я пробовал использовать str_replace и preg_replace, но это не работает. Этот код является частью плагина Advanced Image Grabber (в файле class_image_grabber.php)

// Принимает URL изображения в качестве аргумента и сохраняет его в медиабиблиотеку
// Возвращает Null при ошибке
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);
    // Создаем миниатюры
    $attach_data = wp_generate_attachment_metadata( $attachmentId,  get_attached_file($attachmentId));
    wp_update_attachment_metadata( $attachmentId,  $attach_data );
    return $attachmentId;   
}//EOF
3
Комментарии

$string = str_replace( array( '-', '_' ), ' ' , $file['name'] );. Но помните, что эти изменения исчезнут после обновления плагина.

Max Yudin Max Yudin
1 июл. 2018 г. 17:33:52

Не сработало. Результат: text1-text2-10212-etc_125.jpg. Если я убираю пробел, результат: text1text210212etc125.jpg. 2 года нет обновлений. Возможно, автор забыл про этот плагин :D

Aube Aube
1 июл. 2018 г. 18:55:20

Что выводит echo $file['name'];?

Max Yudin Max Yudin
2 июл. 2018 г. 11:07:08
Все ответы на вопрос 1
1
-1
$file_name = "text1_text2-10212-etc_125.jpg";
$result = preg_replace("/[\-_]/", " ", $file_name);
ECHO $result;

РЕЗУЛЬТАТ

text1 text2 10212 etc 125.jpg

Ссылка на ДЕМО

3 июл. 2018 г. 12:15:18
Комментарии

Вопрос уже содержит эту строку кода. Они уже знают эту часть. Часть, о которой они спрашивают, касается выполнения этого в контексте изображения, загруженного плагином. Этот ответ не затрагивает фактический вопрос.

Jacob Peattie Jacob Peattie
3 июл. 2018 г. 13:53:34