php


Creating folders based on posted hashtags PHP


So this is my first time posting a question on this website and as a programmer I'm ashamed I didn't create an account sooner, this website has gotten me through a lot lol, anyways enough about that, I need some help.
I am creating a system where users can post their own little statuses, update their status, share, etc. I need help creating folders for #hashtags based on the hashtag the user has in his posted status.
So an example would be: "Hello world #firstpost #helloworld", the code would have to exclude everything in that sentence except for any and all hashtags, and it would then create the folders for all the hashtags that are in the users post, in this case it's going to create the folders firstpost and helloworld (if they don't already exist).
Can I create the folders using a modified version of this or at least something better/similar/related?
$foldername = $_POST["status_posting"];
mkdir('../hashtag/' . $foldername, 0755);
for ($i = 0; $i < 1; $i++) {
mkdir('../users/' . $foldername, 0755);
}
Thank you for your guys help in advance.
You can use a regular expression to capture the hashtags, then use mkdir() to create the directories. You can use file_exists() to check if a file exists (or not !).
I would use the following expression: #(\S{1,}). This expression looks for a #, then starts capturing any non white-space character (/S), from once to infinite times ({1,}).
<?php
$input = "Hello world #firstpost #helloworld";
preg_match_all("/#(\S{1,})/", $input, $matches);
foreach($matches[1] as $match){
if (!file_exists('../hashtag/' . $match)) {
mkdir('../hashtag/' . $match, 0755, true);
}
}
I'd php explode() the message, check each item if it contains a #, if so mkdir the item's name minus the #. Possibly not the most efficient way to do it.
$foldername = explode(" ", $_POST["status_posting"]);
foreach($foldername as $string){
if(strpos($string, '#') !== FALSE){
//Make dir!
mkdir('../hashtag/' . ltrim($string, "#"), 0755, true);
}
}
The true at the end of mkdir allows for recursive file path creation. For instance, if the hashtag folder has not been created yet, it will create that too.
After doing some research, since "#" can be found without using regex, it's much more efficient to use strpos() and explode(). preg_match() vs strpos() speed is shown below.
no. strings 1 2 3 10 100 1000 10000
strpos() 0.01 ms 0.02 ms 0.04 ms 0.2 ms 0.9 ms 2.6 ms 25.6 ms
preg_match() 0.2 ms 0.2 ms 0.3 ms 0.47 ms 0.95 ms 7.4 ms 72.2 ms
Though you do have to factor in explode() time, the php forum states that explode() should be used when regex power is not required, for reasons we can see above. I would be interested in seeing the two answers code put head to head as it would be quite interesting to know for sure.

Related Links

JQuery Ajax Post - JSON works with GET but NOT with POST
HTML data entry
Codeigniter - PHP Not Being Rendered In Views w/ mod_php 5
Security in PHP
Assign 10-digit char user ids to 1 of 1000 servers
Calculate possible combinations of an array in order of presented arrays
Is putting a php script in the src of the image tag slower than normal and by how much?
What is the best way to persist PHP application setings?
How to check if an email address exists without sending an email?
Find PHP Orphan Page
Generating Postscript using PHP: browser offers to save file
How can I do a “does not contain” operation in regex?
Failsafe looping trough array of urls
Matching a space in regex
math related PHP question + latitude
Apache on windows server can't write to file

Categories

HOME
powerbi
gaming
jms
schema.org
operating-system
risk-management
whmcs
websocket
portable-class-library
gallery
material-components
repair
cisco
sharepoint-online
parsley.js
multi-step
android-contacts
rpmbuild
xsl-fo
sqlplus
batch-rename
intel
fusetools
uri
sap-lumira
jackrabbit-oak
code-climate
fatfs
reporting
caesar-cipher
image-optimization
devtools
spring-rabbitmq
char-pointer
stackpanel
fastlane
text-decorations
task-parallel-library
flowchart
dbcc
morphline
transparency
jenkins-slave
nusoap
sigsegv
finder
mifos
decoder
perforce-integrate
wicked-pdf
odp.net-managed
accessibilityservice
flask-security
m4
in-app-billing
android-studio-import
swagger-maven-plugin
ocmockito
tkx
phonegap-facebook-plugin
flurry-analytics
xml-signature
nesper
dmake
tabletools
lsa
autonumber
ember-table
insertion
flv
ckeditor.net
handshake
n-queens
will-paginate
vows
data-dump
qt-mobility
jmenu
downgrade
sscli
projectpier
fxruby
.net-client-profile
downcasting
xap
motif
datagridcolumn
downloadfile
bindable-linq
webclient.uploaddata

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App