ABA


"צריך רעיון לפתרון ב-PHP (נושא מחרוזות)"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #14236 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 14236
FireAngel

   19:16   29.07.08   
אל הפורום  
  צריך רעיון לפתרון ב-PHP (נושא מחרוזות)  
 
   ערכתי לאחרונה בתאריך 29.07.08 בשעה 19:17 בברכה, FireAngel
 
יש קוד של HTML של דף מסויים.
דרך ממשק ניהול מוסיפים קישורים אוטומטית (דרך העלאה ב-FTP).

פשוט מאוד מחליפים את הסטרינג שנמצא בכל אתר:


<!--##LINKS##-->

בסטרינג הבא:

<!--##LINKS##--> <a href="http://www.example.com">Example</a> |

בצורה כזאת נאספים הקישורים אחרי FLAG מסויים שקראנו לו LINKS כמתואר.
בדר"כ (כמעט תמיד) הוא מופיע בסוף העמוד ולאחריו יש את התגי סגירה האחרונים של האתר (TABLE, DIV, BODY, HTML וכו').

עכשיו אני רוצה גם לנהל במערכת שלי עריכה/מחיקה של הקישורים.
איך מומלץ לקבל את כל הקישורים בצורה כזאת שאני אדע "כתובת קישור", "מילת קישור".

צריך איכשהו לנתח את הסטרינג ולקבל את התוצאות בצורה כזאת.

יש לכם פתרון ורעיונות ?
אני חושב שרצוי לעבוד עם REGEX, רק שאני לא חזק בזה.

תודה!


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אממ הכנתי לך משו :| akoka 29.07.08 19:47 1
     אחרי ה-FLAG יכול להיות 1 ויכול להיות גם 1000, זה יתאים? FireAngel 29.07.08 21:50 2
         אני חושב שכן תנסה להוסיף + בסוף התבנית לפני ה/ akoka 30.07.08 11:09 7
             וואלה לא... צריך ידע ב-REGEX ? FireAngel 30.07.08 12:55 8
                 לא ממש ,יש שם תבניות מוכנות כמעט להכול , akoka 30.07.08 13:08 9
                     תתחבר למסנג'ר :}~ FireAngel 30.07.08 14:19 10
  אתה לא עובד עם מסד? vintox 29.07.08 23:55 3
     במקרה הזה לא... FireAngel 30.07.08 09:12 4
  עצה של מה שאני עשיתי code_blue  30.07.08 09:16 5
     את הנעשה אין להשיב... בעיה, יש המון אתרים כאלה לא אחד. FireAngel 30.07.08 10:21 6
  תודה לאקוקה המלך !!! FireAngel 30.07.08 15:51 11
     קח את הביטוי הראשון מההודעה הראשונה שלי פה akoka 30.07.08 15:53 12
         בוא שוב למסנג'ר זה עושה לי בעיות ארגגגגג FireAngel 30.07.08 16:05 13

       
akoka

   19:47   29.07.08   
אל הפורום  
  1. אממ הכנתי לך משו :|  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 29.07.08 בשעה 19:48 בברכה, akoka
 
מקווה שקלעתי למה שאתה רוצה :|

אגב התייחסתי לזה בהנחה שיש רק קישור אחד מאחורי כול FLAG כזה:|

הרעיון הוא קודם להוציא את כול התוכן אחרי הFLAG הזה ואז לעבד אותו לקישורים ולפרק את הקישורים דרך ביטויים רגולריים.


$someText = "Dasdasdasdas <!--##LINKS##--> <a href=\"Mom\">Dad</a>";

$match = preg_match("/<!--##LINKS##-->[\s]+(.*)/",htmlspecialchars($someText),$matches);

$getMatchLinks = preg_match_all("/<a\shref="(.*)">(.*)<\/a>/",$matches[1],$links,PREG_SET_ORDER);


echo "<pre>";
print_r($links);

והפלט


Array
(
=> Array
(
=> <a href="Mom">Dad</a>
=> Mom
=> Dad
)

)

