2009-04-22 9 views
5

ठीक है, मुझे पता है कि मैं एक डोम पार्सर का उपयोग करना चाहिए विशेषताओं की जगह है, लेकिन यह कुछ कोड एक बाद की सुविधा के लिए अवधारणा का एक सबूत है कि बाहर ठूंठ है, इसलिए मैं जल्दी से पर कुछ कार्यक्षमता प्राप्त करना चाहते हैं परीक्षण कोड का एक सीमित सेट।एचटीएमएल PHP में एक regex का उपयोग कर

मैं चौड़ाई पट्टी कोशिश कर रहा हूँ और ऊंचाई मात्रा की विशेषताओं एचटीएमएल, दूसरे शब्दों में, एक खाली स्ट्रिंग के साथ

width="number" height="number" 

बदलें।

समारोह मैं इस समय इस तरह दिखता है लिखने के लिए कोशिश कर रहा हूँ:

function remove_img_dimensions($string,$iphone) { 
    $pattern = "width=\"[0-9]*\""; 
    $string = preg_replace($pattern, "", $string); 

    $pattern = "height=\"[0-9]*\""; 
    $string = preg_replace($pattern, "", $string); 

    return $string; 
} 

लेकिन वह काम नहीं करता।

मुझे लगता है कि काम कैसे कर सकता हूँ?

उत्तर

7

PHP उसमें प्रमुख भाषाओं में अद्वितीय है, हालांकि रीजिक्स को पायथन, जावा और सी # जैसे स्ट्रिंग अक्षरों के रूप में निर्दिष्ट किया गया है, आपको पर्ल, जावास्क्रिप्ट और रूबी जैसे रेगेक्स डिलीमीटरों का भी उपयोग करना होगा।

भी सावधान रहें, कि आप डबल उद्धरण के बजाय एकल उद्धरण चिह्नों का उपयोग कर सकते हैं डबल उद्धरण और बैकस्लैश जैसे पात्रों से बचने के लिए की जरूरत को कम करने के लिए। इसमें प्रवेश करने की एक अच्छी आदत है, क्योंकि डबल-उद्धृत तारों के लिए बचने के नियम आश्चर्यजनक हो सकते हैं। बहुत बहुत शुक्रिया -

$pattern = '/(width|height)="[0-9]*"/i'; 
+0

बिल्कुल सही:

अंत में, आप अपने दो प्रतिस्थापन एक में एक सरल प्रत्यावर्तन के माध्यम से गठजोड़ कर सकते हैं! –

4

आपका पैटर्न प्रारंभ/समाप्ति पैटर्न चरित्र की जरूरत है। इस तरह:

$pattern = "/height=\"[0-9]*\"/"; 
$string = preg_replace($pattern, "", $string); 

"/" हमेशा की तरह चरित्र है, लेकिन ज्यादातर पात्रों काम करेगा ("| पैटर्न |" "# पैटर्न #", जो कुछ भी)।

0

मुझे लगता है कि आप कोष्ठकों (जो हो सकता है //, || या अक्षरों के विभिन्न अन्य जोड़े) स्ट्रिंग में एक नियमित अभिव्यक्ति के चारों ओर की जरूरत है कि खो रहे हैं। इस फार्म के लिए अपने $ पैटर्न कार्य बदलने का प्रयास करें:

:

$pattern = "/width=\"[0-9]*\"/"; 

... यदि आप एक केस-संवेदी तुलना करने के लिए सक्षम होना चाहता हूँ, एक 'मैं' स्ट्रिंग के अंत में, इस प्रकार जोड़ने

$pattern = "/width=\"[0-9]*\"/i"; 

आशा इस मदद करता है! डेविड

संबंधित मुद्दे