01-01-2006, 20:34
|
|
|
חבר מתאריך: 13.12.05
הודעות: 1,963
|
|
אממ, כן... זה אכן יאריך את זמן הרינדור של הדף.
יש פה 2, הראשונה באמת יותר חכמה, אם אפשר לקרוא לזה ככה, הייתה לי בעיה בגלל זה העפתי ממערך התוצאות את מה שאין לו רווח.
character-class מטבעו לא מייחס חשיבות ל"שבירות שורה" ולכן, כנראה, הוא תמיד מוסיף את התגיות הנגדיות שיש ביניהן "שבירת שורה" (במקרה שלנו) אפילו שמצויין לו רק רווח ומילה.
אם למישהו יש פתרון לזה, מוזמן
יש לך שתי אפשרויות, תבחר מה שנוח לך
1.
קוד PHP:
preg_match_all("@>[\w\s^<]+<@", $str, $matches); foreach($matches[0] as $key => $value) if(!strstr($value, " ")) unset($matches[0][$key]);
$rmatches[0] = array(); foreach($matches[0] as $key => $value) $rmatches[0][$key] = str_replace(" "," ",$value);
2. שהיא שונה טיפה, כי היא לא מסננת את מה שאין לו רווח (שוב הראשון היה למטרות בדיקה כדי לראות איך באמת לעשות את זה, בגלל זה הגעתי לסינון מה שאין לו רווח).
קוד PHP:
preg_replace("@>([\w\s^<]+)<@e", "chr(62).str_replace(' ', chr(38).'nbsp'.chr(59), '\${1}').chr(60)", $str
);
התוצאות של הראשון, "שפכתי" את המשתנה שהתקבל מיד לאחר ההרצה:
קוד:
Srouce:
" <table bgcolor=\"red\">
<tr>
<td width=\"100\">
Bla Bla Bla <br /><br />this is another test<br /> <br />this is a test<br />
</td>
</tr>
</table> "
Result:
Array
(
[0] => >
<
[1] => >
<
[2] => >
Bla Bla Bla <
[3] => >this is another test<
[4] => > <
[5] => >this is a test<
[6] => >
<
[7] => >
<
[8] => >
<
)
אם תשים לב, הוא לוקח את כל התגיות הנגדיות שיש ביניהן שבירות שורה כאילו שהן היו רווח (משום מה)...
נערך לאחרונה ע"י GreenBerret בתאריך 01-01-2006 בשעה 20:44.
|