אגב אם תרצה להוציא עוד ATTRIBUTS של הקישור אז פשוט תעתיק את הקטע של הHREF בתוך הביטוי ורק תשנה אותו:| אני גם חלש רצח בזה ,אבל סביר כזה חח יודע מה שצריך


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
FireAngel

   21:50   29.07.08   
אל הפורום  
  2. אחרי ה-FLAG יכול להיות 1 ויכול להיות גם 1000, זה יתאים?  
בתגובה להודעה מספר 1
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

   11:09   30.07.08   
אל הפורום  
  7. אני חושב שכן תנסה להוסיף + בסוף התבנית לפני ה/  
בתגובה להודעה מספר 2
 
   אגב ניסית לעבוד עם REGEX BODY ?

תוכנה אדירה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
FireAngel

   12:55   30.07.08   
אל הפורום  
  8. וואלה לא... צריך ידע ב-REGEX ?  
בתגובה להודעה מספר 7
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

   13:08   30.07.08   
אל הפורום  
  9. לא ממש ,יש שם תבניות מוכנות כמעט להכול ,  
בתגובה להודעה מספר 8
 
   צריך טיפה היגיון שאני מאמין שלא חסר לך :} מקסימום כנס לPHP.EITAN.AC.IL ותעזר ברשימה שלהם שם.

אגב מה שכתבתי לך עובד חזק ביותר ,רק צריך למצוא דרך שזה יעבוד על יותר מקישור אחד :|


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
FireAngel

   14:19   30.07.08   
אל הפורום  
  10. תתחבר למסנג'ר :}~  
בתגובה להודעה מספר 9
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
vintox

   23:55   29.07.08   
אל הפורום  
  3. אתה לא עובד עם מסד?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
FireAngel

   09:12   30.07.08   
אל הפורום  
  4. במקרה הזה לא...  
בתגובה להודעה מספר 3
 
   אני רק צריך לעשות את החלק הזה, מישהו אחר עשה את החלק של ההוספה וצריך להסתדר עם מה שיש.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
code_blue  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 5.7.06
21280 הודעות, 7 פידבק
   09:16   30.07.08   
אל הפורום  
  5. עצה של מה שאני עשיתי  
בתגובה להודעה מספר 0
 
   תכניס את הכל למסד נתונים
ואז פשוט תשלוף אותו איפה שצריך .

וככה יהיה לך הרבה יותר קל לערוך / לשנות.

אם תסתכל אצלי באתר תראה למטה שיש מעיין פרסום.
מה שעשיתי זה פשוט מאוד
מסד נתונים שאני מעלה אליו לינקים + שם
ואז רק שולף את זה איפה שצריך.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
FireAngel

   10:21   30.07.08   
אל הפורום  
  6. את הנעשה אין להשיב... בעיה, יש המון אתרים כאלה לא אחד.  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
FireAngel

   15:51   30.07.08   
אל הפורום  
  11. תודה לאקוקה המלך !!!  
בתגובה להודעה מספר 0
 
   עזר לי לקבל את כל הקישורים במערך.
הבעיה היחידה היא שאני רוצה רק את הקישורים שמופיעים אחרי ה-FLAG.

הנה הקוד:


<?php
$p = '%<a\s+href="(.*)"\s*>(.*)</a>%im';
$s = 'some rubbish
<a href="http://www.google.co.il">Google!</a>more rubbish
more rubbish<a href="my-anchor-name2">name2</a>more rubbish
more rubbish<a name="my-anchor-name3">name3</a>more rubbish
more rubbish<a name="my-anchor-name4">name4</a>more rubbish
more rubbish<a name="my-anchor-name5">name5</a>more rubbish';

$t = preg_match_all($p, $s, $matches, PREG_SET_ORDER);

echo "<pre>";

print_r($matches);

?>


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

   15:53   30.07.08   
אל הפורום  
  12. קח את הביטוי הראשון מההודעה הראשונה שלי פה  
בתגובה להודעה מספר 11
 
   הוא מחזיר את כול התוכן שאחרי הFLAG ועליו תריץ את הביטוי הזה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
FireAngel

   16:05   30.07.08   
אל הפורום  
  13. בוא שוב למסנג'ר זה עושה לי בעיות ארגגגגג  
בתגובה להודעה מספר 12
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net