2012-03-18 5 views
2

substrを使用してURL文字列から4文字を削除しようとしています。目標は.jpgを文字列から削除し、それを "-220x124.jpg"に置き換えることです。サブ文字列を使用して動的変数から文字を削除する

私はワードプレスのプラグインを使用していますが、高度なカスタムフィールドはありませんが、ここで問題はありません。問題は、サブフィールドが拡張カスタムフィールドコードthe_sub_fieldで機能していないことです。最後の4文字を削除せずにURL文字列全体を返します。どんな考え?以下

コード:

<?php if(get_field('still_uploads')): ?> 
    <?php $i = 0; ?> 
    <?php while(the_repeater_field('still_uploads') && $i <= 0): ?> 

    <?php 
     $imagejesse = the_sub_field('still_image'); 
     $imagejessenew = substr($imagejesse,0,-4); 
    ?> 

    <?php echo $imagejessenew.'-220x124.jpg'; ?> 
    <?php $i++ ?> 
    <?php endwhile; ?> 
<?php endif; ?> 

あなたがここでの例を見ることができます:そのようなhttp://gicreative-dev.com/blog/genre/gay/

+0

あなたは、独自のタグにコードのほぼすべての単一の行を置く理由はありますか? – CodeZombie

+0

私は問題がダイナミック変数にあると思います。変数を出力して新しい変数として保存する方法はありますか?それでsubstrで変更することができますか? – JCHASE11

+0

@bkconrad、はい、私はして、URL文字列を返す – JCHASE11

答えて

1

使用strtr() function

$imagejessenew = strtr($imagejesse, array(
    '.jpg' => '-220x124.jpg', 
)); 

証明のためにこれを参照してください。http://ideone.com/B8ZQe

+0

私はちょうど幸運でそれを更新しました。上記のリンクを参照してくださいが、同じ問題が更新されました – JCHASE11

+1

'substr()'が期待値を返さない場合、どちらかというと疑問です – bkconrad

+0

@bkconrad:もう一度チェックしてください - 2番目の引数は連想配列でなければなりません私の答えを更新しました。 – Tadeck

1

てみてくださいthis:

<?php 
    $imagejessenew = substr(trim(the_sub_field('still_image')),0,-4); 

    if($imagejessenew !== FALSE) 
    { 
     $imagejessenew .= '-220x124.jpg'; 
    } 
    else 
    { 
     // Shit happened, the_sub_field('still_image') was shorter than 4 characters 
    } 
?> 
+0

これは、文字列wihtoutを "-220x124"に戻しているようです。jpg " – JCHASE11

+0

@ JCHASE11:何かをする前に' var_dump(the_sub_field( 'still_image')) 'を使って、ソースコードの出力を確認してください。 – CodeZombie

+0

" http://gicreative-dev.com/wp-content/ "アップロード/ 2012/03/Buffering1.jpgNULL " – JCHASE11

1
$imagejessenew = preg_replace('/(.*)(.(jpg|png|gif))$/i', '$1-220x124.$3', trim($imagejesse)); 
+0

別の素晴らしいショットが、もちろん動作しません。とにかくありがとう – JCHASE11

+0

コードは通常のテストケースで動作することはよく知っています。 – ghbarratt

+0

少し修正したバージョンをお試しください。 – ghbarratt

関連する問題